| Index: pkg/front_end/lib/src/fasta/source/diet_listener.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/source/diet_listener.dart b/pkg/front_end/lib/src/fasta/source/diet_listener.dart
|
| index ab460fb3c76dd2472d150b57363e1c4281c6b40a..80d49e6ea2b904f9d2a281f17e3daec2dd18a4b9 100644
|
| --- a/pkg/front_end/lib/src/fasta/source/diet_listener.dart
|
| +++ b/pkg/front_end/lib/src/fasta/source/diet_listener.dart
|
| @@ -10,7 +10,7 @@ import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart'
|
| import 'package:front_end/src/fasta/type_inference/type_inference_listener.dart'
|
| show TypeInferenceListener;
|
|
|
| -import 'package:kernel/ast.dart' show AsyncMarker;
|
| +import 'package:kernel/ast.dart' show AsyncMarker, Class, InterfaceType;
|
|
|
| import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
|
|
|
| @@ -403,8 +403,14 @@ class DietListener extends StackListener {
|
| MemberBuilder builder, Scope memberScope, bool isInstanceMember,
|
| [Scope formalParameterScope]) {
|
| var listener = new TypeInferenceListener();
|
| + var parent = builder.parent;
|
| + InterfaceType thisType;
|
| + if (parent is ClassBuilder) {
|
| + Class class_ = parent.target;
|
| + thisType = class_.thisType;
|
| + }
|
| var typeInferrer =
|
| - typeInferenceEngine.createLocalTypeInferrer(uri, listener);
|
| + typeInferenceEngine.createLocalTypeInferrer(uri, listener, thisType);
|
| return new BodyBuilder(library, builder, memberScope, formalParameterScope,
|
| hierarchy, coreTypes, currentClass, isInstanceMember, uri, typeInferrer)
|
| ..constantExpressionRequired = builder.isConstructor && builder.isConst;
|
|
|