fdc765faad
TEST=existing Change-Id: I0a8fdf09f742b55357411f12dc6164d4050bb83c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/196283 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
260 lines
13 KiB
Plaintext
260 lines
13 KiB
Plaintext
library /*isNonNullableByDefault*/;
|
|
//
|
|
// Problems in library:
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:13:13: Error: Type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'A'.
|
|
// - 'Object' is from 'dart:core'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// A<Object> aObject; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
|
|
// class A<T extends num> {}
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:14:11: Error: Type argument 'num?' doesn't conform to the bound 'num' of the type variable 'T' on 'A'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// A<num?> aNumNullable; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
|
|
// class A<T extends num> {}
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:15:11: Error: Type argument 'int?' doesn't conform to the bound 'num' of the type variable 'T' on 'A'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// A<int?> aIntNullable; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
|
|
// class A<T extends num> {}
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:16:11: Error: Type argument 'Null' doesn't conform to the bound 'num' of the type variable 'T' on 'A'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// A<Null> aNull; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
|
|
// class A<T extends num> {}
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:17:21: Error: Type argument 'Object' doesn't conform to the bound 'num' of the type variable 'X' on 'FArgument'.
|
|
// - 'Object' is from 'dart:core'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FArgument<Object> fArgumentObject; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:7:19: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FArgument<X extends num> = Function(X);
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:18:19: Error: Type argument 'num?' doesn't conform to the bound 'num' of the type variable 'X' on 'FArgument'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FArgument<num?> fArgumentNumNullable; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:7:19: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FArgument<X extends num> = Function(X);
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:19:19: Error: Type argument 'int?' doesn't conform to the bound 'num' of the type variable 'X' on 'FArgument'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FArgument<int?> fArgumentIntNullable; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:7:19: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FArgument<X extends num> = Function(X);
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:20:19: Error: Type argument 'Null' doesn't conform to the bound 'num' of the type variable 'X' on 'FArgument'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FArgument<Null> fArgumentNull; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:7:19: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FArgument<X extends num> = Function(X);
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:21:19: Error: Type argument 'Object' doesn't conform to the bound 'num' of the type variable 'X' on 'FReturn'.
|
|
// - 'Object' is from 'dart:core'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FReturn<Object> fReturnObject; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:8:17: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FReturn<X extends num> = X Function();
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:22:17: Error: Type argument 'num?' doesn't conform to the bound 'num' of the type variable 'X' on 'FReturn'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FReturn<num?> fReturnNumNullable; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:8:17: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FReturn<X extends num> = X Function();
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:23:17: Error: Type argument 'int?' doesn't conform to the bound 'num' of the type variable 'X' on 'FReturn'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FReturn<int?> fReturnIntNullable; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:8:17: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FReturn<X extends num> = X Function();
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:24:17: Error: Type argument 'Null' doesn't conform to the bound 'num' of the type variable 'X' on 'FReturn'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FReturn<Null> fReturnNull; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:8:17: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FReturn<X extends num> = X Function();
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:25:17: Error: Type argument 'Object' doesn't conform to the bound 'num' of the type variable 'X' on 'FBoth'.
|
|
// - 'Object' is from 'dart:core'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FBoth<Object> fBothObject; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:9:15: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FBoth<X extends num> = X Function(X);
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:26:15: Error: Type argument 'num?' doesn't conform to the bound 'num' of the type variable 'X' on 'FBoth'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FBoth<num?> fBothNumNullable; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:9:15: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FBoth<X extends num> = X Function(X);
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:27:15: Error: Type argument 'int?' doesn't conform to the bound 'num' of the type variable 'X' on 'FBoth'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FBoth<int?> fBothIntNullable; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:9:15: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FBoth<X extends num> = X Function(X);
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:28:15: Error: Type argument 'Null' doesn't conform to the bound 'num' of the type variable 'X' on 'FBoth'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FBoth<Null> fBothNull; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:9:15: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FBoth<X extends num> = X Function(X);
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:29:20: Error: Type argument 'Object' doesn't conform to the bound 'num' of the type variable 'X' on 'FNowhere'.
|
|
// - 'Object' is from 'dart:core'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FNowhere<Object> fNowhereObject; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:10:18: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FNowhere<X extends num> = Function();
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:30:18: Error: Type argument 'num?' doesn't conform to the bound 'num' of the type variable 'X' on 'FNowhere'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FNowhere<num?> fNowhereNumNullable; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:10:18: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FNowhere<X extends num> = Function();
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:31:18: Error: Type argument 'int?' doesn't conform to the bound 'num' of the type variable 'X' on 'FNowhere'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FNowhere<int?> fNowhereIntNullable; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:10:18: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FNowhere<X extends num> = Function();
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:32:18: Error: Type argument 'Null' doesn't conform to the bound 'num' of the type variable 'X' on 'FNowhere'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FNowhere<Null> fNowhereNull; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:10:18: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FNowhere<X extends num> = Function();
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:33:22: Error: Type argument 'Object?' doesn't conform to the bound 'num' of the type variable 'X' on 'FArgument'.
|
|
// - 'Object' is from 'dart:core'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FArgument<Object?> fArgumentObjectNullable; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:7:19: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FArgument<X extends num> = Function(X);
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:34:22: Error: Type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'X' on 'FArgument'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FArgument<dynamic> fArgumentDynamic; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:7:19: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FArgument<X extends num> = Function(X);
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:35:19: Error: Type argument 'void' doesn't conform to the bound 'num' of the type variable 'X' on 'FArgument'.
|
|
// Try changing type arguments so that they conform to the bounds.
|
|
// FArgument<void> fArgumentVoid; // Error.
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue42429.dart:7:19: Context: This is the type variable whose bound isn't conformed to.
|
|
// typedef FArgument<X extends num> = Function(X);
|
|
// ^
|
|
//
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
|
|
typedef FArgument<contravariant X extends core::num> = (X) → dynamic;
|
|
typedef FReturn<X extends core::num> = () → X;
|
|
typedef FBoth<invariant X extends core::num> = (X) → X;
|
|
typedef FNowhere<unrelated X extends core::num> = () → dynamic;
|
|
class A<T extends core::num> extends core::Object {
|
|
synthetic constructor •() → self::A<self::A::T>
|
|
: super core::Object::•()
|
|
;
|
|
}
|
|
static method foo() → dynamic {
|
|
self::A<core::Object> aObject;
|
|
self::A<core::num?> aNumNullable;
|
|
self::A<core::int?> aIntNullable;
|
|
self::A<Null> aNull;
|
|
(core::Object) → dynamic fArgumentObject;
|
|
(core::num?) → dynamic fArgumentNumNullable;
|
|
(core::int?) → dynamic fArgumentIntNullable;
|
|
(Null) → dynamic fArgumentNull;
|
|
() → core::Object fReturnObject;
|
|
() → core::num? fReturnNumNullable;
|
|
() → core::int? fReturnIntNullable;
|
|
() → Null fReturnNull;
|
|
(core::Object) → core::Object fBothObject;
|
|
(core::num?) → core::num? fBothNumNullable;
|
|
(core::int?) → core::int? fBothIntNullable;
|
|
(Null) → Null fBothNull;
|
|
() → dynamic fNowhereObject;
|
|
() → dynamic fNowhereNumNullable;
|
|
() → dynamic fNowhereIntNullable;
|
|
() → dynamic fNowhereNull;
|
|
(core::Object?) → dynamic fArgumentObjectNullable;
|
|
(dynamic) → dynamic fArgumentDynamic;
|
|
(void) → dynamic fArgumentVoid;
|
|
self::A<core::Object?> aObjectNullable;
|
|
self::A<dynamic> aDynamic;
|
|
self::A<void> aVoid;
|
|
self::A<core::num> aNum;
|
|
self::A<core::int> aInt;
|
|
self::A<Never> aNever;
|
|
(core::num) → dynamic fArgumentNum;
|
|
(core::int) → dynamic fArgumentInt;
|
|
(Never) → dynamic fArgumentNever;
|
|
() → core::Object? fReturnObjectNullable;
|
|
() → dynamic fReturnDynamic;
|
|
() → void fReturnVoid;
|
|
() → core::num fReturnNum;
|
|
() → core::int fReturnInt;
|
|
() → Never fReturnNever;
|
|
(core::Object?) → core::Object? fBothObjectNullable;
|
|
(dynamic) → dynamic fBothDynamic;
|
|
(void) → void fBothVoid;
|
|
(core::num) → core::num fBothNum;
|
|
(core::int) → core::int fBothInt;
|
|
(Never) → Never fBothNever;
|
|
() → dynamic fNowhereObjectNullable;
|
|
() → dynamic fNowhereDynamic;
|
|
() → dynamic fNowhereVoid;
|
|
() → dynamic fNowhereNum;
|
|
() → dynamic fNowhereInt;
|
|
() → dynamic fNowhereNever;
|
|
}
|
|
static method main() → dynamic {}
|