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

Side by Side Diff: pkg/analyzer/test/generated/static_warning_code_test.dart

Issue 1004793003: Add NOT_INITIALIZED_FIELDS property for FINAL_NOT_INITIALIZED_CONSTRUCTOR_X. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 engine.static_warning_code_test; 5 library engine.static_warning_code_test;
6 6
7 import 'package:analyzer/src/generated/error.dart'; 7 import 'package:analyzer/src/generated/error.dart';
8 import 'package:analyzer/src/generated/source_io.dart'; 8 import 'package:analyzer/src/generated/source_io.dart';
9 import 'package:unittest/unittest.dart'; 9 import 'package:unittest/unittest.dart';
10 10
(...skipping 864 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 875
876 void test_conflictingInstanceGetterAndSuperclassMember_declField_direct_setter () { 876 void test_conflictingInstanceGetterAndSuperclassMember_declField_direct_setter () {
877 Source source = addSource(r''' 877 Source source = addSource(r'''
878 class A { 878 class A {
879 static set v(x) {} 879 static set v(x) {}
880 } 880 }
881 class B extends A { 881 class B extends A {
882 var v; 882 var v;
883 }'''); 883 }''');
884 resolve(source); 884 resolve(source);
885 assertErrors(source, [ 885 assertErrors(source,
886 StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER 886 [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]);
887 ]);
888 verify([source]); 887 verify([source]);
889 } 888 }
890 889
891 void test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_gette r() { 890 void test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_gette r() {
892 Source source = addSource(r''' 891 Source source = addSource(r'''
893 class A { 892 class A {
894 static get v => 0; 893 static get v => 0;
895 } 894 }
896 class B extends A { 895 class B extends A {
897 get v => 0; 896 get v => 0;
898 }'''); 897 }''');
899 resolve(source); 898 resolve(source);
900 assertErrors(source, [ 899 assertErrors(source,
901 StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER 900 [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]);
902 ]);
903 verify([source]); 901 verify([source]);
904 } 902 }
905 903
906 void test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_metho d() { 904 void test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_metho d() {
907 Source source = addSource(r''' 905 Source source = addSource(r'''
908 class A { 906 class A {
909 static v() {} 907 static v() {}
910 } 908 }
911 class B extends A { 909 class B extends A {
912 get v => 0; 910 get v => 0;
913 }'''); 911 }''');
914 resolve(source); 912 resolve(source);
915 assertErrors(source, [ 913 assertErrors(source,
916 StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER 914 [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]);
917 ]);
918 verify([source]); 915 verify([source]);
919 } 916 }
920 917
921 void test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_sette r() { 918 void test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_sette r() {
922 Source source = addSource(r''' 919 Source source = addSource(r'''
923 class A { 920 class A {
924 static set v(x) {} 921 static set v(x) {}
925 } 922 }
926 class B extends A { 923 class B extends A {
927 get v => 0; 924 get v => 0;
928 }'''); 925 }''');
929 resolve(source); 926 resolve(source);
930 assertErrors(source, [ 927 assertErrors(source,
931 StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER 928 [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]);
932 ]);
933 verify([source]); 929 verify([source]);
934 } 930 }
935 931
936 void test_conflictingInstanceGetterAndSuperclassMember_declGetter_indirect() { 932 void test_conflictingInstanceGetterAndSuperclassMember_declGetter_indirect() {
937 Source source = addSource(r''' 933 Source source = addSource(r'''
938 class A { 934 class A {
939 static int v; 935 static int v;
940 } 936 }
941 class B extends A {} 937 class B extends A {}
942 class C extends B { 938 class C extends B {
943 get v => 0; 939 get v => 0;
944 }'''); 940 }''');
945 resolve(source); 941 resolve(source);
946 assertErrors(source, [ 942 assertErrors(source,
947 StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER 943 [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]);
948 ]);
949 verify([source]); 944 verify([source]);
950 } 945 }
951 946
952 void test_conflictingInstanceGetterAndSuperclassMember_declGetter_mixin() { 947 void test_conflictingInstanceGetterAndSuperclassMember_declGetter_mixin() {
953 Source source = addSource(r''' 948 Source source = addSource(r'''
954 class M { 949 class M {
955 static int v; 950 static int v;
956 } 951 }
957 class B extends Object with M { 952 class B extends Object with M {
958 get v => 0; 953 get v => 0;
959 }'''); 954 }''');
960 resolve(source); 955 resolve(source);
961 assertErrors(source, [ 956 assertErrors(source,
962 StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER 957 [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]);
963 ]);
964 verify([source]); 958 verify([source]);
965 } 959 }
966 960
967 void test_conflictingInstanceGetterAndSuperclassMember_direct_field() { 961 void test_conflictingInstanceGetterAndSuperclassMember_direct_field() {
968 Source source = addSource(r''' 962 Source source = addSource(r'''
969 class A { 963 class A {
970 static int v; 964 static int v;
971 } 965 }
972 class B extends A { 966 class B extends A {
973 get v => 0; 967 get v => 0;
974 }'''); 968 }''');
975 resolve(source); 969 resolve(source);
976 assertErrors(source, [ 970 assertErrors(source,
977 StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER 971 [StaticWarningCode.CONFLICTING_INSTANCE_GETTER_AND_SUPERCLASS_MEMBER]);
978 ]);
979 verify([source]); 972 verify([source]);
980 } 973 }
981 974
982 void test_conflictingInstanceMethodSetter2() { 975 void test_conflictingInstanceMethodSetter2() {
983 Source source = addSource(r''' 976 Source source = addSource(r'''
984 class A { 977 class A {
985 foo() {} 978 foo() {}
986 set foo(a) {} 979 set foo(a) {}
987 }'''); 980 }''');
988 resolve(source); 981 resolve(source);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1033 1026
1034 void test_conflictingInstanceSetterAndSuperclassMember() { 1027 void test_conflictingInstanceSetterAndSuperclassMember() {
1035 Source source = addSource(r''' 1028 Source source = addSource(r'''
1036 class A { 1029 class A {
1037 static int v; 1030 static int v;
1038 } 1031 }
1039 class B extends A { 1032 class B extends A {
1040 set v(x) {} 1033 set v(x) {}
1041 }'''); 1034 }''');
1042 resolve(source); 1035 resolve(source);
1043 assertErrors(source, [ 1036 assertErrors(source,
1044 StaticWarningCode.CONFLICTING_INSTANCE_SETTER_AND_SUPERCLASS_MEMBER 1037 [StaticWarningCode.CONFLICTING_INSTANCE_SETTER_AND_SUPERCLASS_MEMBER]);
1045 ]);
1046 verify([source]); 1038 verify([source]);
1047 } 1039 }
1048 1040
1049 void test_conflictingStaticGetterAndInstanceSetter_mixin() { 1041 void test_conflictingStaticGetterAndInstanceSetter_mixin() {
1050 Source source = addSource(r''' 1042 Source source = addSource(r'''
1051 class A { 1043 class A {
1052 set x(int p) {} 1044 set x(int p) {}
1053 } 1045 }
1054 class B extends Object with A { 1046 class B extends Object with A {
1055 static get x => 0; 1047 static get x => 0;
1056 }'''); 1048 }''');
1057 resolve(source); 1049 resolve(source);
1058 assertErrors(source, [ 1050 assertErrors(source,
1059 StaticWarningCode.CONFLICTING_STATIC_GETTER_AND_INSTANCE_SETTER 1051 [StaticWarningCode.CONFLICTING_STATIC_GETTER_AND_INSTANCE_SETTER]);
1060 ]);
1061 verify([source]); 1052 verify([source]);
1062 } 1053 }
1063 1054
1064 void test_conflictingStaticGetterAndInstanceSetter_superClass() { 1055 void test_conflictingStaticGetterAndInstanceSetter_superClass() {
1065 Source source = addSource(r''' 1056 Source source = addSource(r'''
1066 class A { 1057 class A {
1067 set x(int p) {} 1058 set x(int p) {}
1068 } 1059 }
1069 class B extends A { 1060 class B extends A {
1070 static get x => 0; 1061 static get x => 0;
1071 }'''); 1062 }''');
1072 resolve(source); 1063 resolve(source);
1073 assertErrors(source, [ 1064 assertErrors(source,
1074 StaticWarningCode.CONFLICTING_STATIC_GETTER_AND_INSTANCE_SETTER 1065 [StaticWarningCode.CONFLICTING_STATIC_GETTER_AND_INSTANCE_SETTER]);
1075 ]);
1076 verify([source]); 1066 verify([source]);
1077 } 1067 }
1078 1068
1079 void test_conflictingStaticGetterAndInstanceSetter_thisClass() { 1069 void test_conflictingStaticGetterAndInstanceSetter_thisClass() {
1080 Source source = addSource(r''' 1070 Source source = addSource(r'''
1081 class A { 1071 class A {
1082 static get x => 0; 1072 static get x => 0;
1083 set x(int p) {} 1073 set x(int p) {}
1084 }'''); 1074 }''');
1085 resolve(source); 1075 resolve(source);
1086 assertErrors(source, [ 1076 assertErrors(source,
1087 StaticWarningCode.CONFLICTING_STATIC_GETTER_AND_INSTANCE_SETTER 1077 [StaticWarningCode.CONFLICTING_STATIC_GETTER_AND_INSTANCE_SETTER]);
1088 ]);
1089 verify([source]); 1078 verify([source]);
1090 } 1079 }
1091 1080
1092 void test_conflictingStaticSetterAndInstanceMember_thisClass_getter() { 1081 void test_conflictingStaticSetterAndInstanceMember_thisClass_getter() {
1093 Source source = addSource(r''' 1082 Source source = addSource(r'''
1094 class A { 1083 class A {
1095 get x => 0; 1084 get x => 0;
1096 static set x(int p) {} 1085 static set x(int p) {}
1097 }'''); 1086 }''');
1098 resolve(source); 1087 resolve(source);
1099 assertErrors(source, [ 1088 assertErrors(source,
1100 StaticWarningCode.CONFLICTING_STATIC_SETTER_AND_INSTANCE_MEMBER 1089 [StaticWarningCode.CONFLICTING_STATIC_SETTER_AND_INSTANCE_MEMBER]);
1101 ]);
1102 verify([source]); 1090 verify([source]);
1103 } 1091 }
1104 1092
1105 void test_conflictingStaticSetterAndInstanceMember_thisClass_method() { 1093 void test_conflictingStaticSetterAndInstanceMember_thisClass_method() {
1106 Source source = addSource(r''' 1094 Source source = addSource(r'''
1107 class A { 1095 class A {
1108 x() {} 1096 x() {}
1109 static set x(int p) {} 1097 static set x(int p) {}
1110 }'''); 1098 }''');
1111 resolve(source); 1099 resolve(source);
1112 assertErrors(source, [ 1100 assertErrors(source,
1113 StaticWarningCode.CONFLICTING_STATIC_SETTER_AND_INSTANCE_MEMBER 1101 [StaticWarningCode.CONFLICTING_STATIC_SETTER_AND_INSTANCE_MEMBER]);
1114 ]);
1115 verify([source]); 1102 verify([source]);
1116 } 1103 }
1117 1104
1118 void test_constWithAbstractClass() { 1105 void test_constWithAbstractClass() {
1119 Source source = addSource(r''' 1106 Source source = addSource(r'''
1120 abstract class A { 1107 abstract class A {
1121 const A(); 1108 const A();
1122 } 1109 }
1123 void f() { 1110 void f() {
1124 A a = const A(); 1111 A a = const A();
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1204 verify([source]); 1191 verify([source]);
1205 } 1192 }
1206 1193
1207 void test_fieldInitializedInInitializerAndDeclaration_final() { 1194 void test_fieldInitializedInInitializerAndDeclaration_final() {
1208 Source source = addSource(r''' 1195 Source source = addSource(r'''
1209 class A { 1196 class A {
1210 final int x = 0; 1197 final int x = 0;
1211 A() : x = 1 {} 1198 A() : x = 1 {}
1212 }'''); 1199 }''');
1213 resolve(source); 1200 resolve(source);
1214 assertErrors(source, [ 1201 assertErrors(source,
1215 StaticWarningCode.FIELD_INITIALIZED_IN_INITIALIZER_AND_DECLARATION 1202 [StaticWarningCode.FIELD_INITIALIZED_IN_INITIALIZER_AND_DECLARATION]);
1216 ]);
1217 verify([source]); 1203 verify([source]);
1218 } 1204 }
1219 1205
1220 void test_fieldInitializerNotAssignable() { 1206 void test_fieldInitializerNotAssignable() {
1221 Source source = addSource(r''' 1207 Source source = addSource(r'''
1222 class A { 1208 class A {
1223 int x; 1209 int x;
1224 A() : x = ''; 1210 A() : x = '';
1225 }'''); 1211 }''');
1226 resolve(source); 1212 resolve(source);
(...skipping 22 matching lines...) Expand all
1249 * FINAL_INITIALIZED_IN_DECLARATION_AND_CONSTRUCTOR, since it more specific, w e use it instead of 1235 * FINAL_INITIALIZED_IN_DECLARATION_AND_CONSTRUCTOR, since it more specific, w e use it instead of
1250 * the broader code 1236 * the broader code
1251 */ 1237 */
1252 void test_finalInitializedInDeclarationAndConstructor_initializers() { 1238 void test_finalInitializedInDeclarationAndConstructor_initializers() {
1253 Source source = addSource(r''' 1239 Source source = addSource(r'''
1254 class A { 1240 class A {
1255 final x = 0; 1241 final x = 0;
1256 A() : x = 0 {} 1242 A() : x = 0 {}
1257 }'''); 1243 }''');
1258 resolve(source); 1244 resolve(source);
1259 assertErrors(source, [ 1245 assertErrors(source,
1260 StaticWarningCode.FIELD_INITIALIZED_IN_INITIALIZER_AND_DECLARATION 1246 [StaticWarningCode.FIELD_INITIALIZED_IN_INITIALIZER_AND_DECLARATION]);
1261 ]);
1262 verify([source]); 1247 verify([source]);
1263 } 1248 }
1264 1249
1265 void test_finalInitializedInDeclarationAndConstructor_initializingFormal() { 1250 void test_finalInitializedInDeclarationAndConstructor_initializingFormal() {
1266 Source source = addSource(r''' 1251 Source source = addSource(r'''
1267 class A { 1252 class A {
1268 final x = 0; 1253 final x = 0;
1269 A(this.x) {} 1254 A(this.x) {}
1270 }'''); 1255 }''');
1271 resolve(source); 1256 resolve(source);
1272 assertErrors(source, [ 1257 assertErrors(source,
1273 StaticWarningCode.FINAL_INITIALIZED_IN_DECLARATION_AND_CONSTRUCTOR 1258 [StaticWarningCode.FINAL_INITIALIZED_IN_DECLARATION_AND_CONSTRUCTOR]);
1274 ]);
1275 verify([source]); 1259 verify([source]);
1276 } 1260 }
1277 1261
1278 void test_finalNotInitialized_inConstructor() { 1262 void test_finalNotInitialized_inConstructor_1() {
1279 Source source = addSource(r''' 1263 Source source = addSource(r'''
1280 class A { 1264 class A {
1281 final int x; 1265 final int x;
1282 A() {} 1266 A() {}
1283 }'''); 1267 }''');
1284 resolve(source); 1268 resolve(source);
1285 assertErrors(source, [StaticWarningCode.FINAL_NOT_INITIALIZED]); 1269 assertErrors(
1270 source, [StaticWarningCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_1]);
1286 verify([source]); 1271 verify([source]);
1287 } 1272 }
1288 1273
1274 void test_finalNotInitialized_inConstructor_2() {
1275 Source source = addSource(r'''
1276 class A {
1277 final int a;
1278 final int b;
1279 A() {}
1280 }''');
1281 resolve(source);
1282 assertErrors(
1283 source, [StaticWarningCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_2]);
1284 verify([source]);
1285 }
1286
1287 void test_finalNotInitialized_inConstructor_3() {
1288 Source source = addSource(r'''
1289 class A {
1290 final int a;
1291 final int b;
1292 final int c;
1293 A() {}
1294 }''');
1295 resolve(source);
1296 assertErrors(
1297 source, [StaticWarningCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_3_PLUS]);
1298 verify([source]);
1299 }
1300
1289 void test_finalNotInitialized_instanceField_final() { 1301 void test_finalNotInitialized_instanceField_final() {
1290 Source source = addSource(r''' 1302 Source source = addSource(r'''
1291 class A { 1303 class A {
1292 final F; 1304 final F;
1293 }'''); 1305 }''');
1294 resolve(source); 1306 resolve(source);
1295 assertErrors(source, [StaticWarningCode.FINAL_NOT_INITIALIZED]); 1307 assertErrors(source, [StaticWarningCode.FINAL_NOT_INITIALIZED]);
1296 verify([source]); 1308 verify([source]);
1297 } 1309 }
1298 1310
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
1402 Source source = addSource(r''' 1414 Source source = addSource(r'''
1403 abstract class A { 1415 abstract class A {
1404 int x(); 1416 int x();
1405 } 1417 }
1406 abstract class B { 1418 abstract class B {
1407 int get x; 1419 int get x;
1408 } 1420 }
1409 class C implements A, B { 1421 class C implements A, B {
1410 }'''); 1422 }''');
1411 resolve(source); 1423 resolve(source);
1412 assertErrors(source, [ 1424 assertErrors(source,
1413 StaticWarningCode.INCONSISTENT_METHOD_INHERITANCE_GETTER_AND_METHOD 1425 [StaticWarningCode.INCONSISTENT_METHOD_INHERITANCE_GETTER_AND_METHOD]);
1414 ]);
1415 verify([source]); 1426 verify([source]);
1416 } 1427 }
1417 1428
1418 void test_instanceMethodNameCollidesWithSuperclassStatic_field() { 1429 void test_instanceMethodNameCollidesWithSuperclassStatic_field() {
1419 Source source = addSource(r''' 1430 Source source = addSource(r'''
1420 class A { 1431 class A {
1421 static var n; 1432 static var n;
1422 } 1433 }
1423 class B extends A { 1434 class B extends A {
1424 void n() {} 1435 void n() {}
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
1725 1736
1726 void test_invalidMethodOverrideOptionalParamType() { 1737 void test_invalidMethodOverrideOptionalParamType() {
1727 Source source = addSource(r''' 1738 Source source = addSource(r'''
1728 class A { 1739 class A {
1729 m([int a]) {} 1740 m([int a]) {}
1730 } 1741 }
1731 class B implements A { 1742 class B implements A {
1732 m([String a]) {} 1743 m([String a]) {}
1733 }'''); 1744 }''');
1734 resolve(source); 1745 resolve(source);
1735 assertErrors(source, [ 1746 assertErrors(source,
1736 StaticWarningCode.INVALID_METHOD_OVERRIDE_OPTIONAL_PARAM_TYPE 1747 [StaticWarningCode.INVALID_METHOD_OVERRIDE_OPTIONAL_PARAM_TYPE]);
1737 ]);
1738 verify([source]); 1748 verify([source]);
1739 } 1749 }
1740 1750
1741 void test_invalidMethodOverrideOptionalParamType_twoInterfaces() { 1751 void test_invalidMethodOverrideOptionalParamType_twoInterfaces() {
1742 Source source = addSource(r''' 1752 Source source = addSource(r'''
1743 abstract class I { 1753 abstract class I {
1744 m([int n]); 1754 m([int n]);
1745 } 1755 }
1746 abstract class J { 1756 abstract class J {
1747 m([num n]); 1757 m([num n]);
1748 } 1758 }
1749 abstract class A implements I, J {} 1759 abstract class A implements I, J {}
1750 class B extends A { 1760 class B extends A {
1751 m([String n]) {} 1761 m([String n]) {}
1752 }'''); 1762 }''');
1753 resolve(source); 1763 resolve(source);
1754 assertErrors(source, [ 1764 assertErrors(source,
1755 StaticWarningCode.INVALID_METHOD_OVERRIDE_OPTIONAL_PARAM_TYPE 1765 [StaticWarningCode.INVALID_METHOD_OVERRIDE_OPTIONAL_PARAM_TYPE]);
1756 ]);
1757 verify([source]); 1766 verify([source]);
1758 } 1767 }
1759 1768
1760 void test_invalidMethodOverrideReturnType_interface() { 1769 void test_invalidMethodOverrideReturnType_interface() {
1761 Source source = addSource(r''' 1770 Source source = addSource(r'''
1762 class A { 1771 class A {
1763 int m() { return 0; } 1772 int m() { return 0; }
1764 } 1773 }
1765 class B implements A { 1774 class B implements A {
1766 String m() { return 'a'; } 1775 String m() { return 'a'; }
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1888 // value, even if implicitly. 1897 // value, even if implicitly.
1889 Source source = addSource(r''' 1898 Source source = addSource(r'''
1890 class A { 1899 class A {
1891 foo({x: 1}) {} 1900 foo({x: 1}) {}
1892 } 1901 }
1893 class B extends A { 1902 class B extends A {
1894 foo({x}) {} 1903 foo({x}) {}
1895 } 1904 }
1896 '''); 1905 ''');
1897 resolve(source); 1906 resolve(source);
1898 assertErrors(source, [ 1907 assertErrors(source,
1899 StaticWarningCode.INVALID_OVERRIDE_DIFFERENT_DEFAULT_VALUES_NAMED 1908 [StaticWarningCode.INVALID_OVERRIDE_DIFFERENT_DEFAULT_VALUES_NAMED]);
1900 ]);
1901 verify([source]); 1909 verify([source]);
1902 } 1910 }
1903 1911
1904 void test_invalidOverride_defaultOverridesNonDefaultNull() { 1912 void test_invalidOverride_defaultOverridesNonDefaultNull() {
1905 // If the base class provided an explicit null value for a default 1913 // If the base class provided an explicit null value for a default
1906 // parameter, then it is ok for the derived class to let the default value 1914 // parameter, then it is ok for the derived class to let the default value
1907 // be implicit, because the implicit default value of null matches the 1915 // be implicit, because the implicit default value of null matches the
1908 // explicit default value of null. 1916 // explicit default value of null.
1909 Source source = addSource(r''' 1917 Source source = addSource(r'''
1910 class A { 1918 class A {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1973 1981
1974 void test_invalidOverrideDifferentDefaultValues_named() { 1982 void test_invalidOverrideDifferentDefaultValues_named() {
1975 Source source = addSource(r''' 1983 Source source = addSource(r'''
1976 class A { 1984 class A {
1977 m({int p : 0}) {} 1985 m({int p : 0}) {}
1978 } 1986 }
1979 class B extends A { 1987 class B extends A {
1980 m({int p : 1}) {} 1988 m({int p : 1}) {}
1981 }'''); 1989 }''');
1982 resolve(source); 1990 resolve(source);
1983 assertErrors(source, [ 1991 assertErrors(source,
1984 StaticWarningCode.INVALID_OVERRIDE_DIFFERENT_DEFAULT_VALUES_NAMED 1992 [StaticWarningCode.INVALID_OVERRIDE_DIFFERENT_DEFAULT_VALUES_NAMED]);
1985 ]);
1986 verify([source]); 1993 verify([source]);
1987 } 1994 }
1988 1995
1989 void test_invalidOverrideDifferentDefaultValues_positional() { 1996 void test_invalidOverrideDifferentDefaultValues_positional() {
1990 Source source = addSource(r''' 1997 Source source = addSource(r'''
1991 class A { 1998 class A {
1992 m([int p = 0]) {} 1999 m([int p = 0]) {}
1993 } 2000 }
1994 class B extends A { 2001 class B extends A {
1995 m([int p = 1]) {} 2002 m([int p = 1]) {}
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
2182 2189
2183 void test_mismatchedAccessorTypes_getterAndSuperSetter() { 2190 void test_mismatchedAccessorTypes_getterAndSuperSetter() {
2184 Source source = addSource(r''' 2191 Source source = addSource(r'''
2185 class A { 2192 class A {
2186 int get g { return 0; } 2193 int get g { return 0; }
2187 } 2194 }
2188 class B extends A { 2195 class B extends A {
2189 set g(String v) {} 2196 set g(String v) {}
2190 }'''); 2197 }''');
2191 resolve(source); 2198 resolve(source);
2192 assertErrors(source, [ 2199 assertErrors(source,
2193 StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES_FROM_SUPERTYPE 2200 [StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES_FROM_SUPERTYPE]);
2194 ]);
2195 verify([source]); 2201 verify([source]);
2196 } 2202 }
2197 2203
2198 void test_mismatchedAccessorTypes_setterAndSuperGetter() { 2204 void test_mismatchedAccessorTypes_setterAndSuperGetter() {
2199 Source source = addSource(r''' 2205 Source source = addSource(r'''
2200 class A { 2206 class A {
2201 set g(int v) {} 2207 set g(int v) {}
2202 } 2208 }
2203 class B extends A { 2209 class B extends A {
2204 String get g { return ''; } 2210 String get g { return ''; }
2205 }'''); 2211 }''');
2206 resolve(source); 2212 resolve(source);
2207 assertErrors(source, [ 2213 assertErrors(source,
2208 StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES_FROM_SUPERTYPE 2214 [StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES_FROM_SUPERTYPE]);
2209 ]);
2210 verify([source]); 2215 verify([source]);
2211 } 2216 }
2212 2217
2213 void test_mismatchedAccessorTypes_topLevel() { 2218 void test_mismatchedAccessorTypes_topLevel() {
2214 Source source = addSource(r''' 2219 Source source = addSource(r'''
2215 int get g { return 0; } 2220 int get g { return 0; }
2216 set g(String v) {}'''); 2221 set g(String v) {}''');
2217 resolve(source); 2222 resolve(source);
2218 assertErrors( 2223 assertErrors(
2219 source, [StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES]); 2224 source, [StaticWarningCode.MISMATCHED_GETTER_AND_SETTER_TYPES]);
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
2392 Source source = addSource(r''' 2397 Source source = addSource(r'''
2393 abstract class A { 2398 abstract class A {
2394 m(); 2399 m();
2395 n(); 2400 n();
2396 o(); 2401 o();
2397 p(); 2402 p();
2398 } 2403 }
2399 class C extends A { 2404 class C extends A {
2400 }'''); 2405 }''');
2401 resolve(source); 2406 resolve(source);
2402 assertErrors(source, [ 2407 assertErrors(source,
2403 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_FOUR 2408 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_FOUR]);
2404 ]);
2405 verify([source]); 2409 verify([source]);
2406 } 2410 }
2407 2411
2408 void test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_interface() { 2412 void test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_interface() {
2409 // 15979 2413 // 15979
2410 Source source = addSource(r''' 2414 Source source = addSource(r'''
2411 abstract class M {} 2415 abstract class M {}
2412 abstract class A {} 2416 abstract class A {}
2413 abstract class I { 2417 abstract class I {
2414 m(); 2418 m();
2415 } 2419 }
2416 class B = A with M implements I;'''); 2420 class B = A with M implements I;''');
2417 resolve(source); 2421 resolve(source);
2418 assertErrors(source, [ 2422 assertErrors(source,
2419 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2423 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2420 ]);
2421 verify([source]); 2424 verify([source]);
2422 } 2425 }
2423 2426
2424 void test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_mixin() { 2427 void test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_mixin() {
2425 // 15979 2428 // 15979
2426 Source source = addSource(r''' 2429 Source source = addSource(r'''
2427 abstract class M { 2430 abstract class M {
2428 m(); 2431 m();
2429 } 2432 }
2430 abstract class A {} 2433 abstract class A {}
2431 class B = A with M;'''); 2434 class B = A with M;''');
2432 resolve(source); 2435 resolve(source);
2433 assertErrors(source, [ 2436 assertErrors(source,
2434 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2437 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2435 ]);
2436 verify([source]); 2438 verify([source]);
2437 } 2439 }
2438 2440
2439 void test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_superclass( ) { 2441 void test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_superclass( ) {
2440 // 15979 2442 // 15979
2441 Source source = addSource(r''' 2443 Source source = addSource(r'''
2442 class M {} 2444 class M {}
2443 abstract class A { 2445 abstract class A {
2444 m(); 2446 m();
2445 } 2447 }
2446 class B = A with M;'''); 2448 class B = A with M;''');
2447 resolve(source); 2449 resolve(source);
2448 assertErrors(source, [ 2450 assertErrors(source,
2449 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2451 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2450 ]);
2451 verify([source]); 2452 verify([source]);
2452 } 2453 }
2453 2454
2454 void test_nonAbstractClassInheritsAbstractMemberOne_ensureCorrectFunctionSubty peIsUsedInImplementation() { 2455 void test_nonAbstractClassInheritsAbstractMemberOne_ensureCorrectFunctionSubty peIsUsedInImplementation() {
2455 // 15028 2456 // 15028
2456 Source source = addSource(r''' 2457 Source source = addSource(r'''
2457 class C { 2458 class C {
2458 foo(int x) => x; 2459 foo(int x) => x;
2459 } 2460 }
2460 abstract class D { 2461 abstract class D {
2461 foo(x, [y]); 2462 foo(x, [y]);
2462 } 2463 }
2463 class E extends C implements D {}'''); 2464 class E extends C implements D {}''');
2464 resolve(source); 2465 resolve(source);
2465 assertErrors(source, [ 2466 assertErrors(source,
2466 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2467 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2467 ]);
2468 verify([source]); 2468 verify([source]);
2469 } 2469 }
2470 2470
2471 void test_nonAbstractClassInheritsAbstractMemberOne_getter_fromInterface() { 2471 void test_nonAbstractClassInheritsAbstractMemberOne_getter_fromInterface() {
2472 Source source = addSource(r''' 2472 Source source = addSource(r'''
2473 class I { 2473 class I {
2474 int get g {return 1;} 2474 int get g {return 1;}
2475 } 2475 }
2476 class C implements I { 2476 class C implements I {
2477 }'''); 2477 }''');
2478 resolve(source); 2478 resolve(source);
2479 assertErrors(source, [ 2479 assertErrors(source,
2480 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2480 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2481 ]);
2482 verify([source]); 2481 verify([source]);
2483 } 2482 }
2484 2483
2485 void test_nonAbstractClassInheritsAbstractMemberOne_getter_fromSuperclass() { 2484 void test_nonAbstractClassInheritsAbstractMemberOne_getter_fromSuperclass() {
2486 Source source = addSource(r''' 2485 Source source = addSource(r'''
2487 abstract class A { 2486 abstract class A {
2488 int get g; 2487 int get g;
2489 } 2488 }
2490 class C extends A { 2489 class C extends A {
2491 }'''); 2490 }''');
2492 resolve(source); 2491 resolve(source);
2493 assertErrors(source, [ 2492 assertErrors(source,
2494 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2493 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2495 ]);
2496 verify([source]); 2494 verify([source]);
2497 } 2495 }
2498 2496
2499 void test_nonAbstractClassInheritsAbstractMemberOne_method_fromInterface() { 2497 void test_nonAbstractClassInheritsAbstractMemberOne_method_fromInterface() {
2500 Source source = addSource(r''' 2498 Source source = addSource(r'''
2501 class I { 2499 class I {
2502 m(p) {} 2500 m(p) {}
2503 } 2501 }
2504 class C implements I { 2502 class C implements I {
2505 }'''); 2503 }''');
2506 resolve(source); 2504 resolve(source);
2507 assertErrors(source, [ 2505 assertErrors(source,
2508 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2506 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2509 ]);
2510 verify([source]); 2507 verify([source]);
2511 } 2508 }
2512 2509
2513 void test_nonAbstractClassInheritsAbstractMemberOne_method_fromSuperclass() { 2510 void test_nonAbstractClassInheritsAbstractMemberOne_method_fromSuperclass() {
2514 Source source = addSource(r''' 2511 Source source = addSource(r'''
2515 abstract class A { 2512 abstract class A {
2516 m(p); 2513 m(p);
2517 } 2514 }
2518 class C extends A { 2515 class C extends A {
2519 }'''); 2516 }''');
2520 resolve(source); 2517 resolve(source);
2521 assertErrors(source, [ 2518 assertErrors(source,
2522 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2519 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2523 ]);
2524 verify([source]); 2520 verify([source]);
2525 } 2521 }
2526 2522
2527 void test_nonAbstractClassInheritsAbstractMemberOne_method_optionalParamCount( ) { 2523 void test_nonAbstractClassInheritsAbstractMemberOne_method_optionalParamCount( ) {
2528 // 7640 2524 // 7640
2529 Source source = addSource(r''' 2525 Source source = addSource(r'''
2530 abstract class A { 2526 abstract class A {
2531 int x(int a); 2527 int x(int a);
2532 } 2528 }
2533 abstract class B { 2529 abstract class B {
2534 int x(int a, [int b]); 2530 int x(int a, [int b]);
2535 } 2531 }
2536 class C implements A, B { 2532 class C implements A, B {
2537 }'''); 2533 }''');
2538 resolve(source); 2534 resolve(source);
2539 assertErrors(source, [ 2535 assertErrors(source,
2540 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2536 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2541 ]);
2542 verify([source]); 2537 verify([source]);
2543 } 2538 }
2544 2539
2545 void test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_getter() { 2540 void test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_getter() {
2546 // 15001 2541 // 15001
2547 Source source = addSource(r''' 2542 Source source = addSource(r'''
2548 abstract class A { get g1; get g2; } 2543 abstract class A { get g1; get g2; }
2549 abstract class B implements A { get g1 => 1; } 2544 abstract class B implements A { get g1 => 1; }
2550 class C extends Object with B {}'''); 2545 class C extends Object with B {}''');
2551 resolve(source); 2546 resolve(source);
2552 assertErrors(source, [ 2547 assertErrors(source,
2553 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2548 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2554 ]);
2555 } 2549 }
2556 2550
2557 void test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_method() { 2551 void test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_method() {
2558 // 15001 2552 // 15001
2559 Source source = addSource(r''' 2553 Source source = addSource(r'''
2560 abstract class A { m1(); m2(); } 2554 abstract class A { m1(); m2(); }
2561 abstract class B implements A { m1() => 1; } 2555 abstract class B implements A { m1() => 1; }
2562 class C extends Object with B {}'''); 2556 class C extends Object with B {}''');
2563 resolve(source); 2557 resolve(source);
2564 assertErrors(source, [ 2558 assertErrors(source,
2565 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2559 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2566 ]);
2567 } 2560 }
2568 2561
2569 void test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_setter() { 2562 void test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_setter() {
2570 // 15001 2563 // 15001
2571 Source source = addSource(r''' 2564 Source source = addSource(r'''
2572 abstract class A { set s1(v); set s2(v); } 2565 abstract class A { set s1(v); set s2(v); }
2573 abstract class B implements A { set s1(v) {} } 2566 abstract class B implements A { set s1(v) {} }
2574 class C extends Object with B {}'''); 2567 class C extends Object with B {}''');
2575 resolve(source); 2568 resolve(source);
2576 assertErrors(source, [ 2569 assertErrors(source,
2577 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2570 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2578 ]);
2579 } 2571 }
2580 2572
2581 void test_nonAbstractClassInheritsAbstractMemberOne_setter_and_implicitSetter( ) { 2573 void test_nonAbstractClassInheritsAbstractMemberOne_setter_and_implicitSetter( ) {
2582 // test from language/override_inheritance_abstract_test_14.dart 2574 // test from language/override_inheritance_abstract_test_14.dart
2583 Source source = addSource(r''' 2575 Source source = addSource(r'''
2584 abstract class A { 2576 abstract class A {
2585 set field(_); 2577 set field(_);
2586 } 2578 }
2587 abstract class I { 2579 abstract class I {
2588 var field; 2580 var field;
2589 } 2581 }
2590 class B extends A implements I { 2582 class B extends A implements I {
2591 get field => 0; 2583 get field => 0;
2592 }'''); 2584 }''');
2593 resolve(source); 2585 resolve(source);
2594 assertErrors(source, [ 2586 assertErrors(source,
2595 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2587 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2596 ]);
2597 verify([source]); 2588 verify([source]);
2598 } 2589 }
2599 2590
2600 void test_nonAbstractClassInheritsAbstractMemberOne_setter_fromInterface() { 2591 void test_nonAbstractClassInheritsAbstractMemberOne_setter_fromInterface() {
2601 Source source = addSource(r''' 2592 Source source = addSource(r'''
2602 class I { 2593 class I {
2603 set s(int i) {} 2594 set s(int i) {}
2604 } 2595 }
2605 class C implements I { 2596 class C implements I {
2606 }'''); 2597 }''');
2607 resolve(source); 2598 resolve(source);
2608 assertErrors(source, [ 2599 assertErrors(source,
2609 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2600 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2610 ]);
2611 verify([source]); 2601 verify([source]);
2612 } 2602 }
2613 2603
2614 void test_nonAbstractClassInheritsAbstractMemberOne_setter_fromSuperclass() { 2604 void test_nonAbstractClassInheritsAbstractMemberOne_setter_fromSuperclass() {
2615 Source source = addSource(r''' 2605 Source source = addSource(r'''
2616 abstract class A { 2606 abstract class A {
2617 set s(int i); 2607 set s(int i);
2618 } 2608 }
2619 class C extends A { 2609 class C extends A {
2620 }'''); 2610 }''');
2621 resolve(source); 2611 resolve(source);
2622 assertErrors(source, [ 2612 assertErrors(source,
2623 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2613 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2624 ]);
2625 verify([source]); 2614 verify([source]);
2626 } 2615 }
2627 2616
2628 void test_nonAbstractClassInheritsAbstractMemberOne_superclasses_interface() { 2617 void test_nonAbstractClassInheritsAbstractMemberOne_superclasses_interface() {
2629 // bug 11154 2618 // bug 11154
2630 Source source = addSource(r''' 2619 Source source = addSource(r'''
2631 class A { 2620 class A {
2632 get a => 'a'; 2621 get a => 'a';
2633 } 2622 }
2634 abstract class B implements A { 2623 abstract class B implements A {
2635 get b => 'b'; 2624 get b => 'b';
2636 } 2625 }
2637 class C extends B { 2626 class C extends B {
2638 }'''); 2627 }''');
2639 resolve(source); 2628 resolve(source);
2640 assertErrors(source, [ 2629 assertErrors(source,
2641 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2630 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2642 ]);
2643 verify([source]); 2631 verify([source]);
2644 } 2632 }
2645 2633
2646 void test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_mis singGetter() { 2634 void test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_mis singGetter() {
2647 // 16133 2635 // 16133
2648 Source source = addSource(r''' 2636 Source source = addSource(r'''
2649 class I { 2637 class I {
2650 var v; 2638 var v;
2651 } 2639 }
2652 class C implements I { 2640 class C implements I {
2653 set v(_) {} 2641 set v(_) {}
2654 }'''); 2642 }''');
2655 resolve(source); 2643 resolve(source);
2656 assertErrors(source, [ 2644 assertErrors(source,
2657 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2645 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2658 ]);
2659 verify([source]); 2646 verify([source]);
2660 } 2647 }
2661 2648
2662 void test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_mis singSetter() { 2649 void test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_mis singSetter() {
2663 // 16133 2650 // 16133
2664 Source source = addSource(r''' 2651 Source source = addSource(r'''
2665 class I { 2652 class I {
2666 var v; 2653 var v;
2667 } 2654 }
2668 class C implements I { 2655 class C implements I {
2669 get v => 1; 2656 get v => 1;
2670 }'''); 2657 }''');
2671 resolve(source); 2658 resolve(source);
2672 assertErrors(source, [ 2659 assertErrors(source,
2673 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE 2660 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE]);
2674 ]);
2675 verify([source]); 2661 verify([source]);
2676 } 2662 }
2677 2663
2678 void test_nonAbstractClassInheritsAbstractMemberThree() { 2664 void test_nonAbstractClassInheritsAbstractMemberThree() {
2679 Source source = addSource(r''' 2665 Source source = addSource(r'''
2680 abstract class A { 2666 abstract class A {
2681 m(); 2667 m();
2682 n(); 2668 n();
2683 o(); 2669 o();
2684 } 2670 }
2685 class C extends A { 2671 class C extends A {
2686 }'''); 2672 }''');
2687 resolve(source); 2673 resolve(source);
2688 assertErrors(source, [ 2674 assertErrors(source,
2689 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_THREE 2675 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_THREE]);
2690 ]);
2691 verify([source]); 2676 verify([source]);
2692 } 2677 }
2693 2678
2694 void test_nonAbstractClassInheritsAbstractMemberTwo() { 2679 void test_nonAbstractClassInheritsAbstractMemberTwo() {
2695 Source source = addSource(r''' 2680 Source source = addSource(r'''
2696 abstract class A { 2681 abstract class A {
2697 m(); 2682 m();
2698 n(); 2683 n();
2699 } 2684 }
2700 class C extends A { 2685 class C extends A {
2701 }'''); 2686 }''');
2702 resolve(source); 2687 resolve(source);
2703 assertErrors(source, [ 2688 assertErrors(source,
2704 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_TWO 2689 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_TWO]);
2705 ]);
2706 verify([source]); 2690 verify([source]);
2707 } 2691 }
2708 2692
2709 void test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromInterface_mis singBoth() { 2693 void test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromInterface_mis singBoth() {
2710 // 16133 2694 // 16133
2711 Source source = addSource(r''' 2695 Source source = addSource(r'''
2712 class I { 2696 class I {
2713 var v; 2697 var v;
2714 } 2698 }
2715 class C implements I { 2699 class C implements I {
2716 }'''); 2700 }''');
2717 resolve(source); 2701 resolve(source);
2718 assertErrors(source, [ 2702 assertErrors(source,
2719 StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_TWO 2703 [StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_TWO]);
2720 ]);
2721 verify([source]); 2704 verify([source]);
2722 } 2705 }
2723 2706
2724 void test_nonTypeInCatchClause_noElement() { 2707 void test_nonTypeInCatchClause_noElement() {
2725 Source source = addSource(r''' 2708 Source source = addSource(r'''
2726 f() { 2709 f() {
2727 try { 2710 try {
2728 } on T catch (e) { 2711 } on T catch (e) {
2729 } 2712 }
2730 }'''); 2713 }''');
(...skipping 769 matching lines...) Expand 10 before | Expand all | Expand 10 after
3500 3483
3501 void test_voidReturnForGetter() { 3484 void test_voidReturnForGetter() {
3502 Source source = addSource(r''' 3485 Source source = addSource(r'''
3503 class S { 3486 class S {
3504 void get value {} 3487 void get value {}
3505 }'''); 3488 }''');
3506 resolve(source); 3489 resolve(source);
3507 assertErrors(source, [StaticWarningCode.VOID_RETURN_FOR_GETTER]); 3490 assertErrors(source, [StaticWarningCode.VOID_RETURN_FOR_GETTER]);
3508 } 3491 }
3509 } 3492 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698