OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 '../compiler.dart'; | 9 import '../compiler.dart'; |
10 import '../constants/expressions.dart'; | 10 import '../constants/expressions.dart'; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 /// Sometimes for resolution the resolved AST element needs to change (for | 56 /// Sometimes for resolution the resolved AST element needs to change (for |
57 /// example, if we're inlining, or if we're in a constructor, but then also | 57 /// example, if we're inlining, or if we're in a constructor, but then also |
58 /// constructing the field values). We keep track of this with a stack. | 58 /// constructing the field values). We keep track of this with a stack. |
59 final List<ResolvedAst> _resolvedAstStack = <ResolvedAst>[]; | 59 final List<ResolvedAst> _resolvedAstStack = <ResolvedAst>[]; |
60 | 60 |
61 final native.BehaviorBuilder nativeBehaviorBuilder; | 61 final native.BehaviorBuilder nativeBehaviorBuilder; |
62 | 62 |
63 KernelAstAdapter(this.kernel, this._backend, this._resolvedAst, | 63 KernelAstAdapter(this.kernel, this._backend, this._resolvedAst, |
64 this._nodeToAst, this._nodeToElement) | 64 this._nodeToAst, this._nodeToElement) |
65 : nativeBehaviorBuilder = new native.ResolverBehaviorBuilder( | 65 : nativeBehaviorBuilder = new native.ResolverBehaviorBuilder( |
66 _backend.compiler, _backend.nativeBasicData) { | 66 _backend.compiler, _backend.frontendStrategy.nativeBasicData) { |
67 KernelJumpTarget.index = 0; | 67 KernelJumpTarget.index = 0; |
68 // TODO(het): Maybe just use all of the kernel maps directly? | 68 // TODO(het): Maybe just use all of the kernel maps directly? |
69 for (FieldElement fieldElement in kernel.fields.keys) { | 69 for (FieldElement fieldElement in kernel.fields.keys) { |
70 _nodeToElement[kernel.fields[fieldElement]] = fieldElement; | 70 _nodeToElement[kernel.fields[fieldElement]] = fieldElement; |
71 } | 71 } |
72 for (FunctionElement functionElement in kernel.functions.keys) { | 72 for (FunctionElement functionElement in kernel.functions.keys) { |
73 _nodeToElement[kernel.functions[functionElement]] = functionElement; | 73 _nodeToElement[kernel.functions[functionElement]] = functionElement; |
74 } | 74 } |
75 for (ClassElement classElement in kernel.classes.keys) { | 75 for (ClassElement classElement in kernel.classes.keys) { |
76 _nodeToElement[kernel.classes[classElement]] = classElement; | 76 _nodeToElement[kernel.classes[classElement]] = classElement; |
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
680 TypeMask selectorTypeOf(Selector selector, TypeMask mask) { | 680 TypeMask selectorTypeOf(Selector selector, TypeMask mask) { |
681 return TypeMaskFactory.inferredTypeForSelector( | 681 return TypeMaskFactory.inferredTypeForSelector( |
682 selector, mask, _globalInferenceResults); | 682 selector, mask, _globalInferenceResults); |
683 } | 683 } |
684 | 684 |
685 TypeMask typeFromNativeBehavior( | 685 TypeMask typeFromNativeBehavior( |
686 native.NativeBehavior nativeBehavior, ClosedWorld closedWorld) { | 686 native.NativeBehavior nativeBehavior, ClosedWorld closedWorld) { |
687 return TypeMaskFactory.fromNativeBehavior(nativeBehavior, closedWorld); | 687 return TypeMaskFactory.fromNativeBehavior(nativeBehavior, closedWorld); |
688 } | 688 } |
689 } | 689 } |
OLD | NEW |