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

Side by Side Diff: pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.strong.expect

Issue 2931363003: Add type inference for assignments to properties. (Closed)
Patch Set: 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 unified diff | Download patch
OLDNEW
(Empty)
1 library test;
2 import self as self;
3 import "dart:core" as core;
4
5 class A extends core::Object {
6 constructor •() → void
7 : super core::Object::•()
8 ;
9 }
10 class B extends self::A {
11 constructor •() → void
12 : super self::A::•()
13 ;
14 operator +(self::C v) → self::A
15 return null;
16 operator -(core::int i) → self::B
17 return null;
18 operator *(self::B v) → self::B
19 return null;
20 operator &(self::A v) → self::C
21 return null;
22 }
23 class C extends self::B {
24 constructor •() → void
25 : super self::B::•()
26 ;
27 }
28 class Test extends core::Object {
29 field self::B member = null;
30 constructor •() → void
31 : super core::Object::•()
32 ;
33 method test() → void {
34 this.{self::Test::member} = self::f<self::B>();
35 this.{self::Test::member}.{core::Object::==}(null) ? this.{self::Test::membe r} = self::f<self::B>() : null;
36 this.{self::Test::member} = this.{self::Test::member}.{self::B::+}(self::f<d ynamic>());
37 this.{self::Test::member} = this.{self::Test::member}.{self::B::*}(self::f<d ynamic>());
38 this.{self::Test::member} = this.{self::Test::member}.{self::B::&}(self::f<d ynamic>());
39 this.{self::Test::member} = this.{self::Test::member}.{self::B::-}(1);
40 this.{self::Test::member} = this.{self::Test::member}.{self::B::-}(1);
41 self::B v1 = this.{self::Test::member} = self::f<self::B>();
42 self::B v2 = let final dynamic #t1 = this.{self::Test::member} in #t1.{core: :Object::==}(null) ? this.{self::Test::member} = self::f<self::B>() : #t1;
43 self::A v3 = this.{self::Test::member} = this.{self::Test::member}.{self::B: :+}(self::f<dynamic>());
44 self::B v4 = this.{self::Test::member} = this.{self::Test::member}.{self::B: :*}(self::f<dynamic>());
45 self::C v5 = this.{self::Test::member} = this.{self::Test::member}.{self::B: :&}(self::f<dynamic>());
46 self::B v6 = this.{self::Test::member} = this.{self::Test::member}.{self::B: :-}(1);
47 self::B v7 = let final dynamic #t2 = this.{self::Test::member} in let final dynamic #t3 = this.{self::Test::member} = #t2.{self::B::-}(1) in #t2;
48 }
49 }
50 static method f<T extends core::Object>() → self::f::T
51 return null;
52 static method main() → dynamic {}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698