Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Unified Diff: pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart

Issue 2863733003: Hook up full list literal type inference logic. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
+ });
}
}
« no previous file with comments | « pkg/front_end/lib/src/fasta/kernel/body_builder.dart ('k') | pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698