blob: 10603f438fcee933dc29c98efbe35119d68eaaf9 [file] [log] [blame]
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// @dart = 2.9
// Test that a setter has a single argument.
import 'dart:async';
set tooFew() {}
// ^^^^^^
// [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER
// ^
// [cfe] A setter should have exactly one formal parameter.
set tooMany(var value, var extra) {}
// ^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.WRONG_NUMBER_OF_PARAMETERS_FOR_SETTER
// ^
// [cfe] A setter should have exactly one formal parameter.
/*space*/ int set wrongReturnType1(_) {}
// ^^^
// [analyzer] COMPILE_TIME_ERROR.NON_VOID_RETURN_FOR_SETTER
// [cfe] unspecified
/*space*/ FutureOr<void> set wrongReturnType2(_) {}
// ^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.NON_VOID_RETURN_FOR_SETTER
// [cfe] unspecified
/*space*/ Never set wrongReturnType3(_) {}
// ^^^^^
// [analyzer] COMPILE_TIME_ERROR.NON_VOID_RETURN_FOR_SETTER
// [cfe] unspecified
class C {
static int set staticWrongReturnType1(_) => 1;
// ^^^
// [analyzer] COMPILE_TIME_ERROR.NON_VOID_RETURN_FOR_SETTER
// [cfe] unspecified
static FutureOr<void> set staticWrongReturnType2(_) {}
// ^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.NON_VOID_RETURN_FOR_SETTER
// [cfe] unspecified
static Never set staticWrongReturnType3(_) => throw 1;
// ^^^^^
// [analyzer] COMPILE_TIME_ERROR.NON_VOID_RETURN_FOR_SETTER
// [cfe] unspecified
/*space*/ int set wrongReturnType1(_) {}
// ^^^
// [analyzer] COMPILE_TIME_ERROR.NON_VOID_RETURN_FOR_SETTER
// [cfe] unspecified
/*space*/ FutureOr<void> set wrongReturnType2(_) {}
// ^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.NON_VOID_RETURN_FOR_SETTER
// [cfe] unspecified
/*space*/ Never set wrongReturnType3(_) => throw 1;
// ^^^^^
// [analyzer] COMPILE_TIME_ERROR.NON_VOID_RETURN_FOR_SETTER
// [cfe] unspecified
static int get staticNonAssignableTypes1 => 1;
// ^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_ASSIGNABLE_SETTER_TYPES
// [cfe] unspecified
static set staticNonAssignableTypes1(String _) {}
static num get staticAssignableTypes1 => 1;
static set staticAssignableTypes1(int _) {}
static FutureOr<int> get staticAssignableTypes2 => 1;
static set staticAssignableTypes2(int _) {}
static dynamic get staticAssignableTypes3 => 1;
static set staticAssignableTypes3(int _) {}
int get nonAssignableTypes1 => 1;
// ^^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_ASSIGNABLE_SETTER_TYPES
// [cfe] unspecified
set nonAssignableTypes1(String _) {}
num get assignableTypes1 => 1;
set assignableTypes1(int _) {}
FutureOr<int> get assignableTypes2 => 1;
set assignableTypes2(int _) {}
dynamic get assignableTypes3 => 1;
set assignableTypes3(int _) {}
}
main() {
tooFew = 1;
tooMany = 1;
wrongReturnType1 = 1;
wrongReturnType2 = 1;
wrongReturnType3 = 1;
C.staticWrongReturnType1 = 4;
C.staticWrongReturnType2 = 4;
C.staticWrongReturnType3 = 4;
C().wrongReturnType1 = 5;
C().wrongReturnType2 = 5;
C().wrongReturnType3 = 5;
var x1 = C.staticNonAssignableTypes1;
C.staticNonAssignableTypes1 = '' as dynamic;
var y1 = C.staticAssignableTypes1;
C.staticAssignableTypes1 = '' as dynamic;
var y2 = C.staticAssignableTypes2;
C.staticAssignableTypes2 = '' as dynamic;
var y3 = C.staticAssignableTypes3;
C.staticAssignableTypes3 = '' as dynamic;
var z1 = C().nonAssignableTypes1;
C().nonAssignableTypes1 = '' as dynamic;
var w1 = C().assignableTypes1;
C().assignableTypes1 = '' as dynamic;
var w2 = C().assignableTypes2;
C().assignableTypes2 = '' as dynamic;
var w3 = C().assignableTypes3;
C().assignableTypes3 = '' as dynamic;
}