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

Side by Side Diff: pkg/compiler/lib/src/inferrer/closure_tracer.dart

Issue 2975053002: Encapsulate use of ast.Node in type_graph_nodes (Closed)
Patch Set: Updated cf. comments 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 compiler.src.inferrer.closure_tracer; 5 library compiler.src.inferrer.closure_tracer;
6 6
7 import '../common/names.dart' show Names; 7 import '../common/names.dart' show Names;
8 import '../elements/elements.dart'; 8 import '../elements/elements.dart';
9 import '../elements/entities.dart'; 9 import '../elements/entities.dart';
10 import '../js_backend/backend.dart' show JavaScriptBackend; 10 import '../js_backend/backend.dart' show JavaScriptBackend;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 } 77 }
78 } 78 }
79 79
80 @override 80 @override
81 visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) { 81 visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
82 super.visitStaticCallSiteTypeInformation(info); 82 super.visitStaticCallSiteTypeInformation(info);
83 MemberEntity called = info.calledElement; 83 MemberEntity called = info.calledElement;
84 if (inferrer.closedWorld.commonElements.isForeign(called)) { 84 if (inferrer.closedWorld.commonElements.isForeign(called)) {
85 String name = called.name; 85 String name = called.name;
86 if (name == JavaScriptBackend.JS || name == 'DART_CLOSURE_TO_JS') { 86 if (name == JavaScriptBackend.JS || name == 'DART_CLOSURE_TO_JS') {
87 bailout('Used in JS ${info.call}'); 87 bailout('Used in JS ${info.debugName}');
88 } 88 }
89 } 89 }
90 if (called.isGetter && 90 if (called.isGetter &&
91 info.selector != null && 91 info.selector != null &&
92 info.selector.isCall && 92 info.selector.isCall &&
93 inferrer.types.getInferredTypeOfMember(called) == currentUser) { 93 inferrer.types.getInferredTypeOfMember(called) == currentUser) {
94 // This node can be a closure call as well. For example, `foo()` 94 // This node can be a closure call as well. For example, `foo()`
95 // where `foo` is a getter. 95 // where `foo` is a getter.
96 _registerCallForLaterAnalysis(info); 96 _registerCallForLaterAnalysis(info);
97 } 97 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 @override 139 @override
140 visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) { 140 visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) {
141 super.visitStaticCallSiteTypeInformation(info); 141 super.visitStaticCallSiteTypeInformation(info);
142 if (info.calledElement == tracedElements.first && 142 if (info.calledElement == tracedElements.first &&
143 info.selector != null && 143 info.selector != null &&
144 info.selector.isGetter) { 144 info.selector.isGetter) {
145 addNewEscapeInformation(info); 145 addNewEscapeInformation(info);
146 } 146 }
147 } 147 }
148 } 148 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/inferrer/builder.dart ('k') | pkg/compiler/lib/src/inferrer/inferrer_engine.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698