Chromium Code Reviews| Index: pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart |
| diff --git a/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart b/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart |
| index d8368c306bf72fef2e569381d28e78affa01432d..851cde8ace5ec26d4966b8755be4647c2645396d 100644 |
| --- a/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart |
| +++ b/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart |
| @@ -1031,6 +1031,18 @@ class SimpleTypeInferrerVisitor<T> |
| node, new Selector.fromElement(element), element, arguments); |
| } |
| + @override |
| + T visitTypeLiteralSend(ast.Send node) { |
| + if (node.isCall) { |
|
Siggi Cherem (dart-lang)
2015/04/21 02:21:19
I added this because it seems that the ssa/builder
Johnni Winther
2015/04/21 08:15:13
The fix is good. This needs to happen at runtime s
|
| + // This is reached when users forget to put a `new` in front of a type |
| + // literal. The emitter will generate an actual call (even though it is |
| + // likely invalid), and for that it needs to have the arguments processed |
| + // as well. |
| + analyzeArguments(node.arguments); |
| + } |
| + return super.visitTypeLiteralSend(node); |
| + } |
| + |
| T visitStaticSend(ast.Send node) { |
| Element element = elements[node]; |
| assert(!elements.isAssert(node)); |