| OLD | NEW |
| 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 import 'package:kernel/ast.dart' as ir; | 5 import 'package:kernel/ast.dart' as ir; |
| 6 | 6 |
| 7 import '../closure.dart'; | 7 import '../closure.dart'; |
| 8 import '../common.dart'; | 8 import '../common.dart'; |
| 9 import '../constants/values.dart'; | 9 import '../constants/values.dart'; |
| 10 import '../common_elements.dart'; | 10 import '../common_elements.dart'; |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 /// Computes the [ConstantValue] for the constant [expression]. | 101 /// Computes the [ConstantValue] for the constant [expression]. |
| 102 // TODO(johnniwinther): Move to [KernelToElementMapForBuilding]. This is only | 102 // TODO(johnniwinther): Move to [KernelToElementMapForBuilding]. This is only |
| 103 // used in impact builder for symbol constants. | 103 // used in impact builder for symbol constants. |
| 104 ConstantValue getConstantValue(ir.Expression expression, | 104 ConstantValue getConstantValue(ir.Expression expression, |
| 105 {bool requireConstant: true, bool implicitNull: false}); | 105 {bool requireConstant: true, bool implicitNull: false}); |
| 106 } | 106 } |
| 107 | 107 |
| 108 /// Interface that translates between Kernel IR nodes and entities used for | 108 /// Interface that translates between Kernel IR nodes and entities used for |
| 109 /// computing the [WorldImpact] for members. | 109 /// computing the [WorldImpact] for members. |
| 110 abstract class KernelToElementMapForImpact extends KernelToElementMap { | 110 abstract class KernelToElementMapForImpact extends KernelToElementMap { |
| 111 /// Adds libraries in [program] to the set of libraries. |
| 112 /// |
| 113 /// The main method of the first program is used as the main method for the |
| 114 /// compilation. |
| 115 void addProgram(ir.Program program); |
| 116 |
| 111 /// Returns the [ConstructorEntity] corresponding to a super initializer in | 117 /// Returns the [ConstructorEntity] corresponding to a super initializer in |
| 112 /// [constructor]. | 118 /// [constructor]. |
| 113 /// | 119 /// |
| 114 /// The IR resolves super initializers to a [target] up in the type hierarchy. | 120 /// The IR resolves super initializers to a [target] up in the type hierarchy. |
| 115 /// Most of the time, the result of this function will be the entity | 121 /// Most of the time, the result of this function will be the entity |
| 116 /// corresponding to that target. In the presence of unnamed mixins, this | 122 /// corresponding to that target. In the presence of unnamed mixins, this |
| 117 /// function returns an entity for an intermediate synthetic constructor that | 123 /// function returns an entity for an intermediate synthetic constructor that |
| 118 /// kernel doesn't explicitly represent. | 124 /// kernel doesn't explicitly represent. |
| 119 /// | 125 /// |
| 120 /// For example: | 126 /// For example: |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 abstract class KernelToElementMapForBuilding implements KernelToElementMap { | 160 abstract class KernelToElementMapForBuilding implements KernelToElementMap { |
| 155 /// [ElementEnvironment] for library, class and member lookup. | 161 /// [ElementEnvironment] for library, class and member lookup. |
| 156 ElementEnvironment get elementEnvironment; | 162 ElementEnvironment get elementEnvironment; |
| 157 | 163 |
| 158 /// Returns the list of [DartType]s corresponding to [types]. | 164 /// Returns the list of [DartType]s corresponding to [types]. |
| 159 List<DartType> getDartTypes(List<ir.DartType> types); | 165 List<DartType> getDartTypes(List<ir.DartType> types); |
| 160 | 166 |
| 161 /// Returns the kernel IR node that defines the [member]. | 167 /// Returns the kernel IR node that defines the [member]. |
| 162 ir.Node getMemberNode(covariant MemberEntity member); | 168 ir.Node getMemberNode(covariant MemberEntity member); |
| 163 | 169 |
| 170 /// Returns the kernel IR node that defines the [cls]. |
| 171 ir.Class getClassNode(covariant ClassEntity cls); |
| 172 |
| 164 /// Returns the [LibraryEntity] corresponding to the library [node]. | 173 /// Returns the [LibraryEntity] corresponding to the library [node]. |
| 165 LibraryEntity getLibrary(ir.Library node); | 174 LibraryEntity getLibrary(ir.Library node); |
| 166 | 175 |
| 167 /// Returns the [js.Template] for the `JsBuiltin` [constant] value. | 176 /// Returns the [js.Template] for the `JsBuiltin` [constant] value. |
| 168 js.Template getJsBuiltinTemplate( | 177 js.Template getJsBuiltinTemplate( |
| 169 ConstantValue constant, CodeEmitterTask emitter); | 178 ConstantValue constant, CodeEmitterTask emitter); |
| 170 | 179 |
| 171 /// Return the [ConstantValue] the initial value of [field] or `null` if | 180 /// Return the [ConstantValue] the initial value of [field] or `null` if |
| 172 /// the initializer is not a constant expression. | 181 /// the initializer is not a constant expression. |
| 173 ConstantValue getFieldConstantValue(ir.Field field); | 182 ConstantValue getFieldConstantValue(ir.Field field); |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 /// Returns the [LoopClosureScope] for the loop [node] in [closureClassMaps]. | 310 /// Returns the [LoopClosureScope] for the loop [node] in [closureClassMaps]. |
| 302 LoopClosureScope getLoopClosureScope( | 311 LoopClosureScope getLoopClosureScope( |
| 303 ClosureDataLookup closureLookup, ir.TreeNode node); | 312 ClosureDataLookup closureLookup, ir.TreeNode node); |
| 304 } | 313 } |
| 305 | 314 |
| 306 /// Comparator for the canonical order or named arguments. | 315 /// Comparator for the canonical order or named arguments. |
| 307 // TODO(johnniwinther): Remove this when named parameters are sorted in dill. | 316 // TODO(johnniwinther): Remove this when named parameters are sorted in dill. |
| 308 int namedOrdering(ir.VariableDeclaration a, ir.VariableDeclaration b) { | 317 int namedOrdering(ir.VariableDeclaration a, ir.VariableDeclaration b) { |
| 309 return a.name.compareTo(b.name); | 318 return a.name.compareTo(b.name); |
| 310 } | 319 } |
| OLD | NEW |