Chromium Code Reviews| 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)); |