blob: b4f873ef1c177fc91201590519b2a2369b0646c5 [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::•()
;
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method go() self::T3*
return new self::T3::•();
}
class T2 extends core::Object {
synthetic constructor •() self::T2*
: super core::Object::•()
;
}
class T3 extends core::Object {
synthetic constructor •() self::T3*
: super core::Object::•()
;
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method run() dynamic {
core::print("hi");
}
}
class Q<T extends core::Object* = dynamic> extends core::Object {
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:5] final field self::Q::T* result;
constructor •(self::Q::T* result) self::Q<self::Q::T*>*
: self::Q::result = result, super core::Object::•()
;
}
static method foo1([@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::T1*>] core::List<self::T1*>* list) dynamic {
[@vm.direct-call.metadata=#lib::T3.run] [@vm.inferred-type.metadata=!? (skip check)] [@vm.direct-call.metadata=#lib::T1.go??] [@vm.inferred-type.metadata=#lib::T3 (skip check)] [@vm.direct-call.metadata=#lib::Q.result??] [@vm.direct-call.metadata=dart._internal::ListIterable.first] [@vm.inferred-type.metadata=#lib::Q?] [@vm.direct-call.metadata=dart.collection::_ListBase&Object&ListMixin.map] [@vm.inferred-type.metadata=dart._internal::MappedListIterable<#lib::T1*, ?> (skip check)] list.{core::Iterable::map}<self::Q<self::T1*>*>((self::T1* t1) self::Q<self::T1*>* => new self::Q::•<self::T1*>(t1)).{core::Iterable::first}.{self::Q::result}.{self::T1::go}().{self::T3::run}();
}
static method foo2NewValue() self::Q<dynamic>*
return new self::Q::•<self::T2*>(new self::T2::•());
static method foo3NewT1() dynamic {
new self::T1::•();
}
static method main(core::List<core::String*>* args) dynamic {
self::foo1(<self::T1*>[]);
self::foo2NewValue();
self::foo3NewT1();
}