| Index: pkg/compiler/lib/src/typechecker.dart
|
| diff --git a/pkg/compiler/lib/src/typechecker.dart b/pkg/compiler/lib/src/typechecker.dart
|
| index 0a0596ce0397a20f1e411dc3c08afe8c46ab70b2..71a0fc1bfb225775bd48c2618ce1cac89965571d 100644
|
| --- a/pkg/compiler/lib/src/typechecker.dart
|
| +++ b/pkg/compiler/lib/src/typechecker.dart
|
| @@ -1198,8 +1198,15 @@ class TypeCheckerVisitor extends Visitor<DartType> {
|
| Identifier selector = node.selector.asIdentifier();
|
| if (Elements.isClosureSend(node, element)) {
|
| if (element != null) {
|
| - // foo() where foo is a local or a parameter.
|
| - return analyzeInvocation(node, createPromotedAccess(element));
|
| + if (element.isError) {
|
| + // foo() where foo is erroneous
|
| + return analyzeInvocation(node, const DynamicAccess());
|
| + } else {
|
| + assert(invariant(node, element.isLocal,
|
| + message: "Unexpected element $element in closure send."));
|
| + // foo() where foo is a local or a parameter.
|
| + return analyzeInvocation(node, createPromotedAccess(element));
|
| + }
|
| } else {
|
| // exp() where exp is some complex expression like (o) or foo().
|
| DartType type = analyze(node.selector);
|
|
|