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 ca3b4ed4d07b3e91a73e354240ccfffbb98c2c34..fbfee6bad2ffb6202c1fd4150741e3840c887a64 100644 |
| --- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
| +++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
| @@ -11,6 +11,12 @@ import '../parser/parser.dart' show FormalParameterType, optional; |
| import '../parser/identifier_context.dart' show IdentifierContext; |
| +import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart' |
|
ahe
2017/04/18 15:49:59
Make relative?
Paul Berry
2017/04/18 16:33:17
I actually prefer absolute imports, and I was hopi
|
| + show KernelVariableDeclaration; |
| + |
| +import 'package:front_end/src/fasta/type_inference/type_inferrer.dart' |
| + show TypeInferrer; |
| + |
| import 'package:kernel/ast.dart'; |
| import 'package:kernel/clone.dart' show CloneVisitor; |
| @@ -79,6 +85,9 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
| @override |
| final Uri uri; |
| + final TypeInferrer<Statement, Expression, KernelVariableDeclaration, Field> |
| + _typeInferrer; |
|
ahe
2017/04/18 15:49:59
I prefer to keep things public unless implementing
Paul Berry
2017/04/18 16:33:17
Heh, I prefer the reverse. Let's talk about this
|
| + |
| Scope formalParameterScope; |
| bool inInitializer = false; |
| @@ -112,7 +121,8 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
| this.coreTypes, |
| this.classBuilder, |
| this.isInstanceMember, |
| - this.uri) |
| + this.uri, |
| + this._typeInferrer) |
| : enclosingScope = scope, |
| library = library, |
| isDartLibrary = library.uri.scheme == "dart", |
| @@ -423,6 +433,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
| } else { |
| internalError("Unhandled: ${builder.runtimeType}"); |
| } |
| + _typeInferrer.inferBody(body, uri); |
| builder.body = body; |
| if (formals?.optional != null) { |
| Iterator<FormalParameterBuilder> formalBuilders = |