df5ffc0ea1
* Only enable special assignability rule on string index signatures to 'any'. * Accepted baselines. * Added test. * Accepted baselines. * Renamed test files. * Add non-erroring version of bclas'subClassThisTypeAssignable01.ts' * Accepted baselines. Co-authored-by: TypeScript Bot <typescriptbot@microsoft.com>
108 lines
4 KiB
Plaintext
108 lines
4 KiB
Plaintext
=== tests/cases/compiler/tile1.ts ===
|
|
interface Lifecycle<Attrs, State extends Lifecycle<Attrs, State>> {
|
|
>Lifecycle : Symbol(Lifecycle, Decl(tile1.ts, 0, 0))
|
|
>Attrs : Symbol(Attrs, Decl(tile1.ts, 0, 20))
|
|
>State : Symbol(State, Decl(tile1.ts, 0, 26))
|
|
>Lifecycle : Symbol(Lifecycle, Decl(tile1.ts, 0, 0))
|
|
>Attrs : Symbol(Attrs, Decl(tile1.ts, 0, 20))
|
|
>State : Symbol(State, Decl(tile1.ts, 0, 26))
|
|
|
|
oninit?(vnode: Vnode<Attrs, State>): number;
|
|
>oninit : Symbol(Lifecycle.oninit, Decl(tile1.ts, 0, 67))
|
|
>vnode : Symbol(vnode, Decl(tile1.ts, 1, 9))
|
|
>Vnode : Symbol(Vnode, Decl(tile1.ts, 3, 1))
|
|
>Attrs : Symbol(Attrs, Decl(tile1.ts, 0, 20))
|
|
>State : Symbol(State, Decl(tile1.ts, 0, 26))
|
|
|
|
[_: number]: any;
|
|
>_ : Symbol(_, Decl(tile1.ts, 2, 2))
|
|
}
|
|
|
|
interface Vnode<Attrs, State extends Lifecycle<Attrs, State>> {
|
|
>Vnode : Symbol(Vnode, Decl(tile1.ts, 3, 1))
|
|
>Attrs : Symbol(Attrs, Decl(tile1.ts, 5, 16))
|
|
>State : Symbol(State, Decl(tile1.ts, 5, 22))
|
|
>Lifecycle : Symbol(Lifecycle, Decl(tile1.ts, 0, 0))
|
|
>Attrs : Symbol(Attrs, Decl(tile1.ts, 5, 16))
|
|
>State : Symbol(State, Decl(tile1.ts, 5, 22))
|
|
|
|
tag: Component<Attrs, State>;
|
|
>tag : Symbol(Vnode.tag, Decl(tile1.ts, 5, 63))
|
|
>Component : Symbol(Component, Decl(tile1.ts, 7, 1))
|
|
>Attrs : Symbol(Attrs, Decl(tile1.ts, 5, 16))
|
|
>State : Symbol(State, Decl(tile1.ts, 5, 22))
|
|
}
|
|
|
|
interface Component<Attrs, State extends Lifecycle<Attrs, State>> {
|
|
>Component : Symbol(Component, Decl(tile1.ts, 7, 1))
|
|
>Attrs : Symbol(Attrs, Decl(tile1.ts, 9, 20))
|
|
>State : Symbol(State, Decl(tile1.ts, 9, 26))
|
|
>Lifecycle : Symbol(Lifecycle, Decl(tile1.ts, 0, 0))
|
|
>Attrs : Symbol(Attrs, Decl(tile1.ts, 9, 20))
|
|
>State : Symbol(State, Decl(tile1.ts, 9, 26))
|
|
|
|
view(this: State, vnode: Vnode<Attrs, State>): number;
|
|
>view : Symbol(Component.view, Decl(tile1.ts, 9, 67))
|
|
>this : Symbol(this, Decl(tile1.ts, 10, 6))
|
|
>State : Symbol(State, Decl(tile1.ts, 9, 26))
|
|
>vnode : Symbol(vnode, Decl(tile1.ts, 10, 18))
|
|
>Vnode : Symbol(Vnode, Decl(tile1.ts, 3, 1))
|
|
>Attrs : Symbol(Attrs, Decl(tile1.ts, 9, 20))
|
|
>State : Symbol(State, Decl(tile1.ts, 9, 26))
|
|
}
|
|
|
|
interface ClassComponent<A> extends Lifecycle<A, ClassComponent<A>> {
|
|
>ClassComponent : Symbol(ClassComponent, Decl(tile1.ts, 11, 1))
|
|
>A : Symbol(A, Decl(tile1.ts, 13, 25))
|
|
>Lifecycle : Symbol(Lifecycle, Decl(tile1.ts, 0, 0))
|
|
>A : Symbol(A, Decl(tile1.ts, 13, 25))
|
|
>ClassComponent : Symbol(ClassComponent, Decl(tile1.ts, 11, 1))
|
|
>A : Symbol(A, Decl(tile1.ts, 13, 25))
|
|
|
|
oninit?(vnode: Vnode<A, this>): number;
|
|
>oninit : Symbol(ClassComponent.oninit, Decl(tile1.ts, 13, 69))
|
|
>vnode : Symbol(vnode, Decl(tile1.ts, 14, 9))
|
|
>Vnode : Symbol(Vnode, Decl(tile1.ts, 3, 1))
|
|
>A : Symbol(A, Decl(tile1.ts, 13, 25))
|
|
|
|
view(vnode: Vnode<A, this>): number;
|
|
>view : Symbol(ClassComponent.view, Decl(tile1.ts, 14, 40))
|
|
>vnode : Symbol(vnode, Decl(tile1.ts, 15, 6))
|
|
>Vnode : Symbol(Vnode, Decl(tile1.ts, 3, 1))
|
|
>A : Symbol(A, Decl(tile1.ts, 13, 25))
|
|
}
|
|
|
|
interface MyAttrs { id: number }
|
|
>MyAttrs : Symbol(MyAttrs, Decl(tile1.ts, 16, 1))
|
|
>id : Symbol(MyAttrs.id, Decl(tile1.ts, 18, 19))
|
|
|
|
class C implements ClassComponent<MyAttrs> {
|
|
>C : Symbol(C, Decl(tile1.ts, 18, 32))
|
|
>ClassComponent : Symbol(ClassComponent, Decl(tile1.ts, 11, 1))
|
|
>MyAttrs : Symbol(MyAttrs, Decl(tile1.ts, 16, 1))
|
|
|
|
view(v: Vnode<MyAttrs, C>) { return 0; }
|
|
>view : Symbol(C.view, Decl(tile1.ts, 19, 44))
|
|
>v : Symbol(v, Decl(tile1.ts, 20, 6))
|
|
>Vnode : Symbol(Vnode, Decl(tile1.ts, 3, 1))
|
|
>MyAttrs : Symbol(MyAttrs, Decl(tile1.ts, 16, 1))
|
|
>C : Symbol(C, Decl(tile1.ts, 18, 32))
|
|
|
|
// Must declare a compatible-ish index signature or else
|
|
// we won't correctly implement ClassComponent.
|
|
[_: number]: unknown;
|
|
>_ : Symbol(_, Decl(tile1.ts, 24, 2))
|
|
}
|
|
|
|
const test8: ClassComponent<any> = new C();
|
|
>test8 : Symbol(test8, Decl(tile1.ts, 27, 5))
|
|
>ClassComponent : Symbol(ClassComponent, Decl(tile1.ts, 11, 1))
|
|
>C : Symbol(C, Decl(tile1.ts, 18, 32))
|
|
|
|
=== tests/cases/compiler/file1.js ===
|
|
/** @type {ClassComponent<any>} */
|
|
const test9 = new C();
|
|
>test9 : Symbol(test9, Decl(file1.js, 1, 5))
|
|
>C : Symbol(C, Decl(tile1.ts, 18, 32))
|
|
|