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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/resolution/members.dart

Issue 11348177: Cleanup after the interceptor refactoring work, and add a new SSA instruction for an interceptor, s… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 resolution; 5 part of resolution;
6 6
7 abstract class TreeElements { 7 abstract class TreeElements {
8 Element operator[](Node node); 8 Element operator[](Node node);
9 Selector getSelector(Send send); 9 Selector getSelector(Send send);
10 DartType getType(Node node); 10 DartType getType(Node node);
(...skipping 1489 matching lines...) Expand 10 before | Expand all | Expand 10 after
1500 Element previousEnclosingElement = enclosingElement; 1500 Element previousEnclosingElement = enclosingElement;
1501 enclosingElement = function; 1501 enclosingElement = function;
1502 // Run the body in a fresh statement scope. 1502 // Run the body in a fresh statement scope.
1503 StatementScope oldStatementScope = statementScope; 1503 StatementScope oldStatementScope = statementScope;
1504 statementScope = new StatementScope(); 1504 statementScope = new StatementScope();
1505 visit(node.body); 1505 visit(node.body);
1506 statementScope = oldStatementScope; 1506 statementScope = oldStatementScope;
1507 1507
1508 scope = oldScope; 1508 scope = oldScope;
1509 enclosingElement = previousEnclosingElement; 1509 enclosingElement = previousEnclosingElement;
1510
1511 world.registerInstantiatedClass(compiler.functionClass);
1510 } 1512 }
1511 1513
1512 visitIf(If node) { 1514 visitIf(If node) {
1513 visit(node.condition); 1515 visit(node.condition);
1514 visit(node.thenPart); 1516 visit(node.thenPart);
1515 visit(node.elsePart); 1517 visit(node.elsePart);
1516 } 1518 }
1517 1519
1518 static bool isLogicalOperator(Identifier op) { 1520 static bool isLogicalOperator(Identifier op) {
1519 String str = op.source.stringValue; 1521 String str = op.source.stringValue;
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
1875 } 1877 }
1876 } else if (Elements.isStaticOrTopLevel(target)) { 1878 } else if (Elements.isStaticOrTopLevel(target)) {
1877 // TODO(kasperl): It seems like we're not supposed to register 1879 // TODO(kasperl): It seems like we're not supposed to register
1878 // the use of classes. Wouldn't it be simpler if we just did? 1880 // the use of classes. Wouldn't it be simpler if we just did?
1879 if (!target.isClass()) { 1881 if (!target.isClass()) {
1880 // [target] might be the implementation element and only declaration 1882 // [target] might be the implementation element and only declaration
1881 // elements may be registered. 1883 // elements may be registered.
1882 world.registerStaticUse(target.declaration); 1884 world.registerStaticUse(target.declaration);
1883 } 1885 }
1884 } 1886 }
1885 if (target == null) {
1886 // If we haven't found an element for this send, it might be a
1887 // dynamic send on a primitive value. Register the selector with
1888 // the world to add an interceptor, if necessary.
1889 world.registerUsedSelector(selector);
1890 }
1891 } 1887 }
1892 1888
1893 visitLiteralInt(LiteralInt node) { 1889 visitLiteralInt(LiteralInt node) {
1894 world.registerInstantiatedClass(compiler.intClass); 1890 world.registerInstantiatedClass(compiler.intClass);
1895 } 1891 }
1896 1892
1897 visitLiteralDouble(LiteralDouble node) { 1893 visitLiteralDouble(LiteralDouble node) {
1898 world.registerInstantiatedClass(compiler.doubleClass); 1894 world.registerInstantiatedClass(compiler.doubleClass);
1899 } 1895 }
1900 1896
(...skipping 1222 matching lines...) Expand 10 before | Expand all | Expand 10 after
3123 return e; 3119 return e;
3124 } 3120 }
3125 3121
3126 /// Assumed to be called by [resolveRedirectingFactory]. 3122 /// Assumed to be called by [resolveRedirectingFactory].
3127 Element visitReturn(Return node) { 3123 Element visitReturn(Return node) {
3128 Node expression = node.expression; 3124 Node expression = node.expression;
3129 return finishConstructorReference(visit(expression), 3125 return finishConstructorReference(visit(expression),
3130 expression, expression); 3126 expression, expression);
3131 } 3127 }
3132 } 3128 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698