| 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 59372ca77ff9d2472237078b085a1247d12ebb86..7a705ddea7d0bbab16933d5344bae2606b1cbbd9 100644
|
| --- a/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart
|
| +++ b/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart
|
| @@ -1696,6 +1696,26 @@ class SimpleTypeInferrerVisitor<T>
|
| }
|
|
|
| @override
|
| + T visitStaticSetterInvoke(
|
| + ast.Send node,
|
| + MethodElement setter,
|
| + ast.NodeList arguments,
|
| + CallStructure callStructure,
|
| + _) {
|
| + return handleInvalidStaticInvoke(node);
|
| + }
|
| +
|
| + @override
|
| + T visitTopLevelSetterInvoke(
|
| + ast.Send node,
|
| + MethodElement setter,
|
| + ast.NodeList arguments,
|
| + CallStructure callStructure,
|
| + _) {
|
| + return handleInvalidStaticInvoke(node);
|
| + }
|
| +
|
| + @override
|
| T visitUnresolvedInvoke(
|
| ast.Send node,
|
| Element element,
|
| @@ -1871,6 +1891,22 @@ class SimpleTypeInferrerVisitor<T>
|
| }
|
|
|
| @override
|
| + T visitStaticSetterGet(
|
| + ast.Send node,
|
| + MethodElement setter,
|
| + _) {
|
| + return types.dynamicType;
|
| + }
|
| +
|
| + @override
|
| + T visitTopLevelSetterGet(
|
| + ast.Send node,
|
| + MethodElement setter,
|
| + _) {
|
| + return types.dynamicType;
|
| + }
|
| +
|
| + @override
|
| T visitUnresolvedGet(
|
| ast.Send node,
|
| Element element,
|
| @@ -1935,7 +1971,6 @@ class SimpleTypeInferrerVisitor<T>
|
| _) {
|
| ArgumentsTypes argumentTypes = analyzeArguments(node.arguments);
|
| Selector selector = elements.getSelector(node);
|
| - if (!selector.applies(function, compiler.world)) return types.dynamicType;
|
| // This only works for function statements. We need a
|
| // more sophisticated type system with function types to support
|
| // more.
|
| @@ -1944,6 +1979,17 @@ class SimpleTypeInferrerVisitor<T>
|
| sideEffects, inLoop);
|
| }
|
|
|
| + @override
|
| + T visitLocalFunctionIncompatibleInvoke(
|
| + ast.Send node,
|
| + LocalFunctionElement function,
|
| + ast.NodeList arguments,
|
| + CallStructure callStructure,
|
| + _) {
|
| + analyzeArguments(node.arguments);
|
| + return types.dynamicType;
|
| + }
|
| +
|
| T handleStaticSend(ast.Node node,
|
| Selector selector,
|
| Element element,
|
|
|