| OLD | NEW |
| 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 library analyzer.test.src.task.strong.checker_test; | 5 library analyzer.test.src.task.strong.checker_test; |
| 6 | 6 |
| 7 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 7 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 8 | 8 |
| 9 import 'strong_test_helper.dart'; | 9 import 'strong_test_helper.dart'; |
| 10 | 10 |
| (...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 533 } | 533 } |
| 534 | 534 |
| 535 void test_covariantOverride_fields() { | 535 void test_covariantOverride_fields() { |
| 536 _addMetaLibrary(); | 536 _addMetaLibrary(); |
| 537 checkFile(r''' | 537 checkFile(r''' |
| 538 import 'meta.dart'; | 538 import 'meta.dart'; |
| 539 class A { | 539 class A { |
| 540 get foo => ''; | 540 get foo => ''; |
| 541 set foo(_) {} | 541 set foo(_) {} |
| 542 } | 542 } |
| 543 |
| 543 class B extends A { | 544 class B extends A { |
| 544 @checked int foo; | 545 @checked num foo; |
| 546 } |
| 547 class C extends A { |
| 548 @checked @virtual num foo; |
| 549 } |
| 550 class D extends C { |
| 551 @virtual int foo; |
| 552 } |
| 553 class E extends D { |
| 554 @virtual /*error:INVALID_METHOD_OVERRIDE*/num foo; |
| 545 } | 555 } |
| 546 '''); | 556 '''); |
| 547 } | 557 } |
| 548 | 558 |
| 549 void test_covariantOverride_leastUpperBound() { | 559 void test_covariantOverride_leastUpperBound() { |
| 550 _addMetaLibrary(); | 560 _addMetaLibrary(); |
| 551 checkFile(r''' | 561 checkFile(r''' |
| 552 import "meta.dart"; | 562 import "meta.dart"; |
| 553 abstract class Top {} | 563 abstract class Top {} |
| 554 abstract class Left implements Top {} | 564 abstract class Left implements Top {} |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 745 /*error:INVALID_FIELD_OVERRIDE, error:INVALID_METHOD_OVERRIDE*/final ToVoid<dy
namic> g = null; | 755 /*error:INVALID_FIELD_OVERRIDE, error:INVALID_METHOD_OVERRIDE*/final ToVoid<dy
namic> g = null; |
| 746 } | 756 } |
| 747 | 757 |
| 748 class H implements F { | 758 class H implements F { |
| 749 final ToVoid<int> f = null; | 759 final ToVoid<int> f = null; |
| 750 /*error:INVALID_METHOD_OVERRIDE*/final ToVoid<dynamic> g = null; | 760 /*error:INVALID_METHOD_OVERRIDE*/final ToVoid<dynamic> g = null; |
| 751 } | 761 } |
| 752 '''); | 762 '''); |
| 753 } | 763 } |
| 754 | 764 |
| 765 void test_fieldOverride_virtual() { |
| 766 _addMetaLibrary(); |
| 767 checkFile(r''' |
| 768 import 'meta.dart'; |
| 769 class C { |
| 770 @virtual int x; |
| 771 } |
| 772 class OverrideGetter extends C { |
| 773 int get x => 42; |
| 774 } |
| 775 class OverrideSetter extends C { |
| 776 set x(int v) {} |
| 777 } |
| 778 class OverrideBoth extends C { |
| 779 int get x => 42; |
| 780 set x(int v) {} |
| 781 } |
| 782 class OverrideWithField extends C { |
| 783 int x; |
| 784 |
| 785 // expose the hidden storage slot |
| 786 int get superX => super.x; |
| 787 set superX(int v) { super.x = v; } |
| 788 } |
| 789 class VirtualNotInherited extends OverrideWithField { |
| 790 /*error:INVALID_FIELD_OVERRIDE*/int x; |
| 791 } |
| 792 '''); |
| 793 } |
| 794 |
| 755 void test_fieldSetterOverride() { | 795 void test_fieldSetterOverride() { |
| 756 checkFile(''' | 796 checkFile(''' |
| 757 class A {} | 797 class A {} |
| 758 class B extends A {} | 798 class B extends A {} |
| 759 class C extends B {} | 799 class C extends B {} |
| 760 | 800 |
| 761 class Base { | 801 class Base { |
| 762 B f1; | 802 B f1; |
| 763 B f2; | 803 B f2; |
| 764 B f3; | 804 B f3; |
| (...skipping 3104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3869 } | 3909 } |
| 3870 '''); | 3910 '''); |
| 3871 } | 3911 } |
| 3872 } | 3912 } |
| 3873 | 3913 |
| 3874 void _addMetaLibrary() { | 3914 void _addMetaLibrary() { |
| 3875 addFile(r''' | 3915 addFile(r''' |
| 3876 library meta; | 3916 library meta; |
| 3877 class _Checked { const _Checked(); } | 3917 class _Checked { const _Checked(); } |
| 3878 const Object checked = const _Checked(); | 3918 const Object checked = const _Checked(); |
| 3919 |
| 3920 class _Virtual { const _Virtual(); } |
| 3921 const Object virtual = const _Virtual(); |
| 3879 ''', name: '/meta.dart'); | 3922 ''', name: '/meta.dart'); |
| 3880 } | 3923 } |
| OLD | NEW |