| library /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| |
| class Class<T extends self::Class<self::Class::T> = self::Class<dynamic>> extends core::Object { |
| synthetic constructor •() → self::Class<self::Class::T> |
| : super core::Object::•() |
| ; |
| } |
| class Subclass extends self::Class<self::Subclass> { |
| synthetic constructor •() → self::Subclass |
| : super self::Class::•() |
| ; |
| } |
| extension _extension#0<R extends core::Object? = dynamic, T extends core::Object? = dynamic> on (T%) → R% { |
| get returnType = self::_extension#0|get#returnType; |
| get parameterType = self::_extension#0|get#parameterType; |
| } |
| extension _extension#1<T extends self::Class<T> = self::Class<dynamic>> on <S extends T = dynamic>(T, S) → dynamic { |
| get parameterType = self::_extension#1|get#parameterType; |
| } |
| static method _extension#0|get#returnType<R extends core::Object? = dynamic, T extends core::Object? = dynamic>(lowered final (self::_extension#0|get#returnType::T%) → self::_extension#0|get#returnType::R% #this) → core::Type |
| return self::_extension#0|get#returnType::R%; |
| static method _extension#0|get#parameterType<R extends core::Object? = dynamic, T extends core::Object? = dynamic>(lowered final (self::_extension#0|get#parameterType::T%) → self::_extension#0|get#parameterType::R% #this) → core::Type |
| return self::_extension#0|get#parameterType::T%; |
| static method _extension#1|get#parameterType<T extends self::Class<self::_extension#1|get#parameterType::T> = self::Class<dynamic>>(lowered final <S extends self::_extension#1|get#parameterType::T = dynamic>(self::_extension#1|get#parameterType::T, S) → dynamic #this) → core::Type |
| return self::_extension#1|get#parameterType::T; |
| static method main() → dynamic { |
| function local1(core::int i) → core::int |
| return i; |
| core::print(self::_extension#0|get#returnType<core::int, core::int>(local1)); |
| core::print(self::_extension#0|get#parameterType<core::int, core::int>(local1)); |
| function local2<S extends self::Subclass>(self::Subclass a, S b) → self::Subclass |
| return a; |
| core::print(self::_extension#1|get#parameterType<self::Subclass>(local2)); |
| } |