Index: pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart |
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart |
index 31c6f8c16ce37d0d3c3bc29b4143579f92a5ceb9..a13d16c1607996b9dfb309740d4d29e04c65707e 100644 |
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart |
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart |
@@ -37,7 +37,8 @@ class KernelBlock extends Block implements KernelStatement { |
abstract class KernelExpression implements Expression { |
/// Calls back to [inferrer] to perform type inference for whatever concrete |
/// type of [KernelExpression] this is. |
- DartType _inferExpression(DartType typeContext, bool typeNeeded); |
+ DartType _inferExpression( |
+ KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded); |
} |
/// Concrete shadow object representing a function expression in kernel form. |
@@ -46,7 +47,8 @@ class KernelFunctionExpression extends FunctionExpression |
KernelFunctionExpression(FunctionNode function) : super(function); |
@override |
- DartType _inferExpression(DartType typeContext, bool typeNeeded) { |
+ DartType _inferExpression( |
+ KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { |
// TODO(paulberry): implement. |
return typeNeeded ? const DynamicType() : null; |
} |
@@ -57,7 +59,8 @@ class KernelIntLiteral extends IntLiteral implements KernelExpression { |
KernelIntLiteral(int value) : super(value); |
@override |
- DartType _inferExpression(DartType typeContext, bool typeNeeded) { |
+ DartType _inferExpression( |
+ KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { |
// TODO(paulberry): implement. |
return typeNeeded ? const DynamicType() : null; |
} |
@@ -70,7 +73,8 @@ class KernelListLiteral extends ListLiteral implements KernelExpression { |
: super(expressions, typeArgument: typeArgument, isConst: isConst); |
@override |
- DartType _inferExpression(DartType typeContext, bool typeNeeded) { |
+ DartType _inferExpression( |
+ KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { |
// TODO(paulberry): implement. |
return typeNeeded ? const DynamicType() : null; |
} |
@@ -79,7 +83,8 @@ class KernelListLiteral extends ListLiteral implements KernelExpression { |
/// Concrete shadow object representing a null literal in kernel form. |
class KernelNullLiteral extends NullLiteral implements KernelExpression { |
@override |
- DartType _inferExpression(DartType typeContext, bool typeNeeded) { |
+ DartType _inferExpression( |
+ KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { |
// TODO(paulberry): implement. |
return typeNeeded ? const DynamicType() : null; |
} |
@@ -119,7 +124,7 @@ class KernelTypeInferrer extends TypeInferrer<Statement, Expression, |
// TODO(paulberry): experiment to see if dynamic dispatch would be better, |
// so that the type hierarchy will be simpler (which may speed up "is" |
// checks). |
- return expression._inferExpression(typeContext, typeNeeded); |
+ return expression._inferExpression(this, typeContext, typeNeeded); |
} else { |
// Encountered an expression type for which type inference is not yet |
// implemented, so just infer dynamic for now. |
@@ -173,7 +178,8 @@ class KernelVariableGet extends VariableGet implements KernelExpression { |
: super(variable, promotedType); |
@override |
- DartType _inferExpression(DartType typeContext, bool typeNeeded) { |
+ DartType _inferExpression( |
+ KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { |
// TODO(paulberry): implement. |
return typeNeeded ? const DynamicType() : null; |
} |