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

Side by Side Diff: test/checker/checker_test.dart

Issue 1398873002: remove "infer from overrides" option which is now obsolete (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 2 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
« no previous file with comments | « lib/strong_mode.dart ('k') | test/checker/inferred_type_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 /// General type checking tests 5 /// General type checking tests
6 library dev_compiler.test.checker_test; 6 library dev_compiler.test.checker_test;
7 7
8 import 'package:test/test.dart'; 8 import 'package:test/test.dart';
9 9
10 import '../testing.dart'; 10 import '../testing.dart';
(...skipping 1328 matching lines...) Expand 10 before | Expand all | Expand 10 after
1339 1339
1340 testChecker('super constructor', { 1340 testChecker('super constructor', {
1341 '/main.dart': ''' 1341 '/main.dart': '''
1342 class A { A(A x) {} } 1342 class A { A(A x) {} }
1343 class B extends A { 1343 class B extends A {
1344 B() : super(/*severe:StaticTypeError*/3); 1344 B() : super(/*severe:StaticTypeError*/3);
1345 } 1345 }
1346 ''' 1346 '''
1347 }); 1347 });
1348 1348
1349 testChecker( 1349 testChecker('field/field override', {
1350 'field/field override', 1350 '/main.dart': '''
1351 {
1352 '/main.dart': '''
1353 class A {} 1351 class A {}
1354 class B extends A {} 1352 class B extends A {}
1355 class C extends B {} 1353 class C extends B {}
1356 1354
1357 class Base { 1355 class Base {
1358 B f1; 1356 B f1;
1359 B f2; 1357 B f2;
1360 B f3; 1358 B f3;
1361 B f4; 1359 B f4;
1362 } 1360 }
1363 1361
1364 class Child extends Base { 1362 class Child extends Base {
1365 /*severe:InvalidMethodOverride*/A f1; // invalid for getter 1363 /*severe:InvalidMethodOverride*/A f1; // invalid for getter
1366 /*severe:InvalidMethodOverride*/C f2; // invalid for setter 1364 /*severe:InvalidMethodOverride*/C f2; // invalid for setter
1367 var f3; 1365 var f3;
1368 /*severe:InvalidMethodOverride,severe:InvalidMethodOverride*/dynamic f4; 1366 /*severe:InvalidMethodOverride,severe:InvalidMethodOverride*/dynamic f4;
1369 } 1367 }
1370 ''' 1368 '''
1371 }, 1369 });
1372 inferFromOverrides: true);
1373 1370
1374 testChecker( 1371 testChecker('getter/getter override', {
1375 'getter/getter override', 1372 '/main.dart': '''
1376 {
1377 '/main.dart': '''
1378 class A {} 1373 class A {}
1379 class B extends A {} 1374 class B extends A {}
1380 class C extends B {} 1375 class C extends B {}
1381 1376
1382 abstract class Base { 1377 abstract class Base {
1383 B get f1; 1378 B get f1;
1384 B get f2; 1379 B get f2;
1385 B get f3; 1380 B get f3;
1386 B get f4; 1381 B get f4;
1387 } 1382 }
1388 1383
1389 class Child extends Base { 1384 class Child extends Base {
1390 /*severe:InvalidMethodOverride*/A get f1 => null; 1385 /*severe:InvalidMethodOverride*/A get f1 => null;
1391 C get f2 => null; 1386 C get f2 => null;
1392 get f3 => null; 1387 get f3 => null;
1393 /*severe:InvalidMethodOverride*/dynamic get f4 => null; 1388 /*severe:InvalidMethodOverride*/dynamic get f4 => null;
1394 } 1389 }
1395 ''' 1390 '''
1396 }, 1391 });
1397 inferFromOverrides: true);
1398 1392
1399 testChecker( 1393 testChecker('field/getter override', {
1400 'field/getter override', 1394 '/main.dart': '''
1401 {
1402 '/main.dart': '''
1403 class A {} 1395 class A {}
1404 class B extends A {} 1396 class B extends A {}
1405 class C extends B {} 1397 class C extends B {}
1406 1398
1407 abstract class Base { 1399 abstract class Base {
1408 B f1; 1400 B f1;
1409 B f2; 1401 B f2;
1410 B f3; 1402 B f3;
1411 B f4; 1403 B f4;
1412 } 1404 }
1413 1405
1414 class Child extends Base { 1406 class Child extends Base {
1415 /*severe:InvalidMethodOverride*/A get f1 => null; 1407 /*severe:InvalidMethodOverride*/A get f1 => null;
1416 C get f2 => null; 1408 C get f2 => null;
1417 get f3 => null; 1409 get f3 => null;
1418 /*severe:InvalidMethodOverride*/dynamic get f4 => null; 1410 /*severe:InvalidMethodOverride*/dynamic get f4 => null;
1419 } 1411 }
1420 ''' 1412 '''
1421 }, 1413 });
1422 inferFromOverrides: true);
1423 1414
1424 testChecker('setter/setter override', { 1415 testChecker('setter/setter override', {
1425 '/main.dart': ''' 1416 '/main.dart': '''
1426 class A {} 1417 class A {}
1427 class B extends A {} 1418 class B extends A {}
1428 class C extends B {} 1419 class C extends B {}
1429 1420
1430 abstract class Base { 1421 abstract class Base {
1431 void set f1(B value); 1422 void set f1(B value);
1432 void set f2(B value); 1423 void set f2(B value);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1468 1459
1469 void set f1(A value) {} 1460 void set f1(A value) {}
1470 /*severe:InvalidMethodOverride*/void set f2(C value) {} 1461 /*severe:InvalidMethodOverride*/void set f2(C value) {}
1471 void set f3(value) {} 1462 void set f3(value) {}
1472 /*severe:InvalidMethodOverride*/void set f4(dynamic value) {} 1463 /*severe:InvalidMethodOverride*/void set f4(dynamic value) {}
1473 set f5(B value) {} 1464 set f5(B value) {}
1474 } 1465 }
1475 ''' 1466 '''
1476 }); 1467 });
1477 1468
1478 testChecker( 1469 testChecker('method override', {
1479 'method override', 1470 '/main.dart': '''
1480 {
1481 '/main.dart': '''
1482 class A {} 1471 class A {}
1483 class B extends A {} 1472 class B extends A {}
1484 class C extends B {} 1473 class C extends B {}
1485 1474
1486 class Base { 1475 class Base {
1487 B m1(B a); 1476 B m1(B a);
1488 B m2(B a); 1477 B m2(B a);
1489 B m3(B a); 1478 B m3(B a);
1490 B m4(B a); 1479 B m4(B a);
1491 B m5(B a); 1480 B m5(B a);
1492 B m6(B a); 1481 B m6(B a);
1493 } 1482 }
1494 1483
1495 class Child extends Base { 1484 class Child extends Base {
1496 /*severe:InvalidMethodOverride*/A m1(A value) {} 1485 /*severe:InvalidMethodOverride*/A m1(A value) {}
1497 /*severe:InvalidMethodOverride*/C m2(C value) {} 1486 /*severe:InvalidMethodOverride*/C m2(C value) {}
1498 /*severe:InvalidMethodOverride*/A m3(C value) {} 1487 /*severe:InvalidMethodOverride*/A m3(C value) {}
1499 C m4(A value) {} 1488 C m4(A value) {}
1500 m5(value) {} 1489 m5(value) {}
1501 /*severe:InvalidMethodOverride*/dynamic m6(dynamic value) {} 1490 /*severe:InvalidMethodOverride*/dynamic m6(dynamic value) {}
1502 } 1491 }
1503 ''' 1492 '''
1504 }, 1493 });
1505 inferFromOverrides: true);
1506 1494
1507 testChecker('unary operators', { 1495 testChecker('unary operators', {
1508 '/main.dart': ''' 1496 '/main.dart': '''
1509 class A { 1497 class A {
1510 A operator ~() {} 1498 A operator ~() {}
1511 A operator +(int x) {} 1499 A operator +(int x) {}
1512 A operator -(int x) {} 1500 A operator -(int x) {}
1513 A operator -() {} 1501 A operator -() {}
1514 } 1502 }
1515 1503
(...skipping 1048 matching lines...) Expand 10 before | Expand all | Expand 10 after
2564 2552
2565 baz1() sync* { yield* (/*info:DynamicCast*/x); } 2553 baz1() sync* { yield* (/*info:DynamicCast*/x); }
2566 Iterable baz2() sync* { yield* (/*info:DynamicCast*/x); } 2554 Iterable baz2() sync* { yield* (/*info:DynamicCast*/x); }
2567 Iterable<int> baz3() sync* { yield* (/*warning:DownCastComposite*/x); } 2555 Iterable<int> baz3() sync* { yield* (/*warning:DownCastComposite*/x); }
2568 Iterable<int> baz4() sync* { yield* new Iterable<int>(); } 2556 Iterable<int> baz4() sync* { yield* new Iterable<int>(); }
2569 Iterable<int> baz5() sync* { yield* (/*info:InferredTypeAllocation*/new Iterable()); } 2557 Iterable<int> baz5() sync* { yield* (/*info:InferredTypeAllocation*/new Iterable()); }
2570 ''' 2558 '''
2571 }); 2559 });
2572 }); 2560 });
2573 } 2561 }
OLDNEW
« no previous file with comments | « lib/strong_mode.dart ('k') | test/checker/inferred_type_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698