Index: pkg/compiler/lib/src/resolution/send_resolver.dart |
diff --git a/pkg/compiler/lib/src/resolution/send_resolver.dart b/pkg/compiler/lib/src/resolution/send_resolver.dart |
index 4c6110f45336cbdda68492f7a983551a6cbca205..b8eeb2fed37369f53c94d4f66365632b04a4e9ed 100644 |
--- a/pkg/compiler/lib/src/resolution/send_resolver.dart |
+++ b/pkg/compiler/lib/src/resolution/send_resolver.dart |
@@ -234,12 +234,17 @@ abstract class SendResolverMixin { |
case SendStructureKind.SET: |
return new SetStructure(semantics, selector); |
case SendStructureKind.INVOKE: |
- if (semantics.kind == AccessKind.SUPER_METHOD) { |
- // TODO(johnniwinther): Find all statically resolved case that should |
- // go here (top level, static, local, ...). |
- if (!selector.callStructure.signatureApplies(semantics.element)) { |
- return new IncompatibleInvokeStructure(semantics, selector); |
- } |
+ switch (semantics.kind) { |
+ case AccessKind.STATIC_METHOD: |
+ case AccessKind.SUPER_METHOD: |
+ case AccessKind.TOPLEVEL_METHOD: |
+ // TODO(johnniwinther): Should local function also be handled here? |
+ if (!selector.callStructure.signatureApplies(semantics.element)) { |
+ return new IncompatibleInvokeStructure(semantics, selector); |
+ } |
+ break; |
+ default: |
+ break; |
} |
return new InvokeStructure(semantics, selector); |
case SendStructureKind.UNARY: |