Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(457)

Unified Diff: pkg/front_end/lib/src/fasta/source/diet_listener.dart

Issue 2925603002: Add type inference for `this` expressions. (Closed)
Patch Set: Address code review comment Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {
ahe 2017/06/06 11:16:52 How about: if (builder.isClassMember) { Class c
Paul Berry 2017/06/06 16:50:33 Done.
+ 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;

Powered by Google App Engine
This is Rietveld 408576698