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

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

Issue 11413184: Create specialized versions of getInterceptor. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years 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 1790 matching lines...) Expand 10 before | Expand all | Expand 10 after
1801 target.kind == ElementKind.FOREIGN && 1801 target.kind == ElementKind.FOREIGN &&
1802 selector.name == const SourceString('JS')) { 1802 selector.name == const SourceString('JS')) {
1803 world.nativeEnqueuer.registerJsCall(node, this); 1803 world.nativeEnqueuer.registerJsCall(node, this);
1804 } 1804 }
1805 } 1805 }
1806 1806
1807 // TODO(ngeoffray): Warn if target is null and the send is 1807 // TODO(ngeoffray): Warn if target is null and the send is
1808 // unqualified. 1808 // unqualified.
1809 useElement(node, target); 1809 useElement(node, target);
1810 registerSend(selector, target); 1810 registerSend(selector, target);
1811 if (node.isPropertyAccess) {
1812 // It might be the closurization of a method.
1813 world.registerInstantiatedClass(compiler.functionClass);
1814 }
1811 return node.isPropertyAccess ? target : null; 1815 return node.isPropertyAccess ? target : null;
1812 } 1816 }
1813 1817
1814 void warnArgumentMismatch(Send node, Element target) { 1818 void warnArgumentMismatch(Send node, Element target) {
1815 // TODO(karlklose): we can be more precise about the reason of the 1819 // TODO(karlklose): we can be more precise about the reason of the
1816 // mismatch. 1820 // mismatch.
1817 warning(node.argumentsNode, MessageKind.INVALID_ARGUMENTS, 1821 warning(node.argumentsNode, MessageKind.INVALID_ARGUMENTS,
1818 [target.name]); 1822 [target.name]);
1819 } 1823 }
1820 1824
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
1919 1923
1920 visitLiteralInt(LiteralInt node) { 1924 visitLiteralInt(LiteralInt node) {
1921 world.registerInstantiatedClass(compiler.intClass); 1925 world.registerInstantiatedClass(compiler.intClass);
1922 } 1926 }
1923 1927
1924 visitLiteralDouble(LiteralDouble node) { 1928 visitLiteralDouble(LiteralDouble node) {
1925 world.registerInstantiatedClass(compiler.doubleClass); 1929 world.registerInstantiatedClass(compiler.doubleClass);
1926 } 1930 }
1927 1931
1928 visitLiteralBool(LiteralBool node) { 1932 visitLiteralBool(LiteralBool node) {
1933 world.registerInstantiatedClass(compiler.boolClass);
1929 } 1934 }
1930 1935
1931 visitLiteralString(LiteralString node) { 1936 visitLiteralString(LiteralString node) {
1932 world.registerInstantiatedClass(compiler.stringClass); 1937 world.registerInstantiatedClass(compiler.stringClass);
1933 } 1938 }
1934 1939
1935 visitLiteralNull(LiteralNull node) { 1940 visitLiteralNull(LiteralNull node) {
1941 world.registerInstantiatedClass(compiler.nullClass);
1936 } 1942 }
1937 1943
1938 visitStringJuxtaposition(StringJuxtaposition node) { 1944 visitStringJuxtaposition(StringJuxtaposition node) {
1939 world.registerInstantiatedClass(compiler.stringClass); 1945 world.registerInstantiatedClass(compiler.stringClass);
1940 node.visitChildren(this); 1946 node.visitChildren(this);
1941 } 1947 }
1942 1948
1943 visitNodeList(NodeList node) { 1949 visitNodeList(NodeList node) {
1944 for (Link<Node> link = node.nodes; !link.isEmpty; link = link.tail) { 1950 for (Link<Node> link = node.nodes; !link.isEmpty; link = link.tail) {
1945 visit(link.head); 1951 visit(link.head);
(...skipping 826 matching lines...) Expand 10 before | Expand all | Expand 10 after
2772 variables = new VariableListElement.node( 2778 variables = new VariableListElement.node(
2773 definitions, ElementKind.VARIABLE_LIST, resolver.enclosingElement); 2779 definitions, ElementKind.VARIABLE_LIST, resolver.enclosingElement);
2774 } 2780 }
2775 2781
2776 SourceString visitSendSet(SendSet node) { 2782 SourceString visitSendSet(SendSet node) {
2777 assert(node.arguments.tail.isEmpty); // Sanity check 2783 assert(node.arguments.tail.isEmpty); // Sanity check
2778 resolver.visit(node.arguments.head); 2784 resolver.visit(node.arguments.head);
2779 return visit(node.selector); 2785 return visit(node.selector);
2780 } 2786 }
2781 2787
2782 SourceString visitIdentifier(Identifier node) => node.source; 2788 SourceString visitIdentifier(Identifier node) {
2789 // The variable is initialized to null.
2790 resolver.world.registerInstantiatedClass(compiler.nullClass);
2791 return node.source;
2792 }
2783 2793
2784 visitNodeList(NodeList node) { 2794 visitNodeList(NodeList node) {
2785 for (Link<Node> link = node.nodes; !link.isEmpty; link = link.tail) { 2795 for (Link<Node> link = node.nodes; !link.isEmpty; link = link.tail) {
2786 SourceString name = visit(link.head); 2796 SourceString name = visit(link.head);
2787 VariableElement element = 2797 VariableElement element =
2788 new VariableElement(name, variables, kind, link.head); 2798 new VariableElement(name, variables, kind, link.head);
2789 resolver.defineElement(link.head, element); 2799 resolver.defineElement(link.head, element);
2790 } 2800 }
2791 } 2801 }
2792 } 2802 }
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
3140 return e; 3150 return e;
3141 } 3151 }
3142 3152
3143 /// Assumed to be called by [resolveRedirectingFactory]. 3153 /// Assumed to be called by [resolveRedirectingFactory].
3144 Element visitReturn(Return node) { 3154 Element visitReturn(Return node) {
3145 Node expression = node.expression; 3155 Node expression = node.expression;
3146 return finishConstructorReference(visit(expression), 3156 return finishConstructorReference(visit(expression),
3147 expression, expression); 3157 expression, expression);
3148 } 3158 }
3149 } 3159 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698