| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // Test type promotion of parameters. | 5 // Test type promotion of parameters. |
| 6 | 6 |
| 7 class A { | 7 class A { |
| 8 var a = "a"; | 8 var a = "a"; |
| 9 } | 9 } |
| 10 class B extends A { | 10 class B extends A { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 var b = ""; | 21 var b = ""; |
| 22 var c = ""; | 22 var c = ""; |
| 23 var d = ""; | 23 var d = ""; |
| 24 } | 24 } |
| 25 | 25 |
| 26 void main() { | 26 void main() { |
| 27 test(new E()); | 27 test(new E()); |
| 28 } | 28 } |
| 29 void test(A a) { | 29 void test(A a) { |
| 30 print(a.a); | 30 print(a.a); |
| 31 print(a.b); /// 01: static type warning | 31 print(a.b); //# 01: static type warning |
| 32 print(a.c); /// 02: static type warning | 32 print(a.c); //# 02: static type warning |
| 33 print(a.d); /// 03: static type warning | 33 print(a.d); //# 03: static type warning |
| 34 | 34 |
| 35 if (a is B) { | 35 if (a is B) { |
| 36 print(a.a); | 36 print(a.a); |
| 37 print(a.b); | 37 print(a.b); |
| 38 print(a.c); /// 04: static type warning | 38 print(a.c); //# 04: static type warning |
| 39 print(a.d); /// 05: static type warning | 39 print(a.d); //# 05: static type warning |
| 40 | 40 |
| 41 if (a is C) { | 41 if (a is C) { |
| 42 print(a.a); | 42 print(a.a); |
| 43 print(a.b); | 43 print(a.b); |
| 44 print(a.c); | 44 print(a.c); |
| 45 print(a.d); /// 06: static type warning | 45 print(a.d); //# 06: static type warning |
| 46 } | 46 } |
| 47 | 47 |
| 48 print(a.a); | 48 print(a.a); |
| 49 print(a.b); | 49 print(a.b); |
| 50 print(a.c); /// 07: static type warning | 50 print(a.c); //# 07: static type warning |
| 51 print(a.d); /// 08: static type warning | 51 print(a.d); //# 08: static type warning |
| 52 } | 52 } |
| 53 if (a is C) { | 53 if (a is C) { |
| 54 print(a.a); | 54 print(a.a); |
| 55 print(a.b); | 55 print(a.b); |
| 56 print(a.c); | 56 print(a.c); |
| 57 print(a.d); /// 09: static type warning | 57 print(a.d); //# 09: static type warning |
| 58 | 58 |
| 59 if (a is B) { | 59 if (a is B) { |
| 60 print(a.a); | 60 print(a.a); |
| 61 print(a.b); | 61 print(a.b); |
| 62 print(a.c); | 62 print(a.c); |
| 63 print(a.d); /// 10: static type warning | 63 print(a.d); //# 10: static type warning |
| 64 } | 64 } |
| 65 if (a is D) { | 65 if (a is D) { |
| 66 print(a.a); | 66 print(a.a); |
| 67 print(a.b); | 67 print(a.b); |
| 68 print(a.c); | 68 print(a.c); |
| 69 print(a.d); /// 11: static type warning | 69 print(a.d); //# 11: static type warning |
| 70 } | 70 } |
| 71 | 71 |
| 72 print(a.a); | 72 print(a.a); |
| 73 print(a.b); | 73 print(a.b); |
| 74 print(a.c); | 74 print(a.c); |
| 75 print(a.d); /// 12: static type warning | 75 print(a.d); //# 12: static type warning |
| 76 } | 76 } |
| 77 | 77 |
| 78 print(a.a); | 78 print(a.a); |
| 79 print(a.b); /// 13: static type warning | 79 print(a.b); //# 13: static type warning |
| 80 print(a.c); /// 14: static type warning | 80 print(a.c); //# 14: static type warning |
| 81 print(a.d); /// 15: static type warning | 81 print(a.d); //# 15: static type warning |
| 82 | 82 |
| 83 if (a is D) { | 83 if (a is D) { |
| 84 print(a.a); | 84 print(a.a); |
| 85 print(a.b); /// 16: static type warning | 85 print(a.b); //# 16: static type warning |
| 86 print(a.c); /// 17: static type warning | 86 print(a.c); //# 17: static type warning |
| 87 print(a.d); | 87 print(a.d); |
| 88 } | 88 } |
| 89 | 89 |
| 90 print(a.a); | 90 print(a.a); |
| 91 print(a.b); /// 18: static type warning | 91 print(a.b); //# 18: static type warning |
| 92 print(a.c); /// 19: static type warning | 92 print(a.c); //# 19: static type warning |
| 93 print(a.d); /// 20: static type warning | 93 print(a.d); //# 20: static type warning |
| 94 | 94 |
| 95 var o1 = a is B ? | 95 var o1 = a is B ? |
| 96 '${a.a}' | 96 '${a.a}' |
| 97 '${a.b}' | 97 '${a.b}' |
| 98 '${a.c}' /// 21: static type warning | 98 '${a.c}' //# 21: static type warning |
| 99 '${a.d}' /// 22: static type warning | 99 '${a.d}' //# 22: static type warning |
| 100 : | 100 : |
| 101 '${a.a}' | 101 '${a.a}' |
| 102 '${a.b}' /// 23: static type warning | 102 '${a.b}' //# 23: static type warning |
| 103 '${a.c}' /// 24: static type warning | 103 '${a.c}' //# 24: static type warning |
| 104 '${a.d}' /// 25: static type warning | 104 '${a.d}' //# 25: static type warning |
| 105 ; | 105 ; |
| 106 | 106 |
| 107 var o2 = a is C ? | 107 var o2 = a is C ? |
| 108 '${a.a}' | 108 '${a.a}' |
| 109 '${a.b}' | 109 '${a.b}' |
| 110 '${a.c}' | 110 '${a.c}' |
| 111 '${a.d}' /// 26: static type warning | 111 '${a.d}' //# 26: static type warning |
| 112 : | 112 : |
| 113 '${a.a}' | 113 '${a.a}' |
| 114 '${a.b}' /// 27: static type warning | 114 '${a.b}' //# 27: static type warning |
| 115 '${a.c}' /// 28: static type warning | 115 '${a.c}' //# 28: static type warning |
| 116 '${a.d}' /// 29: static type warning | 116 '${a.d}' //# 29: static type warning |
| 117 ; | 117 ; |
| 118 | 118 |
| 119 var o3 = a is D ? | 119 var o3 = a is D ? |
| 120 '${a.a}' | 120 '${a.a}' |
| 121 '${a.b}' /// 30: static type warning | 121 '${a.b}' //# 30: static type warning |
| 122 '${a.c}' /// 31: static type warning | 122 '${a.c}' //# 31: static type warning |
| 123 '${a.d}' | 123 '${a.d}' |
| 124 : | 124 : |
| 125 '${a.a}' | 125 '${a.a}' |
| 126 '${a.b}' /// 32: static type warning | 126 '${a.b}' //# 32: static type warning |
| 127 '${a.c}' /// 33: static type warning | 127 '${a.c}' //# 33: static type warning |
| 128 '${a.d}' /// 34: static type warning | 128 '${a.d}' //# 34: static type warning |
| 129 ; | 129 ; |
| 130 | 130 |
| 131 if (a is B && a is B) { | 131 if (a is B && a is B) { |
| 132 print(a.a); | 132 print(a.a); |
| 133 print(a.b); | 133 print(a.b); |
| 134 print(a.c); /// 35: static type warning | 134 print(a.c); //# 35: static type warning |
| 135 print(a.d); /// 36: static type warning | 135 print(a.d); //# 36: static type warning |
| 136 } | 136 } |
| 137 if (a is B && a is C) { | 137 if (a is B && a is C) { |
| 138 print(a.a); | 138 print(a.a); |
| 139 print(a.b); | 139 print(a.b); |
| 140 print(a.c); | 140 print(a.c); |
| 141 print(a.d); /// 37: static type warning | 141 print(a.d); //# 37: static type warning |
| 142 } | 142 } |
| 143 if (a is C && a is B) { | 143 if (a is C && a is B) { |
| 144 print(a.a); | 144 print(a.a); |
| 145 print(a.b); | 145 print(a.b); |
| 146 print(a.c); | 146 print(a.c); |
| 147 print(a.d); /// 38: static type warning | 147 print(a.d); //# 38: static type warning |
| 148 } | 148 } |
| 149 if (a is C && a is D) { | 149 if (a is C && a is D) { |
| 150 print(a.a); | 150 print(a.a); |
| 151 print(a.b); | 151 print(a.b); |
| 152 print(a.c); | 152 print(a.c); |
| 153 print(a.d); /// 39: static type warning | 153 print(a.d); //# 39: static type warning |
| 154 } | 154 } |
| 155 if (a is D && a is C) { | 155 if (a is D && a is C) { |
| 156 print(a.a); | 156 print(a.a); |
| 157 print(a.b); /// 40: static type warning | 157 print(a.b); //# 40: static type warning |
| 158 print(a.c); /// 41: static type warning | 158 print(a.c); //# 41: static type warning |
| 159 print(a.d); | 159 print(a.d); |
| 160 } | 160 } |
| 161 if (a is D | 161 if (a is D |
| 162 && a.a == "" | 162 && a.a == "" |
| 163 && a.b == "" /// 42: static type warning | 163 && a.b == "" //# 42: static type warning |
| 164 && a.c == "" /// 43: static type warning | 164 && a.c == "" //# 43: static type warning |
| 165 && a.d == "") { | 165 && a.d == "") { |
| 166 print(a.a); | 166 print(a.a); |
| 167 print(a.b); /// 44: static type warning | 167 print(a.b); //# 44: static type warning |
| 168 print(a.c); /// 45: static type warning | 168 print(a.c); //# 45: static type warning |
| 169 print(a.d); | 169 print(a.d); |
| 170 } | 170 } |
| 171 if (a.a == "" | 171 if (a.a == "" |
| 172 && a.b == "" /// 46: static type warning | 172 && a.b == "" //# 46: static type warning |
| 173 && a.c == "" /// 47: static type warning | 173 && a.c == "" //# 47: static type warning |
| 174 && a.d == "" /// 48: static type warning | 174 && a.d == "" //# 48: static type warning |
| 175 && a is B | 175 && a is B |
| 176 && a.a == "" | 176 && a.a == "" |
| 177 && a.b == "" | 177 && a.b == "" |
| 178 && a.c == "" /// 49: static type warning | 178 && a.c == "" //# 49: static type warning |
| 179 && a.d == "" /// 50: static type warning | 179 && a.d == "" //# 50: static type warning |
| 180 && a is C | 180 && a is C |
| 181 && a.a == "" | 181 && a.a == "" |
| 182 && a.b == "" | 182 && a.b == "" |
| 183 && a.c == "" | 183 && a.c == "" |
| 184 && a.d == "" /// 51: static type warning | 184 && a.d == "" //# 51: static type warning |
| 185 ) { | 185 ) { |
| 186 print(a.a); | 186 print(a.a); |
| 187 print(a.b); | 187 print(a.b); |
| 188 print(a.c); | 188 print(a.c); |
| 189 print(a.d); /// 52: static type warning | 189 print(a.d); //# 52: static type warning |
| 190 } | 190 } |
| 191 if ((a is B)) { | 191 if ((a is B)) { |
| 192 print(a.a); | 192 print(a.a); |
| 193 print(a.b); | 193 print(a.b); |
| 194 print(a.c); /// 54: static type warning | 194 print(a.c); //# 54: static type warning |
| 195 print(a.d); /// 55: static type warning | 195 print(a.d); //# 55: static type warning |
| 196 } | 196 } |
| 197 if ((a is B && (a) is C) && a is B) { | 197 if ((a is B && (a) is C) && a is B) { |
| 198 print(a.a); | 198 print(a.a); |
| 199 print(a.b); | 199 print(a.b); |
| 200 print(a.c); | 200 print(a.c); |
| 201 print(a.d); /// 56: static type warning | 201 print(a.d); //# 56: static type warning |
| 202 } | 202 } |
| 203 } | 203 } |
| OLD | NEW |