Index: pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
index 881d8f3cdd4b486557a0ad43ae39a5a349b640ba..25e2299d5e346f5214e5828e3767dbacf29e5225 100644 |
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
@@ -224,13 +224,14 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
} |
Block popBlock(int count) { |
- List<Statement> statements = popList(count) ?? <Statement>[]; |
+ List statements = popList(count) ?? <Statement>[]; |
Siggi Cherem (dart-lang)
2017/02/02 04:26:58
this is a temporary way of hiding some errors, but
ahe
2017/02/02 07:28:30
I'm strongly opposed to removing types to appease
Siggi Cherem (dart-lang)
2017/02/02 16:30:35
in this case I don't believe it's a bug in the che
|
List<Statement> copy; |
for (int i = 0; i < statements.length; i++) { |
var statement = statements[i]; |
if (statement is List) { |
copy ??= new List<Statement>.from(statements.getRange(0, i)); |
- copy.addAll(statement); |
+ List<Statement> subStatements = statement; |
+ copy.addAll(subStatements); |
} else if (copy != null) { |
copy.add(statement); |
} |
@@ -459,7 +460,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
@override |
void endArguments(int count, Token beginToken, Token endToken) { |
debugEvent("Arguments"); |
- List arguments = popList(count) ?? <Expression>[]; |
+ List<Expression> arguments = popList(count) ?? <Expression>[]; |
int firstNamedArgument = arguments.length; |
for (int i = 0; i < arguments.length; i++) { |
var node = arguments[i]; |
@@ -493,7 +494,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
void endSend(Token token) { |
debugEvent("Send"); |
Arguments arguments = pop(); |
- List typeArguments = pop(); |
+ List<DartType> typeArguments = pop(); |
Object receiver = pop(); |
if (arguments != null && typeArguments != null) { |
arguments.types.addAll(typeArguments); |
@@ -989,7 +990,8 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
if (variableOrExpression is VariableDeclaration) { |
variables.add(variableOrExpression); |
} else if (variableOrExpression is List) { |
- variables.addAll(variableOrExpression); |
+ List<VariableDeclaration> vars = variableOrExpression; |
Siggi Cherem (dart-lang)
2017/02/02 04:26:58
This has an implicit downcast warning, without thi
ahe
2017/02/02 07:28:30
Implicit downcast warning?!?
kasperl
2017/02/02 07:51:30
Is this the warning that will go away when we impl
Siggi Cherem (dart-lang)
2017/02/06 23:35:50
It's quite related, but there is an extra nuance h
|
+ variables.addAll(vars); |
} else if (variableOrExpression == null) { |
// Do nothing. |
} else if (variableOrExpression is Expression) { |
@@ -1189,7 +1191,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
push(name.buildTypesWithBuiltArguments(arguments)); |
} else if (name is TypeDeclarationBuilder) { |
push(name.buildTypesWithBuiltArguments(arguments)); |
- } else if (name is TypeBuilder) { |
+ } else if (name is KernelTypeBuilder) { |
Siggi Cherem (dart-lang)
2017/02/02 04:26:58
.build is not defined in TypeBuilder - I was expec
ahe
2017/02/02 07:28:30
This fix isn't correct. It potentially causes a Ty
Siggi Cherem (dart-lang)
2017/02/02 16:30:35
Shold `TypeBuilder` declare a `build()` method ins
Siggi Cherem (dart-lang)
2017/02/06 23:35:50
Done - I added `build()` to TypeBuilder as discuss
|
push(name.build()); |
} else { |
push(toKernelType(name, arguments)); |
@@ -1269,7 +1271,8 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
name.fileOffset); |
} |
if (thisKeyword == null) { |
- variable = builder.build(); |
+ KernelFormalParameterBuilder formalBuilder = builder; |
+ variable = formalBuilder.build(); |
variable.initializer = name.initializer; |
} else if (builder.isField && builder.parent == classBuilder) { |
FieldBuilder field = builder; |
@@ -1609,7 +1612,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
debugEvent("NewExpression"); |
Arguments arguments = pop(); |
String name = pop(); |
- List typeArguments = pop(); |
+ List<DartType> typeArguments = pop(); |
var type = pop(); |
if (typeArguments != null) { |
@@ -1618,7 +1621,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
} |
String errorName; |
- if (type is ClassBuilder) { |
+ if (type is KernelClassBuilder) { |
Builder b = type.findConstructorOrFactory(name); |
Member target; |
if (b == null) { |
@@ -1731,7 +1734,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
exitLocalScope(); |
} |
FormalParameters formals = pop(); |
- List typeParameters = pop(); |
+ List<TypeParameter> typeParameters = pop(); |
push(formals.addToFunction(new FunctionNode(body, |
typeParameters: typeParameters, asyncMarker: asyncModifier))); |
functionNestingLevel--; |
@@ -1757,7 +1760,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
AsyncMarker asyncModifier = pop(); |
exitLocalScope(); |
FormalParameters formals = pop(); |
- List typeParameters = pop(); |
+ List<TypeParameter> typeParameters = pop(); |
FunctionNode function = formals.addToFunction(new FunctionNode(body, |
typeParameters: typeParameters, asyncMarker: asyncModifier)); |
push(new FunctionExpression(function)); |