cf8887bd7e
The update is specified in the following: https://github.com/dart-lang/language/pull/1133 Change-Id: I2850b1acf7c94b8174c21cf899c9b926a03d9cc8 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175726 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
67 lines
2.3 KiB
Dart
67 lines
2.3 KiB
Dart
// Copyright (c) 2020, 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.
|
|
|
|
class A<T extends num> {}
|
|
|
|
typedef FArgument<X extends num> = Function(X);
|
|
typedef FReturn<X extends num> = X Function();
|
|
typedef FBoth<X extends num> = X Function(X);
|
|
typedef FNowhere<X extends num> = Function();
|
|
|
|
foo() {
|
|
A<Object> aObject; // Error.
|
|
A<num?> aNumNullable; // Error.
|
|
A<int?> aIntNullable; // Error.
|
|
A<Null> aNull; // Error.
|
|
FArgument<Object> fArgumentObject; // Error.
|
|
FArgument<num?> fArgumentNumNullable; // Error.
|
|
FArgument<int?> fArgumentIntNullable; // Error.
|
|
FArgument<Null> fArgumentNull; // Error.
|
|
FReturn<Object> fReturnObject; // Error.
|
|
FReturn<num?> fReturnNumNullable; // Error.
|
|
FReturn<int?> fReturnIntNullable; // Error.
|
|
FReturn<Null> fReturnNull; // Error.
|
|
FBoth<Object> fBothObject; // Error.
|
|
FBoth<num?> fBothNumNullable; // Error.
|
|
FBoth<int?> fBothIntNullable; // Error.
|
|
FBoth<Null> fBothNull; // Error.
|
|
FNowhere<Object> fNowhereObject; // Error.
|
|
FNowhere<num?> fNowhereNumNullable; // Error.
|
|
FNowhere<int?> fNowhereIntNullable; // Error.
|
|
FNowhere<Null> fNowhereNull; // Error.
|
|
FArgument<Object?> fArgumentObjectNullable; // Error.
|
|
FArgument<dynamic> fArgumentDynamic; // Error.
|
|
FArgument<void> fArgumentVoid; // Error.
|
|
|
|
A<Object?> aObjectNullable; // Ok.
|
|
A<dynamic> aDynamic; // Ok.
|
|
A<void> aVoid; // Ok.
|
|
A<num> aNum; // Ok.
|
|
A<int> aInt; // Ok.
|
|
A<Never> aNever; // Ok.
|
|
FArgument<num> fArgumentNum; // Ok.
|
|
FArgument<int> fArgumentInt; // Ok.
|
|
FArgument<Never> fArgumentNever; // Ok.
|
|
FReturn<Object?> fReturnObjectNullable; // Ok.
|
|
FReturn<dynamic> fReturnDynamic; // Ok.
|
|
FReturn<void> fReturnVoid; // Ok.
|
|
FReturn<num> fReturnNum; // Ok.
|
|
FReturn<int> fReturnInt; // Ok.
|
|
FReturn<Never> fReturnNever; // Ok.
|
|
FBoth<Object?> fBothObjectNullable; // Ok.
|
|
FBoth<dynamic> fBothDynamic; // Ok.
|
|
FBoth<void> fBothVoid; // Ok.
|
|
FBoth<num> fBothNum; // Ok.
|
|
FBoth<int> fBothInt; // Ok.
|
|
FBoth<Never> fBothNever; // Ok.
|
|
FNowhere<Object?> fNowhereObjectNullable; // Ok.
|
|
FNowhere<dynamic> fNowhereDynamic; // Ok.
|
|
FNowhere<void> fNowhereVoid; // Ok.
|
|
FNowhere<num> fNowhereNum; // Ok.
|
|
FNowhere<int> fNowhereInt; // Ok.
|
|
FNowhere<Never> fNowhereNever; // Ok.
|
|
}
|
|
|
|
main() {}
|