| library /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| |
| class Class extends core::Object { |
| synthetic constructor •() → self::Class |
| ; |
| } |
| class SubClass extends self::Class { |
| synthetic constructor •() → self::SubClass |
| ; |
| } |
| extension Extension<T extends core::Object? = dynamic> on T% { |
| method method1 = self::Extension|method1; |
| tearoff method1 = self::Extension|get#method1; |
| } |
| extension BoundExtension<T extends self::Class> on T { |
| method method2 = self::BoundExtension|method2; |
| tearoff method2 = self::BoundExtension|get#method2; |
| } |
| static method Extension|method1<T extends core::Object? = dynamic>(lowered final self::Extension|method1::T% #this) → self::Extension|method1::T% |
| ; |
| static method Extension|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T% |
| return () → self::Extension|get#method1::T% => self::Extension|method1<self::Extension|get#method1::T%>(#this); |
| static method BoundExtension|method2<T extends self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T |
| ; |
| static method BoundExtension|get#method2<T extends self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T |
| return () → self::BoundExtension|get#method2::T => self::BoundExtension|method2<self::BoundExtension|get#method2::T>(#this); |
| static method test1<T extends core::Object? = dynamic>(self::test1::T% t1) → self::Class |
| ; |
| static method test2<T extends self::Class>(self::test2::T t2) → dynamic |
| ; |
| static method test3<T extends core::Object? = dynamic>(self::test3::T% t3) → dynamic |
| ; |
| static method main() → dynamic |
| ; |