File tree 2 files changed +27
-1
lines changed
2 files changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -366,7 +366,7 @@ class _ClassVerifier {
366
366
if (getter.element.kind == ElementKind .GETTER ) {
367
367
// TODO(scheglov) We should separate getters and setters.
368
368
var setter = interface .map[new Name (libraryUri, '${name .name }=' )];
369
- if (setter != null ) {
369
+ if (setter != null && setter.parameters.length == 1 ) {
370
370
var getterType = getter.returnType;
371
371
var setterType = setter.parameters[0 ].type;
372
372
if (! typeSystem.isAssignableTo (getterType, setterType)) {
Original file line number Diff line number Diff line change @@ -1301,6 +1301,32 @@ class B extends A {
1301
1301
assertNoTestErrors ();
1302
1302
}
1303
1303
1304
+ test_error_mismatchedGetterAndSetterTypes_OK_setterParameter_0 () async {
1305
+ addTestFile (r'''
1306
+ class C {
1307
+ int get foo => 0;
1308
+ set foo() {}
1309
+ }
1310
+ ''' );
1311
+ await resolveTestFile ();
1312
+ assertTestErrors ([
1313
+ CompileTimeErrorCode .WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER ,
1314
+ ]);
1315
+ }
1316
+
1317
+ test_error_mismatchedGetterAndSetterTypes_OK_setterParameter_2 () async {
1318
+ addTestFile (r'''
1319
+ class C {
1320
+ int get foo => 0;
1321
+ set foo(String p1, String p2) {}
1322
+ }
1323
+ ''' );
1324
+ await resolveTestFile ();
1325
+ assertTestErrors ([
1326
+ CompileTimeErrorCode .WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER ,
1327
+ ]);
1328
+ }
1329
+
1304
1330
test_error_mismatchedGetterAndSetterTypes_superGetter () async {
1305
1331
addTestFile (r'''
1306
1332
class A {
You can’t perform that action at this time.
0 commit comments