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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/inferrer/inferrer_visitor.dart

Issue 57873002: Build new IR for functions returning a constant (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 1 month 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 | Annotate | Revision Log
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 inferrer_visitor; 5 library inferrer_visitor;
6 6
7 import '../dart2jslib.dart' hide Selector, TypedSelector; 7 import '../dart2jslib.dart' hide Selector, TypedSelector;
8 import '../dart_types.dart'; 8 import '../dart_types.dart';
9 import '../elements/elements.dart'; 9 import '../elements/elements.dart';
10 import '../tree/tree.dart'; 10 import '../tree/tree.dart';
(...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 InferrerVisitor(Element analyzedElement, 575 InferrerVisitor(Element analyzedElement,
576 this.inferrer, 576 this.inferrer,
577 this.types, 577 this.types,
578 Compiler compiler, 578 Compiler compiler,
579 [LocalsHandler<T> handler]) 579 [LocalsHandler<T> handler])
580 : this.analyzedElement = analyzedElement, 580 : this.analyzedElement = analyzedElement,
581 this.locals = handler, 581 this.locals = handler,
582 super(compiler.enqueuer.resolution.getCachedElements(analyzedElement), 582 super(compiler.enqueuer.resolution.getCachedElements(analyzedElement),
583 compiler) { 583 compiler) {
584 if (handler != null) return; 584 if (handler != null) return;
585 Node node = analyzedElement.parseNode(compiler); 585 Node node;
586 try {
587 // @lry debug
588 node = analyzedElement.parseNode(compiler);
589 } catch (e) {
590 print(0);
kasperl 2013/11/06 08:30:04 I guess you're going to get rid of this before sub
lukas 2013/11/06 11:36:08 yes, stuff annotated with "@lry" will be removed
591 throw e;
kasperl 2013/11/06 08:30:04 rethrow.
592 }
586 FieldInitializationScope<T> fieldScope = 593 FieldInitializationScope<T> fieldScope =
587 analyzedElement.isGenerativeConstructor() 594 analyzedElement.isGenerativeConstructor()
588 ? new FieldInitializationScope<T>(types) 595 ? new FieldInitializationScope<T>(types)
589 : null; 596 : null;
590 locals = new LocalsHandler<T>(inferrer, types, compiler, node, fieldScope); 597 locals = new LocalsHandler<T>(inferrer, types, compiler, node, fieldScope);
591 } 598 }
592 599
593 T visitSendSet(SendSet node); 600 T visitSendSet(SendSet node);
594 601
595 T visitSuperSend(Send node); 602 T visitSuperSend(Send node);
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
1146 return type; 1153 return type;
1147 } 1154 }
1148 1155
1149 T visitCascade(Cascade node) { 1156 T visitCascade(Cascade node) {
1150 // Ignore the result of the cascade send and return the type of the cascade 1157 // Ignore the result of the cascade send and return the type of the cascade
1151 // receiver. 1158 // receiver.
1152 visit(node.expression); 1159 visit(node.expression);
1153 return cascadeReceiverStack.removeLast(); 1160 return cascadeReceiverStack.removeLast();
1154 } 1161 }
1155 } 1162 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698