Index: lib/compiler/implementation/resolved_visitor.dart |
diff --git a/lib/compiler/implementation/resolved_visitor.dart b/lib/compiler/implementation/resolved_visitor.dart |
index 47fcb883e82ce7facdc193d703369049bce45bd8..6289c7e83579c7605242673743735bf01a24135a 100644 |
--- a/lib/compiler/implementation/resolved_visitor.dart |
+++ b/lib/compiler/implementation/resolved_visitor.dart |
@@ -13,7 +13,15 @@ abstract class ResolvedVisitor<R> extends Visitor<R> { |
} else if (node.isOperator) { |
return visitOperatorSend(node); |
} else if (node.isPropertyAccess) { |
- return visitGetterSend(node); |
+ Element element = elements[node]; |
+ if (!Elements.isUnresolved(element) |
+ && element.kind == ElementKind.CLASS) { |
+ // A reference to a class literal. |
+ return visitTypeReferenceSend(node); |
+ } else { |
+ return visitGetterSend(node); |
+ } |
+ // TODO(karlklose): implement reference to type variable. |
} else if (Elements.isClosureSend(node, elements[node])) { |
return visitClosureSend(node); |
} else { |
@@ -51,6 +59,7 @@ abstract class ResolvedVisitor<R> extends Visitor<R> { |
abstract R visitDynamicSend(Send node); |
abstract R visitForeignSend(Send node); |
abstract R visitStaticSend(Send node); |
+ abstract R visitTypeReferenceSend(Send node); |
abstract void internalError(String reason, {Node node}); |