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 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 if (originTarget is ConstructorBodyElement) { | 129 if (originTarget is ConstructorBodyElement) { |
130 ConstructorBodyElement body = originTarget; | 130 ConstructorBodyElement body = originTarget; |
131 originTarget = body.constructor; | 131 originTarget = body.constructor; |
132 } | 132 } |
133 target = kernel.functions[originTarget]; | 133 target = kernel.functions[originTarget]; |
134 // Closures require a lookup one level deeper in the closure class mapper. | 134 // Closures require a lookup one level deeper in the closure class mapper. |
135 if (target == null) { | 135 if (target == null) { |
136 MethodElement originTargetFunction = originTarget; | 136 MethodElement originTargetFunction = originTarget; |
137 ClosureRepresentationInfo classMap = _compiler | 137 ClosureRepresentationInfo classMap = _compiler |
138 .backendStrategy.closureDataLookup | 138 .backendStrategy.closureDataLookup |
139 .getClosureRepresentationInfo(originTargetFunction); | 139 .getClosureInfoForMember(originTargetFunction); |
140 if (classMap.closureEntity != null) { | 140 if (classMap.closureEntity != null) { |
141 target = kernel.localFunctions[classMap.closureEntity]; | 141 target = kernel.localFunctions[classMap.closureEntity]; |
142 } | 142 } |
143 } | 143 } |
144 } else if (originTarget is FieldElement) { | 144 } else if (originTarget is FieldElement) { |
145 target = kernel.fields[originTarget]; | 145 target = kernel.fields[originTarget]; |
146 } | 146 } |
147 assert(target != null); | 147 assert(target != null); |
148 return target; | 148 return target; |
149 } | 149 } |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 @override | 392 @override |
393 Spannable getSpannable(MemberEntity member, ir.Node node) { | 393 Spannable getSpannable(MemberEntity member, ir.Node node) { |
394 return getNode(node); | 394 return getNode(node); |
395 } | 395 } |
396 | 396 |
397 @override | 397 @override |
398 CapturedLoopScope getCapturedLoopScope( | 398 CapturedLoopScope getCapturedLoopScope( |
399 ClosureDataLookup closureLookup, ir.TreeNode node) { | 399 ClosureDataLookup closureLookup, ir.TreeNode node) { |
400 return closureLookup.getCapturedLoopScope(getNode(node)); | 400 return closureLookup.getCapturedLoopScope(getNode(node)); |
401 } | 401 } |
| 402 |
| 403 @override |
| 404 ClosureRepresentationInfo getClosureRepresentationInfo( |
| 405 ClosureDataLookup closureLookup, ir.TreeNode node) { |
| 406 LocalFunctionElement localFunction = getElement(node); |
| 407 return closureLookup.getClosureInfo(localFunction.node); |
| 408 } |
402 } | 409 } |
403 | 410 |
404 /// Visitor that converts kernel dart types into [ResolutionDartType]. | 411 /// Visitor that converts kernel dart types into [ResolutionDartType]. |
405 class DartTypeConverter extends ir.DartTypeVisitor<ResolutionDartType> { | 412 class DartTypeConverter extends ir.DartTypeVisitor<ResolutionDartType> { |
406 final KernelAstAdapter astAdapter; | 413 final KernelAstAdapter astAdapter; |
407 bool topLevel = true; | 414 bool topLevel = true; |
408 | 415 |
409 DartTypeConverter(this.astAdapter); | 416 DartTypeConverter(this.astAdapter); |
410 | 417 |
411 ResolutionDartType convert(ir.DartType type) { | 418 ResolutionDartType convert(ir.DartType type) { |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
721 TypeMask selectorTypeOf(Selector selector, TypeMask mask) { | 728 TypeMask selectorTypeOf(Selector selector, TypeMask mask) { |
722 return TypeMaskFactory.inferredTypeForSelector( | 729 return TypeMaskFactory.inferredTypeForSelector( |
723 selector, mask, _globalInferenceResults); | 730 selector, mask, _globalInferenceResults); |
724 } | 731 } |
725 | 732 |
726 TypeMask typeFromNativeBehavior( | 733 TypeMask typeFromNativeBehavior( |
727 native.NativeBehavior nativeBehavior, ClosedWorld closedWorld) { | 734 native.NativeBehavior nativeBehavior, ClosedWorld closedWorld) { |
728 return TypeMaskFactory.fromNativeBehavior(nativeBehavior, closedWorld); | 735 return TypeMaskFactory.fromNativeBehavior(nativeBehavior, closedWorld); |
729 } | 736 } |
730 } | 737 } |
OLD | NEW |