| library test; |
| import self as self; |
| import "dart:core" as core; |
| |
| static method main() → void { |
| { |
| function f<T extends core::Object* = dynamic>(T* x) → T* |
| return null; |
| <T extends core::Object* = dynamic>(T*) →* T* v1 = f; |
| v1 = <S extends core::Object* = dynamic>(S* x) → S* => x; |
| } |
| { |
| function f<T extends core::Object* = dynamic>(T* x) → core::List<T*>* |
| return null; |
| <T extends core::Object* = dynamic>(T*) →* core::List<T*>* v2 = f; |
| v2 = <S extends core::Object* = dynamic>(S* x) → core::List<S*>* => <S*>[x]; |
| core::Iterable<core::int*>* r = v2<core::int*>(42){(core::int*) →* core::List<core::int*>*}; |
| core::Iterable<core::String*>* s = v2<core::String*>("hello"){(core::String*) →* core::List<core::String*>*}; |
| core::Iterable<core::List<core::int*>*>* t = v2<core::List<core::int*>*>(<core::int*>[]){(core::List<core::int*>*) →* core::List<core::List<core::int*>*>*}; |
| core::Iterable<core::num*>* u = v2<core::num*>(42){(core::num*) →* core::List<core::num*>*}; |
| core::Iterable<core::num*>* v = v2<core::num*>(42){(core::num*) →* core::List<core::num*>*}; |
| } |
| } |