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 ff6d4eb0013035c9182867770f0074c68f32a997..e88a52c30b5564fccdabaffd5693aa6f0b8ecc78 100644 |
| --- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
| +++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
| @@ -305,6 +305,23 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
| switchScope = outerSwitchScope; |
| } |
| + void declareVariable(VariableDeclaration variable) { |
| + InputError error = scope.declare( |
| + variable.name, |
| + new KernelVariableBuilder( |
| + variable, member ?? classBuilder ?? library, uri), |
| + variable.fileOffset, |
| + uri); |
| + if (error != null) { |
|
ahe
2017/05/23 15:04:24
This is currently dead code as error is always nul
|
| + addCompileTimeError( |
| + variable.fileOffset, |
| + "Can't declare '${variable.name}' because it was already used in " |
| + "this scope."); |
| + library.addCompileTimeError(error.charOffset, error.error, |
| + fileUri: error.uri); |
| + } |
| + } |
| + |
| @override |
| JumpTarget createJumpTarget(JumpTargetKind kind, int charOffset) { |
| return new JumpTarget(kind, functionNestingLevel, member, charOffset); |
| @@ -1143,8 +1160,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
| VariableDeclaration variable = pop(); |
| variable.fileOffset = nameToken.charOffset; |
| push(variable); |
| - scope[variable.name] = new KernelVariableBuilder( |
| - variable, member ?? classBuilder ?? library, uri); |
| + declareVariable(variable); |
| } |
| @override |
| @@ -2062,8 +2078,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
| push(new KernelFunctionDeclaration( |
| variable, new FunctionNode(new InvalidStatement())) |
| ..fileOffset = beginToken.charOffset); |
| - scope[variable.name] = new KernelVariableBuilder( |
| - variable, member ?? classBuilder ?? library, uri); |
| + declareVariable(variable); |
| enterLocalScope(); |
| } |
| @@ -2668,6 +2683,12 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
| } |
| @override |
| + void addCompileTimeErrorFromMessage(FastaMessage message) { |
| + library.addCompileTimeError(message.charOffset, message.message, |
| + fileUri: message.uri); |
| + } |
| + |
| + @override |
| void debugEvent(String name) { |
| // printEvent(name); |
| } |