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

Side by Side Diff: tests/language/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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 void set a(A value) {} 60 void set a(A value) {}
61 61
62 B get b => null; 62 B get b => null;
63 63
64 void set b(B value) {} 64 void set b(B value) {}
65 } 65 }
66 66
67 class DerivedClass extends ClassWithInstanceGetters { 67 class DerivedClass extends ClassWithInstanceGetters {
68 dynamic get a => bad(); 68 dynamic get a => bad();
69 69
70 void set a(dynamic value) { bad(); } 70 void set a(dynamic value) {
71 bad();
72 }
71 73
72 dynamic get b => bad(); 74 dynamic get b => bad();
73 75
74 void set b(dynamic value) { bad(); } 76 void set b(dynamic value) {
77 bad();
78 }
75 79
76 void derivedTest() { 80 void derivedTest() {
77 // The static type of super.v ??= e is the LUB of the static types of 81 // The static type of super.v ??= e is the LUB of the static types of
78 // super.v and e. 82 // super.v and e.
79 (super.a ??= new A()).a; //# 01: ok 83 (super.a ??= new A()).a; //# 01: ok
80 Expect.throws(() => (super.a ??= new A()).b, noMethod); //# 02: static type warning 84 Expect.throws(() => (super.a ??= new A()).b, noMethod); //# 02: static type warning
81 (super.a ??= new B()).a; //# 03: ok 85 (super.a ??= new B()).a; //# 03: ok
82 (super.a ??= new B()).b; //# 04: static type warning 86 (super.a ??= new B()).b; //# 04: static type warning
83 if (!checkedMode) { 87 if (!checkedMode) {
84 (super.b ??= new A()).a; //# 05: ok 88 (super.b ??= new A()).a; //# 05: ok
85 Expect.throws(() => (super.b ??= new A()).b, noMethod); //# 06: static typ e warning 89 Expect.throws(() => (super.b ??= new A()).b, noMethod); //# 06: static typ e warning
86 90
87 // Exactly the same static warnings that would be caused by super.v = e 91 // Exactly the same static warnings that would be caused by super.v = e
88 // are also generated in the case of super.v ??= e. 92 // are also generated in the case of super.v ??= e.
89 super.b ??= new C(); //# 07: static type warning 93 super.b ??= new C(); //# 07: static type warning
90 } 94 }
91 } 95 }
92 } 96 }
93 97
94 main() { 98 main() {
95 // Make sure the "none" test fails if "??=" is not implemented. This makes 99 // Make sure the "none" test fails if "??=" is not implemented. This makes
96 // status files easier to maintain. 100 // status files easier to maintain.
97 var _; _ ??= null; 101 var _;
102 _ ??= null;
98 103
99 new DerivedClass().derivedTest(); 104 new DerivedClass().derivedTest();
100 105
101 // The static type of v ??= e is the LUB of the static types of v and e. 106 // The static type of v ??= e is the LUB of the static types of v and e.
102 (a ??= new A()).a; //# 08: ok 107 (a ??= new A()).a; //# 08: ok
103 Expect.throws(() => (a ??= new A()).b, noMethod); //# 09: static type warning 108 Expect.throws(() => (a ??= new A()).b, noMethod); //# 09: static type warning
104 (a ??= new B()).a; //# 10: ok 109 (a ??= new B()).a; //# 10: ok
105 (a ??= new B()).b; //# 11: static type warning 110 (a ??= new B()).b; //# 11: static type warning
106 if (!checkedMode) { 111 if (!checkedMode) {
107 (b ??= new A()).a; //# 12: ok 112 (b ??= new A()).a; //# 12: ok
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 (new ClassWithInstanceGetters()?.a ??= new B()).b; //# 39: static type warning 170 (new ClassWithInstanceGetters()?.a ??= new B()).b; //# 39: static type warning
166 if (!checkedMode) { 171 if (!checkedMode) {
167 (new ClassWithInstanceGetters()?.b ??= new A()).a; //# 40: ok 172 (new ClassWithInstanceGetters()?.b ??= new A()).a; //# 40: ok
168 Expect.throws(() => (new ClassWithInstanceGetters()?.b ??= new A()).b, noMet hod); //# 41: static type warning 173 Expect.throws(() => (new ClassWithInstanceGetters()?.b ??= new A()).b, noMet hod); //# 41: static type warning
169 174
170 // Exactly the same static warnings that would be caused by e1.v ??= e2 are 175 // Exactly the same static warnings that would be caused by e1.v ??= e2 are
171 // also generated in the case of e1?.v ??= e2. 176 // also generated in the case of e1?.v ??= e2.
172 new ClassWithInstanceGetters()?.b ??= new C(); //# 42: static type warning 177 new ClassWithInstanceGetters()?.b ??= new C(); //# 42: static type warning
173 } 178 }
174 } 179 }
OLDNEW
« no previous file with comments | « tests/language/if_null_assignment_behavior_test.dart ('k') | tests/language/if_null_behavior_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698