Index: pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart |
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart |
index 5e064d168d61c397e9f89fb6ab510b72f0e6a0e0..dc9d033e9584b9717516fb3ef72f8aede2087baa 100644 |
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart |
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart |
@@ -177,6 +177,10 @@ abstract class TypeInferrer { |
/// Performs type inference on the given constructor initializer. |
void inferInitializer(Initializer initializer); |
+ |
+ /// Performs type inference on the given function parameter initializer |
+ /// expression. |
+ void inferParameterInitializer(Expression initializer, DartType declaredType); |
} |
/// Derived class containing generic implementations of [TypeInferrer]. |
@@ -489,6 +493,13 @@ abstract class TypeInferrerImpl extends TypeInferrer { |
return inferredType; |
} |
+ @override |
+ void inferParameterInitializer( |
+ Expression initializer, DartType declaredType) { |
+ assert(closureContext == null); |
+ inferExpression(initializer, declaredType, false); |
+ } |
+ |
/// Modifies a type as appropriate when inferring a closure return type. |
DartType inferReturnType(DartType returnType, bool isExpressionFunction) { |
if (returnType == null) { |