| 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 8a1b7645ca0c2944f87f2c7241c8bea48b32afbe..a88f1c4f10e7841141ea60863acf974840e8048c 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
|
| @@ -298,14 +298,23 @@ class KernelIsNotExpression extends Not implements KernelExpression {
|
|
|
| /// Concrete shadow object representing a list literal in kernel form.
|
| class KernelListLiteral extends ListLiteral implements KernelExpression {
|
| + final DartType _declaredTypeArgument;
|
| +
|
| KernelListLiteral(List<Expression> expressions,
|
| {DartType typeArgument, bool isConst: false})
|
| - : super(expressions, typeArgument: typeArgument, isConst: isConst);
|
| + : _declaredTypeArgument = typeArgument,
|
| + super(expressions,
|
| + typeArgument: typeArgument ?? const DynamicType(),
|
| + isConst: isConst);
|
|
|
| @override
|
| DartType _inferExpression(
|
| KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) {
|
| - return inferrer.inferListLiteral(typeContext, typeNeeded, typeArgument);
|
| + return inferrer.inferListLiteral(
|
| + typeContext, typeNeeded, fileOffset, _declaredTypeArgument, expressions,
|
| + (type) {
|
| + typeArgument = type;
|
| + });
|
| }
|
| }
|
|
|
|
|