blob: 617fc2c7d27e86865c0f71cb11784d240f45b3c7 [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.
// 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(_) => 1;
// ^^^^
// [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
int get nonSubtypes1 => 1;
// ^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_SUBTYPE_SETTER_TYPES
// [cfe] unspecified
set nonSubtypes1(String _) {}
int? get nonSubtypes2 => 1;
// ^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_SUBTYPE_SETTER_TYPES
// [cfe] unspecified
set nonSubtypes2(int _) {}
FutureOr<int> get nonSubtypes3 => 1;
// ^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_SUBTYPE_SETTER_TYPES
// [cfe] unspecified
set nonSubtypes3(int _) {}
dynamic get nonSubtypes4 => 1;
// ^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_SUBTYPE_SETTER_TYPES
// [cfe] unspecified
set nonSubtypes4(int _) {}
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(_) => 1;
// ^^^^
// [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 staticNonSubtypes1 => 1;
// ^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_SUBTYPE_SETTER_TYPES
// [cfe] unspecified
static set staticNonSubtypes1(String _) {}
static int? get staticNonSubtypes2 => 1;
// ^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_SUBTYPE_SETTER_TYPES
// [cfe] unspecified
static set staticNonSubtypes2(int _) {}
static FutureOr<int> get staticNonSubtypes3 => 1;
// ^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_SUBTYPE_SETTER_TYPES
// [cfe] unspecified
static set staticNonSubtypes3(int _) {}
static dynamic get staticNonSubtypes4 => 1;
// ^^^^^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_SUBTYPE_SETTER_TYPES
// [cfe] unspecified
static set staticNonSubtypes4(int _) {}
int get nonSubtypes1 => 1;
// ^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_SUBTYPE_SETTER_TYPES
// [cfe] unspecified
set nonSubtypes1(String _) {}
int? get nonSubtypes2 => 1;
// ^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_SUBTYPE_SETTER_TYPES
// [cfe] unspecified
set nonSubtypes2(int _) {}
FutureOr<int> get nonSubtypes3 => 1;
// ^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_SUBTYPE_SETTER_TYPES
// [cfe] unspecified
set nonSubtypes3(int _) {}
dynamic get nonSubtypes4 => 1;
// ^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.GETTER_NOT_SUBTYPE_SETTER_TYPES
// [cfe] unspecified
set nonSubtypes4(int _) {}
}
main() {
tooFew = 1;
tooMany = 1;
wrongReturnType1 = 1;
wrongReturnType2 = 1;
wrongReturnType3 = 1;
C.staticWrongReturnType1 = 1;
C.staticWrongReturnType2 = 1;
C.staticWrongReturnType3 = 1;
C().wrongReturnType1 = 1;
C().wrongReturnType2 = 1;
C().wrongReturnType3 = 1;
var x1 = C.staticNonSubtypes1;
C.staticNonSubtypes1 = '' as dynamic;
var x2 = C.staticNonSubtypes2;
C.staticNonSubtypes2 = 1 as dynamic;
var x3 = C.staticNonSubtypes3;
C.staticNonSubtypes3 = 1 as dynamic;
var y1 = nonSubtypes1;
nonSubtypes1 = '' as dynamic;
var y2 = nonSubtypes2;
nonSubtypes2 = 1 as dynamic;
var y3 = nonSubtypes3;
nonSubtypes3 = 1 as dynamic;
var z1 = C().nonSubtypes1;
C().nonSubtypes1 = '' as dynamic;
var z2 = C().nonSubtypes2;
C().nonSubtypes2 = 1 as dynamic;
var z3 = C().nonSubtypes3;
C().nonSubtypes3 = 1 as dynamic;
}