blob: 2cadebeab15c0c12d3f353b14eb675c520f5652d [file] [log] [blame]
library #lib;
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=hasThisUses:false,hasTearOffUses:false] method foo() dynamic
return new self::T1::•();
[@vm.procedure-attributes.metadata=hasThisUses:false,hasTearOffUses:false] method bar() dynamic
return new self::T2::•();
[@vm.procedure-attributes.metadata=hasThisUses:false,hasTearOffUses:false] method bazz() dynamic
return new self::T3::•();
}
class B extends core::Object {
synthetic constructor •() self::B
: super core::Object::•()
;
[@vm.procedure-attributes.metadata=hasThisUses:false,hasTearOffUses:false] method foo() dynamic
return new self::T1::•();
[@vm.procedure-attributes.metadata=hasThisUses:false,hasTearOffUses:false] method bar() dynamic
return new self::T2::•();
[@vm.procedure-attributes.metadata=hasThisUses:false,hasTearOffUses:false] method bazz() dynamic
return new self::T3::•();
}
[@vm.inferred-type.metadata=dart.core::Null?]static field core::Function unknown;
static method use_foo1(dynamic x) dynamic
return [@vm.inferred-type.metadata=#lib::T1] x.foo();
static method use_foo2(dynamic x) dynamic
return [@vm.inferred-type.metadata=#lib::T1] x.foo();
static method use_bar(dynamic x) dynamic
return [@vm.inferred-type.metadata=#lib::T2] x.bar();
static method use_bazz(dynamic x) dynamic
return [@vm.inferred-type.metadata=#lib::T3] x.bazz();
static method getDynamic() dynamic
return [@vm.call-site-attributes.metadata=receiverType:dart.core::Function] self::unknown.call();
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());
}