Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(706)

Side by Side Diff: pkg/compiler/lib/src/kernel/element_map_impl.dart

Issue 2955093002: Split KernelToElementMap mixins to match interfaces (Closed)
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart2js.kernel.element_map; 5 library dart2js.kernel.element_map;
6 6
7 import 'package:kernel/ast.dart' as ir; 7 import 'package:kernel/ast.dart' as ir;
8 import 'package:kernel/clone.dart'; 8 import 'package:kernel/clone.dart';
9 import 'package:kernel/type_algebra.dart'; 9 import 'package:kernel/type_algebra.dart';
10 10
(...skipping 23 matching lines...) Expand all
34 import '../native/resolver.dart'; 34 import '../native/resolver.dart';
35 import '../ordered_typeset.dart'; 35 import '../ordered_typeset.dart';
36 import '../ssa/kernel_impact.dart'; 36 import '../ssa/kernel_impact.dart';
37 import '../universe/class_set.dart'; 37 import '../universe/class_set.dart';
38 import '../universe/function_set.dart'; 38 import '../universe/function_set.dart';
39 import '../universe/selector.dart'; 39 import '../universe/selector.dart';
40 import '../universe/world_builder.dart'; 40 import '../universe/world_builder.dart';
41 import '../world.dart'; 41 import '../world.dart';
42 import '../util/util.dart' show Link, LinkBuilder; 42 import '../util/util.dart' show Link, LinkBuilder;
43 import 'element_map.dart'; 43 import 'element_map.dart';
44 import 'element_map_mixins.dart';
44 import 'elements.dart'; 45 import 'elements.dart';
45 46
46 part 'native_basic_data.dart'; 47 part 'native_basic_data.dart';
47 part 'no_such_method_resolver.dart'; 48 part 'no_such_method_resolver.dart';
48 part 'types.dart'; 49 part 'types.dart';
49 50
50 /// Interface for kernel queries needed to implement the [CodegenWorldBuilder]. 51 /// Interface for kernel queries needed to implement the [CodegenWorldBuilder].
51 abstract class KernelToWorldBuilder implements KernelToElementMapForBuilding { 52 abstract class KernelToWorldBuilder implements KernelToElementMapForBuilding {
52 /// Returns `true` if [field] has a constant initializer. 53 /// Returns `true` if [field] has a constant initializer.
53 bool hasConstantFieldInitializer(FieldEntity field); 54 bool hasConstantFieldInitializer(FieldEntity field);
54 55
55 /// Returns the constant initializer for [field]. 56 /// Returns the constant initializer for [field].
56 ConstantValue getConstantFieldInitializer(FieldEntity field); 57 ConstantValue getConstantFieldInitializer(FieldEntity field);
57 58
58 /// Calls [f] for each parameter of [function] providing the type and name of 59 /// Calls [f] for each parameter of [function] providing the type and name of
59 /// the parameter and the [defaultValue] if the parameter is optional. 60 /// the parameter and the [defaultValue] if the parameter is optional.
60 void forEachParameter(FunctionEntity function, 61 void forEachParameter(FunctionEntity function,
61 void f(DartType type, String name, ConstantValue defaultValue)); 62 void f(DartType type, String name, ConstantValue defaultValue));
62 } 63 }
63 64
65 abstract class KernelToElementMapBase extends KernelToElementMapBaseMixin {}
66
64 /// Element builder used for creating elements and types corresponding to Kernel 67 /// Element builder used for creating elements and types corresponding to Kernel
65 /// IR nodes. 68 /// IR nodes.
66 class KernelToElementMapImpl extends KernelToElementMapMixin 69 class KernelToElementMapImpl extends KernelToElementMapBase
67 implements KernelToWorldBuilder, KernelToElementMapForImpact { 70 with KernelToElementMapForBuildingMixin, KernelToElementMapForImpactMixin
71 implements KernelToWorldBuilder {
68 final Environment _environment; 72 final Environment _environment;
69 CommonElements _commonElements; 73 CommonElements _commonElements;
70 native.BehaviorBuilder _nativeBehaviorBuilder; 74 native.BehaviorBuilder _nativeBehaviorBuilder;
71 final DiagnosticReporter reporter; 75 final DiagnosticReporter reporter;
72 ElementEnvironment _elementEnvironment; 76 ElementEnvironment _elementEnvironment;
73 DartTypeConverter _typeConverter; 77 DartTypeConverter _typeConverter;
74 KernelConstantEnvironment _constantEnvironment; 78 KernelConstantEnvironment _constantEnvironment;
75 _KernelDartTypes _types; 79 _KernelDartTypes _types;
76 80
77 /// Library environment. Used for fast lookup. 81 /// Library environment. Used for fast lookup.
(...skipping 1696 matching lines...) Expand 10 before | Expand all | Expand 10 after
1774 !elementMap.isForeignLibrary(node.enclosingLibrary); 1778 !elementMap.isForeignLibrary(node.enclosingLibrary);
1775 } 1779 }
1776 1780
1777 @override 1781 @override
1778 bool isJsInteropMember(MemberEntity element) { 1782 bool isJsInteropMember(MemberEntity element) {
1779 // TODO(redemption): Compute this. 1783 // TODO(redemption): Compute this.
1780 return false; 1784 return false;
1781 } 1785 }
1782 } 1786 }
1783 1787
1784 class JsKernelToElementMap extends KernelToElementMapMixin 1788 class JsKernelToElementMap extends KernelToElementMapBase
1789 with KernelToElementMapForBuildingMixin
1785 implements KernelToWorldBuilder { 1790 implements KernelToWorldBuilder {
1786 final JsToFrontendMap _map; 1791 final JsToFrontendMap _map;
1787 final ElementEnvironment _elementEnvironment; 1792 final ElementEnvironment _elementEnvironment;
1788 final CommonElements _commonElements; 1793 final CommonElements _commonElements;
1789 final KernelToElementMapImpl _elementMap; 1794 final KernelToElementMapImpl _elementMap;
1790 1795
1791 JsKernelToElementMap(this._map, this._elementEnvironment, 1796 JsKernelToElementMap(this._map, this._elementEnvironment,
1792 this._commonElements, this._elementMap); 1797 this._commonElements, this._elementMap);
1793 1798
1794 @override 1799 @override
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1880 return _commonElements; 1885 return _commonElements;
1881 } 1886 }
1882 1887
1883 @override 1888 @override
1884 ConstantValue computeConstantValue(ConstantExpression constant, 1889 ConstantValue computeConstantValue(ConstantExpression constant,
1885 {bool requireConstant: true}) { 1890 {bool requireConstant: true}) {
1886 throw new UnsupportedError("JsKernelToElementMap.computeConstantValue"); 1891 throw new UnsupportedError("JsKernelToElementMap.computeConstantValue");
1887 } 1892 }
1888 1893
1889 @override 1894 @override
1890 native.BehaviorBuilder get nativeBehaviorBuilder {
1891 throw new UnsupportedError("JsKernelToElementMap.nativeBehaviorBuilder");
1892 }
1893
1894 @override
1895 DiagnosticReporter get reporter { 1895 DiagnosticReporter get reporter {
1896 return _elementMap.reporter; 1896 return _elementMap.reporter;
1897 } 1897 }
1898 1898
1899 @override 1899 @override
1900 ConstantValue getFieldConstantValue(ir.Field field) { 1900 ConstantValue getFieldConstantValue(ir.Field field) {
1901 throw new UnsupportedError("JsKernelToElementMap.getFieldConstantValue"); 1901 throw new UnsupportedError("JsKernelToElementMap.getFieldConstantValue");
1902 } 1902 }
1903 1903
1904 @override 1904 @override
1905 void forEachParameter(FunctionEntity function, 1905 void forEachParameter(FunctionEntity function,
1906 void f(DartType type, String name, ConstantValue defaultValue)) { 1906 void f(DartType type, String name, ConstantValue defaultValue)) {
1907 throw new UnsupportedError("JsKernelToElementMap.forEachParameter"); 1907 throw new UnsupportedError("JsKernelToElementMap.forEachParameter");
1908 } 1908 }
1909 1909
1910 @override 1910 @override
1911 ConstantValue getConstantFieldInitializer(FieldEntity field) { 1911 ConstantValue getConstantFieldInitializer(FieldEntity field) {
1912 throw new UnsupportedError( 1912 throw new UnsupportedError(
1913 "JsKernelToElementMap.getConstantFieldInitializer"); 1913 "JsKernelToElementMap.getConstantFieldInitializer");
1914 } 1914 }
1915 1915
1916 @override 1916 @override
1917 bool hasConstantFieldInitializer(FieldEntity field) { 1917 bool hasConstantFieldInitializer(FieldEntity field) {
1918 throw new UnsupportedError( 1918 throw new UnsupportedError(
1919 "JsKernelToElementMap.hasConstantFieldInitializer"); 1919 "JsKernelToElementMap.hasConstantFieldInitializer");
1920 } 1920 }
1921 } 1921 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/kernel/element_map.dart ('k') | pkg/compiler/lib/src/kernel/element_map_mixins.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698