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

Side by Side Diff: tests/language_strong/if_null_assignment_static_test.dart

Issue 2774783002: Re-land "Format all multitests" (Closed)
Patch Set: Created 3 years, 9 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
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // Verify that the static type of a ??= b is the least upper bound of the 5 // Verify that the static type of a ??= b is the least upper bound of the
6 // static types of a and b. 6 // static types of a and b.
7 7
8 import "package:expect/expect.dart"; 8 import "package:expect/expect.dart";
9 9
10 // Determine whether the VM is running in checked mode. 10 // Determine whether the VM is running in checked mode.
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 void set a(A value) {} 57 void set a(A value) {}
58 58
59 B get b => null; 59 B get b => null;
60 60
61 void set b(B value) {} 61 void set b(B value) {}
62 } 62 }
63 63
64 class DerivedClass extends ClassWithInstanceGetters { 64 class DerivedClass extends ClassWithInstanceGetters {
65 A get a => bad(); 65 A get a => bad();
66 66
67 void set a(A value) { bad(); } 67 void set a(A value) {
68 bad();
69 }
68 70
69 B get b => bad(); 71 B get b => bad();
70 72
71 void set b(B value) { bad(); } 73 void set b(B value) {
74 bad();
75 }
72 76
73 void derivedTest() { 77 void derivedTest() {
74 // The static type of super.v ??= e is the LUB of the static types of 78 // The static type of super.v ??= e is the LUB of the static types of
75 // super.v and e. 79 // super.v and e.
76 (super.a ??= new A()).a; //# 01: ok 80 (super.a ??= new A()).a; //# 01: ok
77 Expect.throws(() => (super.a ??= new A()).b, noMethod); //# 02: static type warning 81 Expect.throws(() => (super.a ??= new A()).b, noMethod); //# 02: static type warning
78 (super.a ??= new B()).a; //# 03: ok 82 (super.a ??= new B()).a; //# 03: ok
79 (super.a ??= new B()).b; //# 04: static type warning 83 (super.a ??= new B()).b; //# 04: static type warning
80 if (!checkedMode) { 84 if (!checkedMode) {
81 (super.b ??= new A()).a; //# 05: ok 85 (super.b ??= new A()).a; //# 05: ok
82 Expect.throws(() => (super.b ??= new A()).b, noMethod); //# 06: static typ e warning 86 Expect.throws(() => (super.b ??= new A()).b, noMethod); //# 06: static typ e warning
83 87
84 // Exactly the same static warnings that would be caused by super.v = e 88 // Exactly the same static warnings that would be caused by super.v = e
85 // are also generated in the case of super.v ??= e. 89 // are also generated in the case of super.v ??= e.
86 super.b ??= new C(); //# 07: static type warning 90 super.b ??= new C(); //# 07: static type warning
87 } 91 }
88 } 92 }
89 } 93 }
90 94
91 main() { 95 main() {
92 // Make sure the "none" test fails if "??=" is not implemented. This makes 96 // Make sure the "none" test fails if "??=" is not implemented. This makes
93 // status files easier to maintain. 97 // status files easier to maintain.
94 var _; _ ??= null; 98 var _;
99 _ ??= null;
95 100
96 new DerivedClass().derivedTest(); 101 new DerivedClass().derivedTest();
97 102
98 // The static type of v ??= e is the LUB of the static types of v and e. 103 // The static type of v ??= e is the LUB of the static types of v and e.
99 (a ??= new A()).a; //# 08: ok 104 (a ??= new A()).a; //# 08: ok
100 Expect.throws(() => (a ??= new A()).b, noMethod); //# 09: static type warning 105 Expect.throws(() => (a ??= new A()).b, noMethod); //# 09: static type warning
101 (a ??= new B()).a; //# 10: ok 106 (a ??= new B()).a; //# 10: ok
102 (a ??= new B()).b; //# 11: static type warning 107 (a ??= new B()).b; //# 11: static type warning
103 if (!checkedMode) { 108 if (!checkedMode) {
104 (b ??= new A()).a; //# 12: ok 109 (b ??= new A()).a; //# 12: ok
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 (new ClassWithInstanceGetters()?.a ??= new B()).b; //# 39: static type warning 167 (new ClassWithInstanceGetters()?.a ??= new B()).b; //# 39: static type warning
163 if (!checkedMode) { 168 if (!checkedMode) {
164 (new ClassWithInstanceGetters()?.b ??= new A()).a; //# 40: ok 169 (new ClassWithInstanceGetters()?.b ??= new A()).a; //# 40: ok
165 Expect.throws(() => (new ClassWithInstanceGetters()?.b ??= new A()).b, noMet hod); //# 41: static type warning 170 Expect.throws(() => (new ClassWithInstanceGetters()?.b ??= new A()).b, noMet hod); //# 41: static type warning
166 171
167 // Exactly the same static warnings that would be caused by e1.v ??= e2 are 172 // Exactly the same static warnings that would be caused by e1.v ??= e2 are
168 // also generated in the case of e1?.v ??= e2. 173 // also generated in the case of e1?.v ??= e2.
169 new ClassWithInstanceGetters()?.b ??= new C(); //# 42: static type warning 174 new ClassWithInstanceGetters()?.b ??= new C(); //# 42: static type warning
170 } 175 }
171 } 176 }
OLDNEW
« no previous file with comments | « tests/language_strong/if_null_assignment_behavior_test.dart ('k') | tests/language_strong/if_null_behavior_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698