blob: c0499556a35ab3004f85507ddc9a8c4cb027cdef [file] [log] [blame]
library #lib /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class T1 extends core::Object {
synthetic constructor •() self::T1
: super core::Object::•()
;
}
class T2 extends core::Object {
synthetic constructor •() self::T2
: super core::Object::•()
;
}
class T3 extends core::Object {
synthetic constructor •() self::T3
: super core::Object::•()
;
}
class A extends core::Object {
synthetic constructor •() self::A
: super core::Object::•()
;
[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foo() dynamic
return new self::T1::•();
[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method bar() dynamic
return new self::T2::•();
[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:5,getterSelectorId:6] method bazz() dynamic
return new self::T3::•();
}
class B extends core::Object {
synthetic constructor •() self::B
: super core::Object::•()
;
[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:7,getterSelectorId:8] method foo() dynamic
return new self::T1::•();
[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:9,getterSelectorId:10] method bar() dynamic
return new self::T2::•();
[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:11,getterSelectorId:12] method bazz() dynamic
return new self::T3::•();
}
[@vm.inferred-type.metadata=!]late static field core::Function unknown;
static method use_foo1(dynamic x) dynamic
return [@vm.inferred-type.metadata=#lib::T1] x{dynamic}.foo();
static method use_foo2(dynamic x) dynamic
return [@vm.inferred-type.metadata=#lib::T1] x{dynamic}.foo();
static method use_bar(dynamic x) dynamic
return [@vm.inferred-type.metadata=#lib::T2] x{dynamic}.bar();
static method use_bazz(dynamic x) dynamic
return [@vm.inferred-type.metadata=#lib::T3] x{dynamic}.bazz();
static method getDynamic() dynamic
return self::unknown();
static method allocateA() dynamic {
new self::A::•();
}
static method allocateB() dynamic {
new self::B::•();
}
static method main(core::List<core::String> args) dynamic {
self::use_foo1(self::getDynamic());
self::allocateA();
self::use_foo2(self::getDynamic());
self::use_bar(self::getDynamic());
self::allocateB();
self::use_bazz(self::getDynamic());
}