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

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

Issue 1299413002: Move common identifiers, names and selectors to a separate library. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 5 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) 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 part of type_graph_inferrer; 5 part of type_graph_inferrer;
6 6
7 // A set of selectors we know do not escape the elements inside the 7 // A set of selectors we know do not escape the elements inside the
8 // list. 8 // list.
9 Set<String> doesNotEscapeListSet = new Set<String>.from( 9 Set<String> doesNotEscapeListSet = new Set<String>.from(
10 const <String>[ 10 const <String>[
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 } 348 }
349 349
350 bool isClosure(Element element) { 350 bool isClosure(Element element) {
351 if (!element.isFunction) return false; 351 if (!element.isFunction) return false;
352 /// Creating an instance of a class that implements [Function] also 352 /// Creating an instance of a class that implements [Function] also
353 /// closurizes the corresponding [call] member. We do not currently 353 /// closurizes the corresponding [call] member. We do not currently
354 /// track these, thus the check for [isClosurized] on such a method will 354 /// track these, thus the check for [isClosurized] on such a method will
355 /// return false. Instead we catch that case here for now. 355 /// return false. Instead we catch that case here for now.
356 // TODO(herhut): Handle creation of closures from instances of Function. 356 // TODO(herhut): Handle creation of closures from instances of Function.
357 if (element.isInstanceMember && 357 if (element.isInstanceMember &&
358 element.name == Compiler.CALL_OPERATOR_NAME) { 358 element.name == Identifiers.call) {
359 return true; 359 return true;
360 } 360 }
361 Element outermost = element.outermostEnclosingMemberOrTopLevel; 361 Element outermost = element.outermostEnclosingMemberOrTopLevel;
362 return outermost.declaration != element.declaration; 362 return outermost.declaration != element.declaration;
363 } 363 }
364 364
365 void visitMemberTypeInformation(MemberTypeInformation info) { 365 void visitMemberTypeInformation(MemberTypeInformation info) {
366 if (info.isClosurized) { 366 if (info.isClosurized) {
367 bailout('Returned from a closurized method'); 367 bailout('Returned from a closurized method');
368 } 368 }
(...skipping 18 matching lines...) Expand all
387 } 387 }
388 if (isParameterOfListAddingMethod(info.element) || 388 if (isParameterOfListAddingMethod(info.element) ||
389 isParameterOfMapAddingMethod(info.element)) { 389 isParameterOfMapAddingMethod(info.element)) {
390 // These elements are being handled in 390 // These elements are being handled in
391 // [visitDynamicCallSiteTypeInformation]. 391 // [visitDynamicCallSiteTypeInformation].
392 return; 392 return;
393 } 393 }
394 addNewEscapeInformation(info); 394 addNewEscapeInformation(info);
395 } 395 }
396 } 396 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/inferrer/closure_tracer.dart ('k') | pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698