blob: 06245cd1189ec66eb7a2b52e325a5576a5d86776 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
static factory •() self::A /* redirection-target: self::B::• */
return self::B::•();
static method _#new#tearOff() → self::A
return new self::C::•<core::int>();
}
abstract class B extends core::Object implements self::A {
static factory •() self::B /* redirection-target: self::C::•<core::int>*/
return new self::C::•<core::int>();
static method _#new#tearOff() → self::B
return new self::C::•<core::int>();
}
class C<T extends core::Object? = dynamic> extends core::Object implements self::B /*hasConstConstructor*/ {
const constructor •() self::C<self::C::T%>
: super core::Object::•()
;
static method _#new#tearOff<T extends core::Object? = dynamic>() → self::C<self::C::_#new#tearOff::T%>
return new self::C::•<self::C::_#new#tearOff::T%>();
}
static method main() dynamic {
#C1;
#C2;
#C4;
}
constants {
#C1 = static-tearoff self::A::_#new#tearOff
#C2 = static-tearoff self::B::_#new#tearOff
#C3 = static-tearoff self::C::_#new#tearOff
#C4 = instantiation #C3 <core::String*>
}