| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 that `covariant` can be parsed (and ignored) by | 5 // Test that `covariant` can be parsed (and ignored) by |
| 6 // dart2js and the VM. | 6 // dart2js and the VM. |
| 7 // This test only checks for non-strong mode behavior. | 7 // This test only checks for non-strong mode behavior. |
| 8 // | 8 // |
| 9 // Generally, `covariant` should be ignored, when it is used in the right | 9 // Generally, `covariant` should be ignored, when it is used in the right |
| 10 // places. | 10 // places. |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 covariant // //# 03: compile-time error | 37 covariant // //# 03: compile-time error |
| 38 x3; | 38 x3; |
| 39 | 39 |
| 40 int | 40 int |
| 41 covariant // //# 04: compile-time error | 41 covariant // //# 04: compile-time error |
| 42 get x4 => 499; | 42 get x4 => 499; |
| 43 | 43 |
| 44 void set x5( | 44 void set x5( |
| 45 int | 45 int |
| 46 covariant //# 05: compile-time error | 46 covariant //# 05: compile-time error |
| 47 val) {} | 47 val) {} |
| 48 | 48 |
| 49 // Same without types. | 49 // Same without types. |
| 50 | 50 |
| 51 // Since `covariant` is a built-in identifier, it is not allowed here. | 51 // Since `covariant` is a built-in identifier, it is not allowed here. |
| 52 covariant x6; // //# 06: compile-time error | 52 covariant x6; // //# 06: compile-time error |
| 53 | 53 |
| 54 covariant covariant; // //# 06b: compile-time error | 54 covariant covariant; // //# 06b: compile-time error |
| 55 | 55 |
| 56 // Getters may never have `covariant`. | 56 // Getters may never have `covariant`. |
| 57 covariant // //# 07: compile-time error | 57 covariant // //# 07: compile-time error |
| (...skipping 20 matching lines...) Expand all Loading... |
| 78 // It's a minor (acceptable) bug to not error out here. | 78 // It's a minor (acceptable) bug to not error out here. |
| 79 int f12( | 79 int f12( |
| 80 covariant //# 12: compile-time error | 80 covariant //# 12: compile-time error |
| 81 int x) => | 81 int x) => |
| 82 499; | 82 499; |
| 83 | 83 |
| 84 // `Covariant` must be in front of the types. | 84 // `Covariant` must be in front of the types. |
| 85 int f13( | 85 int f13( |
| 86 int | 86 int |
| 87 covariant //# 13: compile-time error | 87 covariant //# 13: compile-time error |
| 88 x) => | 88 x) => |
| 89 499; | 89 499; |
| 90 | 90 |
| 91 // Covariant should not work on top-level methods. | 91 // Covariant should not work on top-level methods. |
| 92 // It's a minor (acceptable) bug to not error out here. | 92 // It's a minor (acceptable) bug to not error out here. |
| 93 int f14( | 93 int f14( |
| 94 covariant //# 14: compile-time error | 94 covariant //# 14: compile-time error |
| 95 final x) => | 95 final x) => |
| 96 499; | 96 499; |
| 97 | 97 |
| 98 // `Covariant` must be in front of modifiers. | 98 // `Covariant` must be in front of modifiers. |
| 99 int f15( | 99 int f15( |
| 100 final | 100 final |
| 101 covariant //# 15: compile-time error | 101 covariant //# 15: compile-time error |
| 102 x) => | 102 x) => |
| 103 499; | 103 499; |
| 104 | 104 |
| 105 // Covariant should not work on top-level methods. | 105 // Covariant should not work on top-level methods. |
| 106 // It's a minor (acceptable) bug to not error out here. | 106 // It's a minor (acceptable) bug to not error out here. |
| 107 int f16( | 107 int f16( |
| 108 covariant //# 16: compile-time error | 108 covariant //# 16: compile-time error |
| 109 final int x) => | 109 final int x) => |
| 110 499; | 110 499; |
| 111 | 111 |
| 112 // `Covariant` must be in front of modifiers. | 112 // `Covariant` must be in front of modifiers. |
| 113 int f17( | 113 int f17( |
| 114 final | 114 final |
| 115 covariant //# 17: compile-time error | 115 covariant //# 17: compile-time error |
| 116 int x) => | 116 int |
| 117 x) => |
| 117 499; | 118 499; |
| 118 | 119 |
| 119 // On its own, `covariant` is just a parameter name. | 120 // On its own, `covariant` is just a parameter name. |
| 120 int f18(covariant) => covariant; | 121 int f18(covariant) => covariant; |
| 121 | 122 |
| 122 covariant; // //# 19: compile-time error | 123 covariant; // //# 19: compile-time error |
| 123 | 124 |
| 124 // All of the above as statics in a class. | 125 // All of the above as statics in a class. |
| 125 class A { | 126 class A { |
| 126 // Static fields may not have a covariant. | 127 // Static fields may not have a covariant. |
| (...skipping 28 matching lines...) Expand all Loading... |
| 155 covariant // //# 23: compile-time error | 156 covariant // //# 23: compile-time error |
| 156 x23; | 157 x23; |
| 157 | 158 |
| 158 static int | 159 static int |
| 159 covariant // //# 24: compile-time error | 160 covariant // //# 24: compile-time error |
| 160 get x24 => 499; | 161 get x24 => 499; |
| 161 | 162 |
| 162 static void set x25( | 163 static void set x25( |
| 163 int | 164 int |
| 164 covariant //# 25: compile-time error | 165 covariant //# 25: compile-time error |
| 165 val) {} | 166 val) {} |
| 166 | 167 |
| 167 // Since `covariant` is a built-in identifier, it is not allowed here. | 168 // Since `covariant` is a built-in identifier, it is not allowed here. |
| 168 static covariant x26; //# 26: compile-time error | 169 static covariant x26; //# 26: compile-time error |
| 169 static covariant covariant; //# 26b: compile-time error | 170 static covariant covariant; //# 26b: compile-time error |
| 170 | 171 |
| 171 // Getters may never have `covariant`. | 172 // Getters may never have `covariant`. |
| 172 static | 173 static |
| 173 covariant // //# 27: compile-time error | 174 covariant // //# 27: compile-time error |
| 174 get x27 => 499; | 175 get x27 => 499; |
| 175 | 176 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 205 // It's a minor (acceptable) bug to not error out here. | 206 // It's a minor (acceptable) bug to not error out here. |
| 206 static int f32( | 207 static int f32( |
| 207 covariant //# 32: compile-time error | 208 covariant //# 32: compile-time error |
| 208 int x) => | 209 int x) => |
| 209 499; | 210 499; |
| 210 | 211 |
| 211 // `Covariant` must be in front of the types. | 212 // `Covariant` must be in front of the types. |
| 212 static int f33( | 213 static int f33( |
| 213 int | 214 int |
| 214 covariant //# 33: compile-time error | 215 covariant //# 33: compile-time error |
| 215 x) => | 216 x) => |
| 216 499; | 217 499; |
| 217 | 218 |
| 218 // Covariant should not work on top-level methods. | 219 // Covariant should not work on top-level methods. |
| 219 // It's a minor (acceptable) bug to not error out here. | 220 // It's a minor (acceptable) bug to not error out here. |
| 220 static int f34( | 221 static int f34( |
| 221 covariant //# 34: compile-time error | 222 covariant //# 34: compile-time error |
| 222 final x) => | 223 final x) => |
| 223 499; | 224 499; |
| 224 | 225 |
| 225 // `Covariant` must be in front of modifiers. | 226 // `Covariant` must be in front of modifiers. |
| 226 static int f35( | 227 static int f35( |
| 227 final | 228 final |
| 228 covariant //# 35: compile-time error | 229 covariant //# 35: compile-time error |
| 229 x) => | 230 x) => |
| 230 499; | 231 499; |
| 231 | 232 |
| 232 // Covariant should not work on top-level methods. | 233 // Covariant should not work on top-level methods. |
| 233 // It's a minor (acceptable) bug to not error out here. | 234 // It's a minor (acceptable) bug to not error out here. |
| 234 static int f36( | 235 static int f36( |
| 235 covariant //# 36: compile-time error | 236 covariant //# 36: compile-time error |
| 236 final int x) => | 237 final int x) => |
| 237 499; | 238 499; |
| 238 | 239 |
| 239 // `Covariant` must be in front of modifiers. | 240 // `Covariant` must be in front of modifiers. |
| 240 static int f37( | 241 static int f37( |
| 241 final | 242 final |
| 242 covariant //# 37: compile-time error | 243 covariant //# 37: compile-time error |
| 243 int x) => | 244 int |
| 245 x) => |
| 244 499; | 246 499; |
| 245 | 247 |
| 246 // `Covariant` on its own is just a parameter name. | 248 // `Covariant` on its own is just a parameter name. |
| 247 static int f38(covariant) => covariant; | 249 static int f38(covariant) => covariant; |
| 248 | 250 |
| 249 static covariant; // //# 39: compile-time error | 251 static covariant; // //# 39: compile-time error |
| 250 | 252 |
| 251 } | 253 } |
| 252 | 254 |
| 253 // All of the above as instance members in a class. | 255 // All of the above as instance members in a class. |
| (...skipping 19 matching lines...) Expand all Loading... |
| 273 x43; | 275 x43; |
| 274 | 276 |
| 275 // `covariant` in the wrong position. | 277 // `covariant` in the wrong position. |
| 276 int | 278 int |
| 277 covariant // //# 44: compile-time error | 279 covariant // //# 44: compile-time error |
| 278 get x44 => 499; | 280 get x44 => 499; |
| 279 | 281 |
| 280 void set x45( | 282 void set x45( |
| 281 int | 283 int |
| 282 covariant //# 45: compile-time error | 284 covariant //# 45: compile-time error |
| 283 val) {} | 285 val) {} |
| 284 | 286 |
| 285 // Since `covariant` is a built-in identifier, it is not allowed here. | 287 // Since `covariant` is a built-in identifier, it is not allowed here. |
| 286 covariant x46; //# 46: compile-time error | 288 covariant x46; //# 46: compile-time error |
| 287 covariant covariant; //# 46b: compile-time error | 289 covariant covariant; //# 46b: compile-time error |
| 288 | 290 |
| 289 // Getters may never have `covariant`. | 291 // Getters may never have `covariant`. |
| 290 covariant // //# 47: compile-time error | 292 covariant // //# 47: compile-time error |
| 291 get x47 => 499; | 293 get x47 => 499; |
| 292 | 294 |
| 293 void set x48( | 295 void set x48( |
| (...skipping 13 matching lines...) Expand all Loading... |
| 307 | 309 |
| 308 int f52( | 310 int f52( |
| 309 covariant // //# 52: ok | 311 covariant // //# 52: ok |
| 310 int x) => | 312 int x) => |
| 311 499; | 313 499; |
| 312 | 314 |
| 313 // `Covariant` must be in front of the types. | 315 // `Covariant` must be in front of the types. |
| 314 int f53( | 316 int f53( |
| 315 int | 317 int |
| 316 covariant //# 53: compile-time error | 318 covariant //# 53: compile-time error |
| 317 x) => | 319 x) => |
| 318 499; | 320 499; |
| 319 | 321 |
| 320 int f54( | 322 int f54( |
| 321 covariant // //# 54: ok | 323 covariant // //# 54: ok |
| 322 final x) => | 324 final x) => |
| 323 499; | 325 499; |
| 324 | 326 |
| 325 // `Covariant` must be in front of modifiers. | 327 // `Covariant` must be in front of modifiers. |
| 326 int f55( | 328 int f55( |
| 327 final | 329 final |
| 328 covariant //# 55: compile-time error | 330 covariant //# 55: compile-time error |
| 329 x) => | 331 x) => |
| 330 499; | 332 499; |
| 331 | 333 |
| 332 int f56( | 334 int f56( |
| 333 covariant // //# 56: ok | 335 covariant // //# 56: ok |
| 334 final int x) => | 336 final int x) => |
| 335 499; | 337 499; |
| 336 | 338 |
| 337 // `Covariant` must be in front of modifiers. | 339 // `Covariant` must be in front of modifiers. |
| 338 int f57( | 340 int f57( |
| 339 final | 341 final |
| 340 covariant //# 57: compile-time error | 342 covariant //# 57: compile-time error |
| 341 int x) => | 343 int |
| 344 x) => |
| 342 499; | 345 499; |
| 343 | 346 |
| 344 // `Covariant` on its own is just a parameter name. | 347 // `Covariant` on its own is just a parameter name. |
| 345 int f58(covariant) => covariant; | 348 int f58(covariant) => covariant; |
| 346 | 349 |
| 347 covariant; // //# 59: compile-time error | 350 covariant; // //# 59: compile-time error |
| 348 } | 351 } |
| 349 | 352 |
| 350 void use(x) {} | 353 void use(x) {} |
| 351 | 354 |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 419 use(b.f51()); | 422 use(b.f51()); |
| 420 use(b.f52(2)); | 423 use(b.f52(2)); |
| 421 use(b.f53(2)); | 424 use(b.f53(2)); |
| 422 use(b.f54(3)); | 425 use(b.f54(3)); |
| 423 use(b.f55(3)); | 426 use(b.f55(3)); |
| 424 use(b.f56(3)); | 427 use(b.f56(3)); |
| 425 use(b.f57(3)); | 428 use(b.f57(3)); |
| 426 Expect.equals(12345, b.f58(12345)); | 429 Expect.equals(12345, b.f58(12345)); |
| 427 use(B.covariant); // //# 59: continued | 430 use(B.covariant); // //# 59: continued |
| 428 } | 431 } |
| OLD | NEW |