Index: pkg/compiler/lib/src/kernel/kernel_visitor.dart |
diff --git a/pkg/compiler/lib/src/kernel/kernel_visitor.dart b/pkg/compiler/lib/src/kernel/kernel_visitor.dart |
index ea28f680ac5d31fabf613170a807f70bc11f2a60..e61ca0bb74c0f24e42e54101fe06cd2111b1f1ff 100644 |
--- a/pkg/compiler/lib/src/kernel/kernel_visitor.dart |
+++ b/pkg/compiler/lib/src/kernel/kernel_visitor.dart |
@@ -2162,12 +2162,20 @@ class KernelVisitor extends Object |
} |
@override |
- ir.StaticInvocation handleStaticFunctionIncompatibleInvoke( |
+ ir.Expression handleStaticFunctionIncompatibleInvoke( |
Send node, |
MethodElement function, |
NodeList arguments, |
CallStructure callStructure, |
_) { |
+ if (!kernel.compiler.resolution.hasBeenResolved(function) && |
+ !function.isMalformed) { |
+ // TODO(sigmund): consider calling nSM or handle recovery differently |
+ // here. This case occurs only when this call was the only call to |
+ // function, and knowing that the call was erroneous, our resolver didn't |
+ // enqueue function itself. |
+ return new ir.InvalidExpression(); |
+ } |
return buildStaticInvoke(function, arguments, isConst: false); |
} |
@@ -2241,14 +2249,13 @@ class KernelVisitor extends Object |
} |
@override |
- ir.MethodInvocation handleStaticSetterInvoke( |
+ ir.Expression handleStaticSetterInvoke( |
Send node, |
FunctionElement setter, |
NodeList arguments, |
CallStructure callStructure, |
_) { |
- return buildCall(buildStaticAccessor(null, setter).buildSimpleRead(), |
- callStructure, arguments); |
+ return new ir.InvalidExpression(); |
} |
@override |