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

Side by Side Diff: pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart

Issue 2998113002: Reduce use of getClosureInfoForMember and cleanup closure_test (Closed)
Patch Set: Created 3 years, 4 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) 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 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 originTarget = originTarget.origin; 126 originTarget = originTarget.origin;
127 } 127 }
128 if (originTarget is MethodElement) { 128 if (originTarget is MethodElement) {
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 SynthesizedCallMethodElementX originTargetFunction = originTarget;
137 ClosureRepresentationInfo classMap = _compiler 137 target = kernel.localFunctions[originTargetFunction.expression];
138 .backendStrategy.closureDataLookup
139 .getClosureInfoForMember(originTargetFunction);
140 if (classMap.closureEntity != null) {
141 target = kernel.localFunctions[classMap.closureEntity];
142 }
143 } 138 }
144 } else if (originTarget is FieldElement) { 139 } else if (originTarget is FieldElement) {
145 target = kernel.fields[originTarget]; 140 target = kernel.fields[originTarget];
146 } 141 }
147 assert(target != null); 142 assert(target != null);
148 return target; 143 return target;
149 } 144 }
150 145
151 MemberDefinition getMemberDefinition(MemberElement member) { 146 MemberDefinition getMemberDefinition(MemberElement member) {
152 ir.Node node = getMemberNode(member); 147 ir.Node node = getMemberNode(member);
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 TypeMask selectorTypeOf(Selector selector, TypeMask mask) { 723 TypeMask selectorTypeOf(Selector selector, TypeMask mask) {
729 return TypeMaskFactory.inferredTypeForSelector( 724 return TypeMaskFactory.inferredTypeForSelector(
730 selector, mask, _globalInferenceResults); 725 selector, mask, _globalInferenceResults);
731 } 726 }
732 727
733 TypeMask typeFromNativeBehavior( 728 TypeMask typeFromNativeBehavior(
734 native.NativeBehavior nativeBehavior, ClosedWorld closedWorld) { 729 native.NativeBehavior nativeBehavior, ClosedWorld closedWorld) {
735 return TypeMaskFactory.fromNativeBehavior(nativeBehavior, closedWorld); 730 return TypeMaskFactory.fromNativeBehavior(nativeBehavior, closedWorld);
736 } 731 }
737 } 732 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698