=== tests/cases/compiler/genericPrototypeProperty3.ts === class BaseEvent { >BaseEvent : Symbol(BaseEvent, Decl(genericPrototypeProperty3.ts, 0, 0)) target: {}; >target : Symbol(target, Decl(genericPrototypeProperty3.ts, 0, 17)) } class MyEvent extends BaseEvent { // T is instantiated to any in the prototype, which is assignable to {} >MyEvent : Symbol(MyEvent, Decl(genericPrototypeProperty3.ts, 2, 1)) >T : Symbol(T, Decl(genericPrototypeProperty3.ts, 4, 14)) >BaseEvent : Symbol(BaseEvent, Decl(genericPrototypeProperty3.ts, 0, 0)) target: T; >target : Symbol(target, Decl(genericPrototypeProperty3.ts, 4, 36)) >T : Symbol(T, Decl(genericPrototypeProperty3.ts, 4, 14)) } class BaseEventWrapper { >BaseEventWrapper : Symbol(BaseEventWrapper, Decl(genericPrototypeProperty3.ts, 6, 1)) t: BaseEvent; >t : Symbol(t, Decl(genericPrototypeProperty3.ts, 7, 24)) >BaseEvent : Symbol(BaseEvent, Decl(genericPrototypeProperty3.ts, 0, 0)) } class MyEventWrapper extends BaseEventWrapper { >MyEventWrapper : Symbol(MyEventWrapper, Decl(genericPrototypeProperty3.ts, 9, 1)) >BaseEventWrapper : Symbol(BaseEventWrapper, Decl(genericPrototypeProperty3.ts, 6, 1)) t: MyEvent; >t : Symbol(t, Decl(genericPrototypeProperty3.ts, 11, 47)) >MyEvent : Symbol(MyEvent, Decl(genericPrototypeProperty3.ts, 2, 1)) }