Chromium Code Reviews| Index: lib/compiler/implementation/resolver.dart |
| diff --git a/lib/compiler/implementation/resolver.dart b/lib/compiler/implementation/resolver.dart |
| index 06f4b3fcc148b0531c57660a4d57940a20fb1ad7..8accc9f2ce7efcaf26cf4a36a566b5001c293176 100644 |
| --- a/lib/compiler/implementation/resolver.dart |
| +++ b/lib/compiler/implementation/resolver.dart |
| @@ -1751,10 +1751,7 @@ class ResolverVisitor extends CommonResolverVisitor<Element> { |
| } |
| visitStringInterpolationPart(StringInterpolationPart node) { |
| - SourceString name = const SourceString('toString'); |
| - LibraryElement library = enclosingElement.getLibrary(); |
| - Selector selector = new Selector.call(name, library, 0); |
| - world.registerDynamicInvocation(name, selector); |
| + registerHelperMethod(const SourceString('toString'), 0); |
| node.visitChildren(this); |
| } |
| @@ -1815,7 +1812,18 @@ class ResolverVisitor extends CommonResolverVisitor<Element> { |
| mapping[node] = target; |
| } |
| + registerHelperMethod(SourceString name, int arity) { |
|
ahe
2012/09/19 12:24:15
How about "registerImplicitInvocation"?
Anton Muhin
2012/09/19 12:33:39
sweet, done
|
| + Selector selector = new Selector.call(name, null, arity); |
| + world.registerDynamicInvocation(name, selector); |
| + } |
| + |
| visitForIn(ForIn node) { |
| + for (final name in [ |
|
ahe
2012/09/19 12:24:15
Make it a const list.
Anton Muhin
2012/09/19 12:33:39
Done.
|
| + const SourceString('iterator'), |
| + const SourceString('next'), |
| + const SourceString('hasNext')]) { |
| + registerHelperMethod(name, 0); |
| + } |
| visit(node.expression); |
| Scope blockScope = new BlockScope(scope); |
| Node declaration = node.declaredIdentifier; |