blob: 1cf0adfe0ef1eeddbbe1148928682a946c32d310 [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A<T extends core::num> extends core::Object {
synthetic constructor •() self::A<self::A::T>
: super core::Object::•()
;
method foo() <S extends self::A::T = dynamic>(S) void {
core::print("foo: T = ${self::A::T}");
return <S extends self::A::T>(S a) void {};
}
}
class B<T extends core::num> extends core::Object {
synthetic constructor •() self::B<self::B::T>
: super core::Object::•()
;
method foo() (self::B::T) void {
core::print("foo: T = ${self::B::T}");
return (self::B::T a) void {};
}
}
static field self::A<core::num> a = new self::A::•<core::int>();
static field self::B<core::num> b = new self::B::•<core::int>();
static method main() dynamic {
try {
self::a.{self::A::foo}(){() <S extends core::num = dynamic>(S) void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} <S extends core::num = dynamic>(S) void;
throw "Expected TypeError";
}
on core::TypeError catch(final core::TypeError e) {
core::print(e);
}
try {
self::b.{self::B::foo}(){() (core::num) void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} (core::num) void;
throw "Expected TypeError";
}
on core::TypeError catch(final core::TypeError e) {
core::print(e);
}
}