| class A<X> {} |
| class B<X> extends A<X> {} |
| class C extends B<int> {} |
| extension type E on C show B<int> hide A<int> {} |
| class A2 {} |
| class B2 extends A2 {} |
| class C2 extends B2 {} |
| extension type E2 on C2 show B2 hide A2 {} |
| class A3 { |
| void foo() {} |
| int? field; |
| String? field2; |
| int get getter => 42; |
| void set setter(int value) {} |
| void set setter2(int value) {} |
| void set setter3(int value) {} |
| A3 operator +(A3 other) => other; |
| A3 operator *(A3 other) => this; |
| } |
| class B3 extends A3 { |
| void bar() {} |
| } |
| class C3 extends B3 { |
| void baz() {} |
| } |
| extension type E3 on C3 show B3, baz, field, setter, set field2, operator + hide foo, get field, getter, setter2, set setter3, operator * {} |
| main() {} |