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

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

Issue 2721403006: Split NativeData (Closed)
Patch Set: Updated cf. comments. Created 3 years, 9 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.node_tracer; 5 library compiler.src.inferrer.node_tracer;
6 6
7 import '../common/names.dart' show Identifiers; 7 import '../common/names.dart' show Identifiers;
8 import '../compiler.dart' show Compiler; 8 import '../compiler.dart' show Compiler;
9 import '../elements/elements.dart'; 9 import '../elements/elements.dart';
10 import '../types/types.dart' show ContainerTypeMask, MapTypeMask; 10 import '../types/types.dart' show ContainerTypeMask, MapTypeMask;
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 if (info.element.isField && 384 if (info.element.isField &&
385 !inferrer.compiler.backend 385 !inferrer.compiler.backend
386 .canFieldBeUsedForGlobalOptimizations(info.element)) { 386 .canFieldBeUsedForGlobalOptimizations(info.element)) {
387 bailout('Escape to code that has special backend treatment'); 387 bailout('Escape to code that has special backend treatment');
388 } 388 }
389 addNewEscapeInformation(info); 389 addNewEscapeInformation(info);
390 } 390 }
391 391
392 void visitParameterTypeInformation(ParameterTypeInformation info) { 392 void visitParameterTypeInformation(ParameterTypeInformation info) {
393 ParameterElement element = info.element; 393 ParameterElement element = info.element;
394 if (inferrer.isNativeElement(element.functionDeclaration)) { 394 if (inferrer.isNativeMember(element.functionDeclaration)) {
395 bailout('Passed to a native method'); 395 bailout('Passed to a native method');
396 } 396 }
397 if (!inferrer.compiler.backend 397 if (!inferrer.compiler.backend
398 .canParameterBeUsedForGlobalOptimizations(info.element)) { 398 .canParameterBeUsedForGlobalOptimizations(info.element)) {
399 bailout('Escape to code that has special backend treatment'); 399 bailout('Escape to code that has special backend treatment');
400 } 400 }
401 if (isParameterOfListAddingMethod(info.element) || 401 if (isParameterOfListAddingMethod(info.element) ||
402 isParameterOfMapAddingMethod(info.element)) { 402 isParameterOfMapAddingMethod(info.element)) {
403 // These elements are being handled in 403 // These elements are being handled in
404 // [visitDynamicCallSiteTypeInformation]. 404 // [visitDynamicCallSiteTypeInformation].
405 return; 405 return;
406 } 406 }
407 addNewEscapeInformation(info); 407 addNewEscapeInformation(info);
408 } 408 }
409 } 409 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/inferrer/inferrer_engine.dart ('k') | pkg/compiler/lib/src/inferrer/type_graph_nodes.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698