Update baselines from merging with master

This commit is contained in:
Kanchalai Tanglertsampan 2017-03-21 07:36:24 -07:00
parent 3600ccc833
commit a057475bb6
39 changed files with 1613 additions and 1652 deletions

View file

@ -1,5 +1,4 @@
//// [indexedAccessTypeConstraints.ts]
// Repro from #14557
interface IData<T> {
@ -37,8 +36,8 @@ function foo<C, T extends { content: C }>(x: C, y: T['content']) {
//// [indexedAccessTypeConstraints.js]
// Repro from #14557
"use strict";
// Repro from #14557
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||

View file

@ -1,109 +1,108 @@
=== tests/cases/compiler/indexedAccessTypeConstraints.ts ===
// Repro from #14557
interface IData<T> {
>IData : Symbol(IData, Decl(indexedAccessTypeConstraints.ts, 0, 0))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 3, 16))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 2, 16))
content: T;
>content : Symbol(IData.content, Decl(indexedAccessTypeConstraints.ts, 3, 20))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 3, 16))
>content : Symbol(IData.content, Decl(indexedAccessTypeConstraints.ts, 2, 20))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 2, 16))
}
type Data<T> = {
>Data : Symbol(Data, Decl(indexedAccessTypeConstraints.ts, 5, 1))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 7, 10))
>Data : Symbol(Data, Decl(indexedAccessTypeConstraints.ts, 4, 1))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 6, 10))
get: <K extends keyof T>(prop: K) => T[K];
>get : Symbol(get, Decl(indexedAccessTypeConstraints.ts, 7, 16))
>K : Symbol(K, Decl(indexedAccessTypeConstraints.ts, 8, 10))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 7, 10))
>prop : Symbol(prop, Decl(indexedAccessTypeConstraints.ts, 8, 29))
>K : Symbol(K, Decl(indexedAccessTypeConstraints.ts, 8, 10))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 7, 10))
>K : Symbol(K, Decl(indexedAccessTypeConstraints.ts, 8, 10))
>get : Symbol(get, Decl(indexedAccessTypeConstraints.ts, 6, 16))
>K : Symbol(K, Decl(indexedAccessTypeConstraints.ts, 7, 10))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 6, 10))
>prop : Symbol(prop, Decl(indexedAccessTypeConstraints.ts, 7, 29))
>K : Symbol(K, Decl(indexedAccessTypeConstraints.ts, 7, 10))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 6, 10))
>K : Symbol(K, Decl(indexedAccessTypeConstraints.ts, 7, 10))
};
class Parent<M> {
>Parent : Symbol(Parent, Decl(indexedAccessTypeConstraints.ts, 9, 2))
>M : Symbol(M, Decl(indexedAccessTypeConstraints.ts, 11, 13))
>Parent : Symbol(Parent, Decl(indexedAccessTypeConstraints.ts, 8, 2))
>M : Symbol(M, Decl(indexedAccessTypeConstraints.ts, 10, 13))
private data: Data<M>;
>data : Symbol(Parent.data, Decl(indexedAccessTypeConstraints.ts, 11, 17))
>Data : Symbol(Data, Decl(indexedAccessTypeConstraints.ts, 5, 1))
>M : Symbol(M, Decl(indexedAccessTypeConstraints.ts, 11, 13))
>data : Symbol(Parent.data, Decl(indexedAccessTypeConstraints.ts, 10, 17))
>Data : Symbol(Data, Decl(indexedAccessTypeConstraints.ts, 4, 1))
>M : Symbol(M, Decl(indexedAccessTypeConstraints.ts, 10, 13))
getData(): Data<M> {
>getData : Symbol(Parent.getData, Decl(indexedAccessTypeConstraints.ts, 12, 26))
>Data : Symbol(Data, Decl(indexedAccessTypeConstraints.ts, 5, 1))
>M : Symbol(M, Decl(indexedAccessTypeConstraints.ts, 11, 13))
>getData : Symbol(Parent.getData, Decl(indexedAccessTypeConstraints.ts, 11, 26))
>Data : Symbol(Data, Decl(indexedAccessTypeConstraints.ts, 4, 1))
>M : Symbol(M, Decl(indexedAccessTypeConstraints.ts, 10, 13))
return this.data;
>this.data : Symbol(Parent.data, Decl(indexedAccessTypeConstraints.ts, 11, 17))
>this : Symbol(Parent, Decl(indexedAccessTypeConstraints.ts, 9, 2))
>data : Symbol(Parent.data, Decl(indexedAccessTypeConstraints.ts, 11, 17))
>this.data : Symbol(Parent.data, Decl(indexedAccessTypeConstraints.ts, 10, 17))
>this : Symbol(Parent, Decl(indexedAccessTypeConstraints.ts, 8, 2))
>data : Symbol(Parent.data, Decl(indexedAccessTypeConstraints.ts, 10, 17))
}
}
export class Foo<C> extends Parent<IData<C>> {
>Foo : Symbol(Foo, Decl(indexedAccessTypeConstraints.ts, 16, 1))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 18, 17))
>Parent : Symbol(Parent, Decl(indexedAccessTypeConstraints.ts, 9, 2))
>Foo : Symbol(Foo, Decl(indexedAccessTypeConstraints.ts, 15, 1))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 17, 17))
>Parent : Symbol(Parent, Decl(indexedAccessTypeConstraints.ts, 8, 2))
>IData : Symbol(IData, Decl(indexedAccessTypeConstraints.ts, 0, 0))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 18, 17))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 17, 17))
getContent(): C {
>getContent : Symbol(Foo.getContent, Decl(indexedAccessTypeConstraints.ts, 18, 46))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 18, 17))
>getContent : Symbol(Foo.getContent, Decl(indexedAccessTypeConstraints.ts, 17, 46))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 17, 17))
return this.getData().get('content');
>this.getData().get : Symbol(get, Decl(indexedAccessTypeConstraints.ts, 7, 16))
>this.getData : Symbol(Parent.getData, Decl(indexedAccessTypeConstraints.ts, 12, 26))
>this : Symbol(Foo, Decl(indexedAccessTypeConstraints.ts, 16, 1))
>getData : Symbol(Parent.getData, Decl(indexedAccessTypeConstraints.ts, 12, 26))
>get : Symbol(get, Decl(indexedAccessTypeConstraints.ts, 7, 16))
>this.getData().get : Symbol(get, Decl(indexedAccessTypeConstraints.ts, 6, 16))
>this.getData : Symbol(Parent.getData, Decl(indexedAccessTypeConstraints.ts, 11, 26))
>this : Symbol(Foo, Decl(indexedAccessTypeConstraints.ts, 15, 1))
>getData : Symbol(Parent.getData, Decl(indexedAccessTypeConstraints.ts, 11, 26))
>get : Symbol(get, Decl(indexedAccessTypeConstraints.ts, 6, 16))
}
}
export class Bar<C, T extends IData<C>> extends Parent<T> {
>Bar : Symbol(Bar, Decl(indexedAccessTypeConstraints.ts, 22, 1))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 24, 17))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 24, 19))
>Bar : Symbol(Bar, Decl(indexedAccessTypeConstraints.ts, 21, 1))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 23, 17))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 23, 19))
>IData : Symbol(IData, Decl(indexedAccessTypeConstraints.ts, 0, 0))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 24, 17))
>Parent : Symbol(Parent, Decl(indexedAccessTypeConstraints.ts, 9, 2))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 24, 19))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 23, 17))
>Parent : Symbol(Parent, Decl(indexedAccessTypeConstraints.ts, 8, 2))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 23, 19))
getContent(): C {
>getContent : Symbol(Bar.getContent, Decl(indexedAccessTypeConstraints.ts, 24, 59))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 24, 17))
>getContent : Symbol(Bar.getContent, Decl(indexedAccessTypeConstraints.ts, 23, 59))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 23, 17))
return this.getData().get('content');
>this.getData().get : Symbol(get, Decl(indexedAccessTypeConstraints.ts, 7, 16))
>this.getData : Symbol(Parent.getData, Decl(indexedAccessTypeConstraints.ts, 12, 26))
>this : Symbol(Bar, Decl(indexedAccessTypeConstraints.ts, 22, 1))
>getData : Symbol(Parent.getData, Decl(indexedAccessTypeConstraints.ts, 12, 26))
>get : Symbol(get, Decl(indexedAccessTypeConstraints.ts, 7, 16))
>this.getData().get : Symbol(get, Decl(indexedAccessTypeConstraints.ts, 6, 16))
>this.getData : Symbol(Parent.getData, Decl(indexedAccessTypeConstraints.ts, 11, 26))
>this : Symbol(Bar, Decl(indexedAccessTypeConstraints.ts, 21, 1))
>getData : Symbol(Parent.getData, Decl(indexedAccessTypeConstraints.ts, 11, 26))
>get : Symbol(get, Decl(indexedAccessTypeConstraints.ts, 6, 16))
}
}
// Repro from #14557
function foo<C, T extends { content: C }>(x: C, y: T['content']) {
>foo : Symbol(foo, Decl(indexedAccessTypeConstraints.ts, 28, 1))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 32, 13))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 32, 15))
>content : Symbol(content, Decl(indexedAccessTypeConstraints.ts, 32, 27))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 32, 13))
>x : Symbol(x, Decl(indexedAccessTypeConstraints.ts, 32, 42))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 32, 13))
>y : Symbol(y, Decl(indexedAccessTypeConstraints.ts, 32, 47))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 32, 15))
>foo : Symbol(foo, Decl(indexedAccessTypeConstraints.ts, 27, 1))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 31, 13))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 31, 15))
>content : Symbol(content, Decl(indexedAccessTypeConstraints.ts, 31, 27))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 31, 13))
>x : Symbol(x, Decl(indexedAccessTypeConstraints.ts, 31, 42))
>C : Symbol(C, Decl(indexedAccessTypeConstraints.ts, 31, 13))
>y : Symbol(y, Decl(indexedAccessTypeConstraints.ts, 31, 47))
>T : Symbol(T, Decl(indexedAccessTypeConstraints.ts, 31, 15))
x = y;
>x : Symbol(x, Decl(indexedAccessTypeConstraints.ts, 32, 42))
>y : Symbol(y, Decl(indexedAccessTypeConstraints.ts, 32, 47))
>x : Symbol(x, Decl(indexedAccessTypeConstraints.ts, 31, 42))
>y : Symbol(y, Decl(indexedAccessTypeConstraints.ts, 31, 47))
}

View file

@ -1,5 +1,4 @@
=== tests/cases/compiler/indexedAccessTypeConstraints.ts ===
// Repro from #14557
interface IData<T> {

View file

@ -1,102 +1,111 @@
=== tests/cases/conformance/salsa/a.ts ===
var a: any;
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var t: [any, any];
>t : Symbol(t, Decl(a.ts, 2, 3), Decl(a.js, 2, 3), Decl(a.js, 11, 3), Decl(a.js, 12, 3), Decl(a.js, 13, 3))
>t : Symbol(t, Decl(a.ts, 1, 3), Decl(a.js, 2, 3), Decl(a.js, 11, 3), Decl(a.js, 12, 3), Decl(a.js, 13, 3))
declare function f1<T>(t: T): T
>f1 : Symbol(f1, Decl(a.ts, 2, 18))
>f1 : Symbol(f1, Decl(a.ts, 1, 18))
>T : Symbol(T, Decl(a.ts, 2, 20))
>t : Symbol(t, Decl(a.ts, 2, 23))
>T : Symbol(T, Decl(a.ts, 2, 20))
>T : Symbol(T, Decl(a.ts, 2, 20))
declare function f2<T>(t: T[]): T;
>f2 : Symbol(f2, Decl(a.ts, 2, 31))
>T : Symbol(T, Decl(a.ts, 3, 20))
>t : Symbol(t, Decl(a.ts, 3, 23))
>T : Symbol(T, Decl(a.ts, 3, 20))
>T : Symbol(T, Decl(a.ts, 3, 20))
declare function f2<T>(t: T[]): T;
>f2 : Symbol(f2, Decl(a.ts, 3, 31))
>T : Symbol(T, Decl(a.ts, 4, 20))
>t : Symbol(t, Decl(a.ts, 4, 23))
>T : Symbol(T, Decl(a.ts, 4, 20))
>T : Symbol(T, Decl(a.ts, 4, 20))
declare function f3<T, U>(t: [T, U]): [T, U];
>f3 : Symbol(f3, Decl(a.ts, 4, 34))
>T : Symbol(T, Decl(a.ts, 5, 20))
>U : Symbol(U, Decl(a.ts, 5, 22))
>t : Symbol(t, Decl(a.ts, 5, 26))
>T : Symbol(T, Decl(a.ts, 5, 20))
>U : Symbol(U, Decl(a.ts, 5, 22))
>T : Symbol(T, Decl(a.ts, 5, 20))
>U : Symbol(U, Decl(a.ts, 5, 22))
>f3 : Symbol(f3, Decl(a.ts, 3, 34))
>T : Symbol(T, Decl(a.ts, 4, 20))
>U : Symbol(U, Decl(a.ts, 4, 22))
>t : Symbol(t, Decl(a.ts, 4, 26))
>T : Symbol(T, Decl(a.ts, 4, 20))
>U : Symbol(U, Decl(a.ts, 4, 22))
>T : Symbol(T, Decl(a.ts, 4, 20))
>U : Symbol(U, Decl(a.ts, 4, 22))
declare function f4<T>(x: { bar: T; baz: T }): T;
>f4 : Symbol(f4, Decl(a.ts, 5, 45))
>T : Symbol(T, Decl(a.ts, 6, 20))
>x : Symbol(x, Decl(a.ts, 6, 23))
>bar : Symbol(bar, Decl(a.ts, 6, 27))
>T : Symbol(T, Decl(a.ts, 6, 20))
>baz : Symbol(baz, Decl(a.ts, 6, 35))
>T : Symbol(T, Decl(a.ts, 6, 20))
>T : Symbol(T, Decl(a.ts, 6, 20))
>f4 : Symbol(f4, Decl(a.ts, 4, 45))
>T : Symbol(T, Decl(a.ts, 5, 20))
>x : Symbol(x, Decl(a.ts, 5, 23))
>bar : Symbol(bar, Decl(a.ts, 5, 27))
>T : Symbol(T, Decl(a.ts, 5, 20))
>baz : Symbol(baz, Decl(a.ts, 5, 35))
>T : Symbol(T, Decl(a.ts, 5, 20))
>T : Symbol(T, Decl(a.ts, 5, 20))
declare function f5<T>(x: (a: T) => void): T;
>f5 : Symbol(f5, Decl(a.ts, 6, 49))
>T : Symbol(T, Decl(a.ts, 7, 20))
>x : Symbol(x, Decl(a.ts, 7, 23))
>a : Symbol(a, Decl(a.ts, 7, 27))
>T : Symbol(T, Decl(a.ts, 7, 20))
>T : Symbol(T, Decl(a.ts, 7, 20))
>f5 : Symbol(f5, Decl(a.ts, 5, 49))
>T : Symbol(T, Decl(a.ts, 6, 20))
>x : Symbol(x, Decl(a.ts, 6, 23))
>a : Symbol(a, Decl(a.ts, 6, 27))
>T : Symbol(T, Decl(a.ts, 6, 20))
>T : Symbol(T, Decl(a.ts, 6, 20))
declare function f6<T>(x: new (a: T) => {}): T;
>f6 : Symbol(f6, Decl(a.ts, 7, 45))
>T : Symbol(T, Decl(a.ts, 8, 20))
>x : Symbol(x, Decl(a.ts, 8, 23))
>a : Symbol(a, Decl(a.ts, 8, 31))
>T : Symbol(T, Decl(a.ts, 8, 20))
>T : Symbol(T, Decl(a.ts, 8, 20))
>f6 : Symbol(f6, Decl(a.ts, 6, 45))
>T : Symbol(T, Decl(a.ts, 7, 20))
>x : Symbol(x, Decl(a.ts, 7, 23))
>a : Symbol(a, Decl(a.ts, 7, 31))
>T : Symbol(T, Decl(a.ts, 7, 20))
>T : Symbol(T, Decl(a.ts, 7, 20))
declare function f7<T>(x: (a: any) => a is T): T;
>f7 : Symbol(f7, Decl(a.ts, 8, 47))
>f7 : Symbol(f7, Decl(a.ts, 7, 47))
>T : Symbol(T, Decl(a.ts, 8, 20))
>x : Symbol(x, Decl(a.ts, 8, 23))
>a : Symbol(a, Decl(a.ts, 8, 27))
>a : Symbol(a, Decl(a.ts, 8, 27))
>T : Symbol(T, Decl(a.ts, 8, 20))
>T : Symbol(T, Decl(a.ts, 8, 20))
declare function f8<T>(x: () => T): T;
>f8 : Symbol(f8, Decl(a.ts, 8, 49))
>T : Symbol(T, Decl(a.ts, 9, 20))
>x : Symbol(x, Decl(a.ts, 9, 23))
>a : Symbol(a, Decl(a.ts, 9, 27))
>a : Symbol(a, Decl(a.ts, 9, 27))
>T : Symbol(T, Decl(a.ts, 9, 20))
>T : Symbol(T, Decl(a.ts, 9, 20))
declare function f8<T>(x: () => T): T;
>f8 : Symbol(f8, Decl(a.ts, 9, 49))
declare function f9<T>(x: new () => T): T;
>f9 : Symbol(f9, Decl(a.ts, 9, 38))
>T : Symbol(T, Decl(a.ts, 10, 20))
>x : Symbol(x, Decl(a.ts, 10, 23))
>T : Symbol(T, Decl(a.ts, 10, 20))
>T : Symbol(T, Decl(a.ts, 10, 20))
declare function f9<T>(x: new () => T): T;
>f9 : Symbol(f9, Decl(a.ts, 10, 38))
>T : Symbol(T, Decl(a.ts, 11, 20))
>x : Symbol(x, Decl(a.ts, 11, 23))
>T : Symbol(T, Decl(a.ts, 11, 20))
>T : Symbol(T, Decl(a.ts, 11, 20))
declare function f10<T>(x: { [x: string]: T }): T;
>f10 : Symbol(f10, Decl(a.ts, 11, 42))
>f10 : Symbol(f10, Decl(a.ts, 10, 42))
>T : Symbol(T, Decl(a.ts, 11, 21))
>x : Symbol(x, Decl(a.ts, 11, 24))
>x : Symbol(x, Decl(a.ts, 11, 30))
>T : Symbol(T, Decl(a.ts, 11, 21))
>T : Symbol(T, Decl(a.ts, 11, 21))
declare function f11<T>(x: { [x: number]: T }): T;
>f11 : Symbol(f11, Decl(a.ts, 11, 50))
>T : Symbol(T, Decl(a.ts, 12, 21))
>x : Symbol(x, Decl(a.ts, 12, 24))
>x : Symbol(x, Decl(a.ts, 12, 30))
>T : Symbol(T, Decl(a.ts, 12, 21))
>T : Symbol(T, Decl(a.ts, 12, 21))
declare function f11<T>(x: { [x: number]: T }): T;
>f11 : Symbol(f11, Decl(a.ts, 12, 50))
>T : Symbol(T, Decl(a.ts, 13, 21))
>x : Symbol(x, Decl(a.ts, 13, 24))
>x : Symbol(x, Decl(a.ts, 13, 30))
>T : Symbol(T, Decl(a.ts, 13, 21))
>T : Symbol(T, Decl(a.ts, 13, 21))
declare function f12<T, U>(x: T | U): [T, U];
>f12 : Symbol(f12, Decl(a.ts, 13, 50))
>f12 : Symbol(f12, Decl(a.ts, 12, 50))
>T : Symbol(T, Decl(a.ts, 13, 21))
>U : Symbol(U, Decl(a.ts, 13, 23))
>x : Symbol(x, Decl(a.ts, 13, 27))
>T : Symbol(T, Decl(a.ts, 13, 21))
>U : Symbol(U, Decl(a.ts, 13, 23))
>T : Symbol(T, Decl(a.ts, 13, 21))
>U : Symbol(U, Decl(a.ts, 13, 23))
declare function f13<T, U>(x: T & U): [T, U];
>f13 : Symbol(f13, Decl(a.ts, 13, 45))
>T : Symbol(T, Decl(a.ts, 14, 21))
>U : Symbol(U, Decl(a.ts, 14, 23))
>x : Symbol(x, Decl(a.ts, 14, 27))
@ -105,178 +114,168 @@ declare function f12<T, U>(x: T | U): [T, U];
>T : Symbol(T, Decl(a.ts, 14, 21))
>U : Symbol(U, Decl(a.ts, 14, 23))
declare function f13<T, U>(x: T & U): [T, U];
>f13 : Symbol(f13, Decl(a.ts, 14, 45))
declare function f14<T, U>(x: { a: T | U, b: U & T }): [T, U];
>f14 : Symbol(f14, Decl(a.ts, 14, 45))
>T : Symbol(T, Decl(a.ts, 15, 21))
>U : Symbol(U, Decl(a.ts, 15, 23))
>x : Symbol(x, Decl(a.ts, 15, 27))
>a : Symbol(a, Decl(a.ts, 15, 31))
>T : Symbol(T, Decl(a.ts, 15, 21))
>U : Symbol(U, Decl(a.ts, 15, 23))
>b : Symbol(b, Decl(a.ts, 15, 41))
>U : Symbol(U, Decl(a.ts, 15, 23))
>T : Symbol(T, Decl(a.ts, 15, 21))
>T : Symbol(T, Decl(a.ts, 15, 21))
>U : Symbol(U, Decl(a.ts, 15, 23))
declare function f14<T, U>(x: { a: T | U, b: U & T }): [T, U];
>f14 : Symbol(f14, Decl(a.ts, 15, 45))
>T : Symbol(T, Decl(a.ts, 16, 21))
>U : Symbol(U, Decl(a.ts, 16, 23))
>x : Symbol(x, Decl(a.ts, 16, 27))
>a : Symbol(a, Decl(a.ts, 16, 31))
>T : Symbol(T, Decl(a.ts, 16, 21))
>U : Symbol(U, Decl(a.ts, 16, 23))
>b : Symbol(b, Decl(a.ts, 16, 41))
>U : Symbol(U, Decl(a.ts, 16, 23))
>T : Symbol(T, Decl(a.ts, 16, 21))
>T : Symbol(T, Decl(a.ts, 16, 21))
>U : Symbol(U, Decl(a.ts, 16, 23))
interface I<T> { }
>I : Symbol(I, Decl(a.ts, 16, 62))
>T : Symbol(T, Decl(a.ts, 17, 12))
>I : Symbol(I, Decl(a.ts, 15, 62))
>T : Symbol(T, Decl(a.ts, 16, 12))
declare function f15<T>(x: I<T>): T;
>f15 : Symbol(f15, Decl(a.ts, 17, 18))
>T : Symbol(T, Decl(a.ts, 18, 21))
>x : Symbol(x, Decl(a.ts, 18, 24))
>I : Symbol(I, Decl(a.ts, 16, 62))
>T : Symbol(T, Decl(a.ts, 18, 21))
>T : Symbol(T, Decl(a.ts, 18, 21))
>f15 : Symbol(f15, Decl(a.ts, 16, 18))
>T : Symbol(T, Decl(a.ts, 17, 21))
>x : Symbol(x, Decl(a.ts, 17, 24))
>I : Symbol(I, Decl(a.ts, 15, 62))
>T : Symbol(T, Decl(a.ts, 17, 21))
>T : Symbol(T, Decl(a.ts, 17, 21))
declare function f16<T>(x: Partial<T>): T;
>f16 : Symbol(f16, Decl(a.ts, 18, 36))
>T : Symbol(T, Decl(a.ts, 19, 21))
>x : Symbol(x, Decl(a.ts, 19, 24))
>f16 : Symbol(f16, Decl(a.ts, 17, 36))
>T : Symbol(T, Decl(a.ts, 18, 21))
>x : Symbol(x, Decl(a.ts, 18, 24))
>Partial : Symbol(Partial, Decl(lib.d.ts, --, --))
>T : Symbol(T, Decl(a.ts, 19, 21))
>T : Symbol(T, Decl(a.ts, 19, 21))
>T : Symbol(T, Decl(a.ts, 18, 21))
>T : Symbol(T, Decl(a.ts, 18, 21))
declare function f17<T, K>(x: {[P in keyof T]: K}): T;
>f17 : Symbol(f17, Decl(a.ts, 19, 42))
>T : Symbol(T, Decl(a.ts, 20, 21))
>K : Symbol(K, Decl(a.ts, 20, 23))
>x : Symbol(x, Decl(a.ts, 20, 27))
>P : Symbol(P, Decl(a.ts, 20, 32))
>T : Symbol(T, Decl(a.ts, 20, 21))
>K : Symbol(K, Decl(a.ts, 20, 23))
>T : Symbol(T, Decl(a.ts, 20, 21))
>f17 : Symbol(f17, Decl(a.ts, 18, 42))
>T : Symbol(T, Decl(a.ts, 19, 21))
>K : Symbol(K, Decl(a.ts, 19, 23))
>x : Symbol(x, Decl(a.ts, 19, 27))
>P : Symbol(P, Decl(a.ts, 19, 32))
>T : Symbol(T, Decl(a.ts, 19, 21))
>K : Symbol(K, Decl(a.ts, 19, 23))
>T : Symbol(T, Decl(a.ts, 19, 21))
declare function f18<T, K extends keyof T>(x: {[P in K]: T[P]}): T;
>f18 : Symbol(f18, Decl(a.ts, 20, 54))
>T : Symbol(T, Decl(a.ts, 21, 21))
>K : Symbol(K, Decl(a.ts, 21, 23))
>T : Symbol(T, Decl(a.ts, 21, 21))
>x : Symbol(x, Decl(a.ts, 21, 43))
>P : Symbol(P, Decl(a.ts, 21, 48))
>K : Symbol(K, Decl(a.ts, 21, 23))
>T : Symbol(T, Decl(a.ts, 21, 21))
>P : Symbol(P, Decl(a.ts, 21, 48))
>T : Symbol(T, Decl(a.ts, 21, 21))
>f18 : Symbol(f18, Decl(a.ts, 19, 54))
>T : Symbol(T, Decl(a.ts, 20, 21))
>K : Symbol(K, Decl(a.ts, 20, 23))
>T : Symbol(T, Decl(a.ts, 20, 21))
>x : Symbol(x, Decl(a.ts, 20, 43))
>P : Symbol(P, Decl(a.ts, 20, 48))
>K : Symbol(K, Decl(a.ts, 20, 23))
>T : Symbol(T, Decl(a.ts, 20, 21))
>P : Symbol(P, Decl(a.ts, 20, 48))
>T : Symbol(T, Decl(a.ts, 20, 21))
declare function f19<T, K extends keyof T>(k: K, x: T[K]): T;
>f19 : Symbol(f19, Decl(a.ts, 21, 67))
>T : Symbol(T, Decl(a.ts, 22, 21))
>K : Symbol(K, Decl(a.ts, 22, 23))
>T : Symbol(T, Decl(a.ts, 22, 21))
>k : Symbol(k, Decl(a.ts, 22, 43))
>K : Symbol(K, Decl(a.ts, 22, 23))
>x : Symbol(x, Decl(a.ts, 22, 48))
>T : Symbol(T, Decl(a.ts, 22, 21))
>K : Symbol(K, Decl(a.ts, 22, 23))
>T : Symbol(T, Decl(a.ts, 22, 21))
>f19 : Symbol(f19, Decl(a.ts, 20, 67))
>T : Symbol(T, Decl(a.ts, 21, 21))
>K : Symbol(K, Decl(a.ts, 21, 23))
>T : Symbol(T, Decl(a.ts, 21, 21))
>k : Symbol(k, Decl(a.ts, 21, 43))
>K : Symbol(K, Decl(a.ts, 21, 23))
>x : Symbol(x, Decl(a.ts, 21, 48))
>T : Symbol(T, Decl(a.ts, 21, 21))
>K : Symbol(K, Decl(a.ts, 21, 23))
>T : Symbol(T, Decl(a.ts, 21, 21))
=== tests/cases/conformance/salsa/a.js ===
var a = f1(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f1 : Symbol(f1, Decl(a.ts, 2, 18))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f1 : Symbol(f1, Decl(a.ts, 1, 18))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f2(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f2 : Symbol(f2, Decl(a.ts, 3, 31))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f2 : Symbol(f2, Decl(a.ts, 2, 31))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var t = f3(a);
>t : Symbol(t, Decl(a.ts, 2, 3), Decl(a.js, 2, 3), Decl(a.js, 11, 3), Decl(a.js, 12, 3), Decl(a.js, 13, 3))
>f3 : Symbol(f3, Decl(a.ts, 4, 34))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>t : Symbol(t, Decl(a.ts, 1, 3), Decl(a.js, 2, 3), Decl(a.js, 11, 3), Decl(a.js, 12, 3), Decl(a.js, 13, 3))
>f3 : Symbol(f3, Decl(a.ts, 3, 34))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f4(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f4 : Symbol(f4, Decl(a.ts, 5, 45))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f4 : Symbol(f4, Decl(a.ts, 4, 45))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f5(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f5 : Symbol(f5, Decl(a.ts, 6, 49))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f5 : Symbol(f5, Decl(a.ts, 5, 49))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f6(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f6 : Symbol(f6, Decl(a.ts, 7, 45))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f6 : Symbol(f6, Decl(a.ts, 6, 45))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f7(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f7 : Symbol(f7, Decl(a.ts, 8, 47))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f7 : Symbol(f7, Decl(a.ts, 7, 47))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f8(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f8 : Symbol(f8, Decl(a.ts, 9, 49))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f8 : Symbol(f8, Decl(a.ts, 8, 49))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f9(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f9 : Symbol(f9, Decl(a.ts, 10, 38))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f9 : Symbol(f9, Decl(a.ts, 9, 38))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f10(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f10 : Symbol(f10, Decl(a.ts, 11, 42))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f10 : Symbol(f10, Decl(a.ts, 10, 42))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f11(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f11 : Symbol(f11, Decl(a.ts, 12, 50))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f11 : Symbol(f11, Decl(a.ts, 11, 50))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var t = f12(a);
>t : Symbol(t, Decl(a.ts, 2, 3), Decl(a.js, 2, 3), Decl(a.js, 11, 3), Decl(a.js, 12, 3), Decl(a.js, 13, 3))
>f12 : Symbol(f12, Decl(a.ts, 13, 50))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>t : Symbol(t, Decl(a.ts, 1, 3), Decl(a.js, 2, 3), Decl(a.js, 11, 3), Decl(a.js, 12, 3), Decl(a.js, 13, 3))
>f12 : Symbol(f12, Decl(a.ts, 12, 50))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var t = f13(a);
>t : Symbol(t, Decl(a.ts, 2, 3), Decl(a.js, 2, 3), Decl(a.js, 11, 3), Decl(a.js, 12, 3), Decl(a.js, 13, 3))
>f13 : Symbol(f13, Decl(a.ts, 14, 45))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>t : Symbol(t, Decl(a.ts, 1, 3), Decl(a.js, 2, 3), Decl(a.js, 11, 3), Decl(a.js, 12, 3), Decl(a.js, 13, 3))
>f13 : Symbol(f13, Decl(a.ts, 13, 45))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var t = f14(a);
>t : Symbol(t, Decl(a.ts, 2, 3), Decl(a.js, 2, 3), Decl(a.js, 11, 3), Decl(a.js, 12, 3), Decl(a.js, 13, 3))
>f14 : Symbol(f14, Decl(a.ts, 15, 45))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>t : Symbol(t, Decl(a.ts, 1, 3), Decl(a.js, 2, 3), Decl(a.js, 11, 3), Decl(a.js, 12, 3), Decl(a.js, 13, 3))
>f14 : Symbol(f14, Decl(a.ts, 14, 45))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f15(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f15 : Symbol(f15, Decl(a.ts, 17, 18))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f15 : Symbol(f15, Decl(a.ts, 16, 18))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f16(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f16 : Symbol(f16, Decl(a.ts, 18, 36))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f16 : Symbol(f16, Decl(a.ts, 17, 36))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f17(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f17 : Symbol(f17, Decl(a.ts, 19, 42))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f17 : Symbol(f17, Decl(a.ts, 18, 42))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f18(a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f18 : Symbol(f18, Decl(a.ts, 20, 54))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f18 : Symbol(f18, Decl(a.ts, 19, 54))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
var a = f19(a, a);
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f19 : Symbol(f19, Decl(a.ts, 21, 67))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 1, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>f19 : Symbol(f19, Decl(a.ts, 20, 67))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))
>a : Symbol(a, Decl(a.ts, 0, 3), Decl(a.js, 0, 3), Decl(a.js, 1, 3), Decl(a.js, 3, 3), Decl(a.js, 4, 3), Decl(a.js, 5, 3), Decl(a.js, 6, 3), Decl(a.js, 7, 3), Decl(a.js, 8, 3), Decl(a.js, 9, 3), Decl(a.js, 10, 3), Decl(a.js, 14, 3), Decl(a.js, 15, 3), Decl(a.js, 16, 3), Decl(a.js, 17, 3), Decl(a.js, 18, 3))

View file

@ -1,5 +1,4 @@
=== tests/cases/conformance/salsa/a.ts ===
var a: any;
>a : any

View file

@ -1,7 +1,6 @@
//// [tests/cases/conformance/salsa/inferringClassMembersFromAssignments.ts] ////
//// [a.js]
class C {
constructor() {
if (Math.random()) {

View file

@ -1,5 +1,4 @@
=== tests/cases/conformance/salsa/a.js ===
class C {
>C : Symbol(C, Decl(a.js, 0, 0))
@ -10,23 +9,23 @@ class C {
>random : Symbol(Math.random, Decl(lib.d.ts, --, --))
this.inConstructor = 0;
>this.inConstructor : Symbol(C.inConstructor, Decl(a.js, 3, 28), Decl(a.js, 6, 14))
>this.inConstructor : Symbol(C.inConstructor, Decl(a.js, 2, 28), Decl(a.js, 5, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inConstructor : Symbol(C.inConstructor, Decl(a.js, 3, 28), Decl(a.js, 6, 14))
>inConstructor : Symbol(C.inConstructor, Decl(a.js, 2, 28), Decl(a.js, 5, 14))
}
else {
this.inConstructor = "string"
>this.inConstructor : Symbol(C.inConstructor, Decl(a.js, 3, 28), Decl(a.js, 6, 14))
>this.inConstructor : Symbol(C.inConstructor, Decl(a.js, 2, 28), Decl(a.js, 5, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inConstructor : Symbol(C.inConstructor, Decl(a.js, 3, 28), Decl(a.js, 6, 14))
>inConstructor : Symbol(C.inConstructor, Decl(a.js, 2, 28), Decl(a.js, 5, 14))
}
this.inMultiple = 0;
>this.inMultiple : Symbol(C.inMultiple, Decl(a.js, 8, 9), Decl(a.js, 17, 9), Decl(a.js, 35, 9))
>this.inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 16, 9), Decl(a.js, 34, 9))
>this : Symbol(C, Decl(a.js, 0, 0))
>inMultiple : Symbol(C.inMultiple, Decl(a.js, 8, 9), Decl(a.js, 17, 9), Decl(a.js, 35, 9))
>inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 16, 9), Decl(a.js, 34, 9))
}
method() {
>method : Symbol(C.method, Decl(a.js, 10, 5))
>method : Symbol(C.method, Decl(a.js, 9, 5))
if (Math.random()) {
>Math.random : Symbol(Math.random, Decl(lib.d.ts, --, --))
@ -34,23 +33,23 @@ class C {
>random : Symbol(Math.random, Decl(lib.d.ts, --, --))
this.inMethod = 0;
>this.inMethod : Symbol(C.inMethod, Decl(a.js, 12, 28), Decl(a.js, 15, 14))
>this.inMethod : Symbol(C.inMethod, Decl(a.js, 11, 28), Decl(a.js, 14, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inMethod : Symbol(C.inMethod, Decl(a.js, 12, 28), Decl(a.js, 15, 14))
>inMethod : Symbol(C.inMethod, Decl(a.js, 11, 28), Decl(a.js, 14, 14))
}
else {
this.inMethod = "string"
>this.inMethod : Symbol(C.inMethod, Decl(a.js, 12, 28), Decl(a.js, 15, 14))
>this.inMethod : Symbol(C.inMethod, Decl(a.js, 11, 28), Decl(a.js, 14, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inMethod : Symbol(C.inMethod, Decl(a.js, 12, 28), Decl(a.js, 15, 14))
>inMethod : Symbol(C.inMethod, Decl(a.js, 11, 28), Decl(a.js, 14, 14))
}
this.inMultiple = "string";
>this.inMultiple : Symbol(C.inMultiple, Decl(a.js, 8, 9), Decl(a.js, 17, 9), Decl(a.js, 35, 9))
>this.inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 16, 9), Decl(a.js, 34, 9))
>this : Symbol(C, Decl(a.js, 0, 0))
>inMultiple : Symbol(C.inMultiple, Decl(a.js, 8, 9), Decl(a.js, 17, 9), Decl(a.js, 35, 9))
>inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 16, 9), Decl(a.js, 34, 9))
var action = () => {
>action : Symbol(action, Decl(a.js, 20, 11))
>action : Symbol(action, Decl(a.js, 19, 11))
if (Math.random()) {
>Math.random : Symbol(Math.random, Decl(lib.d.ts, --, --))
@ -58,20 +57,20 @@ class C {
>random : Symbol(Math.random, Decl(lib.d.ts, --, --))
this.inNestedArrowFunction = 0;
>this.inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 21, 32), Decl(a.js, 24, 18))
>this.inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 20, 32), Decl(a.js, 23, 18))
>this : Symbol(C, Decl(a.js, 0, 0))
>inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 21, 32), Decl(a.js, 24, 18))
>inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 20, 32), Decl(a.js, 23, 18))
}
else {
this.inNestedArrowFunction = "string"
>this.inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 21, 32), Decl(a.js, 24, 18))
>this.inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 20, 32), Decl(a.js, 23, 18))
>this : Symbol(C, Decl(a.js, 0, 0))
>inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 21, 32), Decl(a.js, 24, 18))
>inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 20, 32), Decl(a.js, 23, 18))
}
};
}
get() {
>get : Symbol(C.get, Decl(a.js, 28, 5))
>get : Symbol(C.get, Decl(a.js, 27, 5))
if (Math.random()) {
>Math.random : Symbol(Math.random, Decl(lib.d.ts, --, --))
@ -79,23 +78,23 @@ class C {
>random : Symbol(Math.random, Decl(lib.d.ts, --, --))
this.inGetter = 0;
>this.inGetter : Symbol(C.inGetter, Decl(a.js, 30, 28), Decl(a.js, 33, 14))
>this.inGetter : Symbol(C.inGetter, Decl(a.js, 29, 28), Decl(a.js, 32, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inGetter : Symbol(C.inGetter, Decl(a.js, 30, 28), Decl(a.js, 33, 14))
>inGetter : Symbol(C.inGetter, Decl(a.js, 29, 28), Decl(a.js, 32, 14))
}
else {
this.inGetter = "string"
>this.inGetter : Symbol(C.inGetter, Decl(a.js, 30, 28), Decl(a.js, 33, 14))
>this.inGetter : Symbol(C.inGetter, Decl(a.js, 29, 28), Decl(a.js, 32, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inGetter : Symbol(C.inGetter, Decl(a.js, 30, 28), Decl(a.js, 33, 14))
>inGetter : Symbol(C.inGetter, Decl(a.js, 29, 28), Decl(a.js, 32, 14))
}
this.inMultiple = false;
>this.inMultiple : Symbol(C.inMultiple, Decl(a.js, 8, 9), Decl(a.js, 17, 9), Decl(a.js, 35, 9))
>this.inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 16, 9), Decl(a.js, 34, 9))
>this : Symbol(C, Decl(a.js, 0, 0))
>inMultiple : Symbol(C.inMultiple, Decl(a.js, 8, 9), Decl(a.js, 17, 9), Decl(a.js, 35, 9))
>inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 16, 9), Decl(a.js, 34, 9))
}
set() {
>set : Symbol(C.set, Decl(a.js, 37, 5))
>set : Symbol(C.set, Decl(a.js, 36, 5))
if (Math.random()) {
>Math.random : Symbol(Math.random, Decl(lib.d.ts, --, --))
@ -103,19 +102,19 @@ class C {
>random : Symbol(Math.random, Decl(lib.d.ts, --, --))
this.inSetter = 0;
>this.inSetter : Symbol(C.inSetter, Decl(a.js, 39, 28), Decl(a.js, 42, 14))
>this.inSetter : Symbol(C.inSetter, Decl(a.js, 38, 28), Decl(a.js, 41, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inSetter : Symbol(C.inSetter, Decl(a.js, 39, 28), Decl(a.js, 42, 14))
>inSetter : Symbol(C.inSetter, Decl(a.js, 38, 28), Decl(a.js, 41, 14))
}
else {
this.inSetter = "string"
>this.inSetter : Symbol(C.inSetter, Decl(a.js, 39, 28), Decl(a.js, 42, 14))
>this.inSetter : Symbol(C.inSetter, Decl(a.js, 38, 28), Decl(a.js, 41, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inSetter : Symbol(C.inSetter, Decl(a.js, 39, 28), Decl(a.js, 42, 14))
>inSetter : Symbol(C.inSetter, Decl(a.js, 38, 28), Decl(a.js, 41, 14))
}
}
prop = () => {
>prop : Symbol(C.prop, Decl(a.js, 45, 5))
>prop : Symbol(C.prop, Decl(a.js, 44, 5))
if (Math.random()) {
>Math.random : Symbol(Math.random, Decl(lib.d.ts, --, --))
@ -123,19 +122,19 @@ class C {
>random : Symbol(Math.random, Decl(lib.d.ts, --, --))
this.inPropertyDeclaration = 0;
>this.inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 47, 28), Decl(a.js, 50, 14))
>this.inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 46, 28), Decl(a.js, 49, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 47, 28), Decl(a.js, 50, 14))
>inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 46, 28), Decl(a.js, 49, 14))
}
else {
this.inPropertyDeclaration = "string"
>this.inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 47, 28), Decl(a.js, 50, 14))
>this.inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 46, 28), Decl(a.js, 49, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 47, 28), Decl(a.js, 50, 14))
>inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 46, 28), Decl(a.js, 49, 14))
}
}
static method() {
>method : Symbol(C.method, Decl(a.js, 53, 5))
>method : Symbol(C.method, Decl(a.js, 52, 5))
if (Math.random()) {
>Math.random : Symbol(Math.random, Decl(lib.d.ts, --, --))
@ -143,19 +142,19 @@ class C {
>random : Symbol(Math.random, Decl(lib.d.ts, --, --))
this.inStaticMethod = 0;
>this.inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 55, 28), Decl(a.js, 58, 14))
>this.inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 54, 28), Decl(a.js, 57, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 55, 28), Decl(a.js, 58, 14))
>inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 54, 28), Decl(a.js, 57, 14))
}
else {
this.inStaticMethod = "string"
>this.inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 55, 28), Decl(a.js, 58, 14))
>this.inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 54, 28), Decl(a.js, 57, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 55, 28), Decl(a.js, 58, 14))
>inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 54, 28), Decl(a.js, 57, 14))
}
var action = () => {
>action : Symbol(action, Decl(a.js, 62, 11))
>action : Symbol(action, Decl(a.js, 61, 11))
if (Math.random()) {
>Math.random : Symbol(Math.random, Decl(lib.d.ts, --, --))
@ -163,20 +162,20 @@ class C {
>random : Symbol(Math.random, Decl(lib.d.ts, --, --))
this.inStaticNestedArrowFunction = 0;
>this.inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 63, 32), Decl(a.js, 66, 18))
>this.inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 62, 32), Decl(a.js, 65, 18))
>this : Symbol(C, Decl(a.js, 0, 0))
>inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 63, 32), Decl(a.js, 66, 18))
>inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 62, 32), Decl(a.js, 65, 18))
}
else {
this.inStaticNestedArrowFunction = "string"
>this.inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 63, 32), Decl(a.js, 66, 18))
>this.inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 62, 32), Decl(a.js, 65, 18))
>this : Symbol(C, Decl(a.js, 0, 0))
>inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 63, 32), Decl(a.js, 66, 18))
>inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 62, 32), Decl(a.js, 65, 18))
}
};
}
static get() {
>get : Symbol(C.get, Decl(a.js, 70, 5))
>get : Symbol(C.get, Decl(a.js, 69, 5))
if (Math.random()) {
>Math.random : Symbol(Math.random, Decl(lib.d.ts, --, --))
@ -184,19 +183,19 @@ class C {
>random : Symbol(Math.random, Decl(lib.d.ts, --, --))
this.inStaticGetter = 0;
>this.inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 72, 28), Decl(a.js, 75, 14))
>this.inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 71, 28), Decl(a.js, 74, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 72, 28), Decl(a.js, 75, 14))
>inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 71, 28), Decl(a.js, 74, 14))
}
else {
this.inStaticGetter = "string"
>this.inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 72, 28), Decl(a.js, 75, 14))
>this.inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 71, 28), Decl(a.js, 74, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 72, 28), Decl(a.js, 75, 14))
>inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 71, 28), Decl(a.js, 74, 14))
}
}
static set() {
>set : Symbol(C.set, Decl(a.js, 78, 5))
>set : Symbol(C.set, Decl(a.js, 77, 5))
if (Math.random()) {
>Math.random : Symbol(Math.random, Decl(lib.d.ts, --, --))
@ -204,19 +203,19 @@ class C {
>random : Symbol(Math.random, Decl(lib.d.ts, --, --))
this.inStaticSetter = 0;
>this.inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 80, 28), Decl(a.js, 83, 14))
>this.inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 79, 28), Decl(a.js, 82, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 80, 28), Decl(a.js, 83, 14))
>inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 79, 28), Decl(a.js, 82, 14))
}
else {
this.inStaticSetter = "string"
>this.inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 80, 28), Decl(a.js, 83, 14))
>this.inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 79, 28), Decl(a.js, 82, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 80, 28), Decl(a.js, 83, 14))
>inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 79, 28), Decl(a.js, 82, 14))
}
}
static prop = () => {
>prop : Symbol(C.prop, Decl(a.js, 86, 5))
>prop : Symbol(C.prop, Decl(a.js, 85, 5))
if (Math.random()) {
>Math.random : Symbol(Math.random, Decl(lib.d.ts, --, --))
@ -224,15 +223,15 @@ class C {
>random : Symbol(Math.random, Decl(lib.d.ts, --, --))
this.inStaticPropertyDeclaration = 0;
>this.inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 88, 28), Decl(a.js, 91, 14))
>this.inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 87, 28), Decl(a.js, 90, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 88, 28), Decl(a.js, 91, 14))
>inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 87, 28), Decl(a.js, 90, 14))
}
else {
this.inStaticPropertyDeclaration = "string"
>this.inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 88, 28), Decl(a.js, 91, 14))
>this.inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 87, 28), Decl(a.js, 90, 14))
>this : Symbol(C, Decl(a.js, 0, 0))
>inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 88, 28), Decl(a.js, 91, 14))
>inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 87, 28), Decl(a.js, 90, 14))
}
}
}
@ -247,80 +246,80 @@ var stringOrNumber: string | number;
var stringOrNumber = c.inConstructor;
>stringOrNumber : Symbol(stringOrNumber, Decl(b.ts, 2, 3), Decl(b.ts, 3, 3))
>c.inConstructor : Symbol(C.inConstructor, Decl(a.js, 3, 28), Decl(a.js, 6, 14))
>c.inConstructor : Symbol(C.inConstructor, Decl(a.js, 2, 28), Decl(a.js, 5, 14))
>c : Symbol(c, Decl(b.ts, 0, 3))
>inConstructor : Symbol(C.inConstructor, Decl(a.js, 3, 28), Decl(a.js, 6, 14))
>inConstructor : Symbol(C.inConstructor, Decl(a.js, 2, 28), Decl(a.js, 5, 14))
var stringOrNumberOrUndefined: string | number | undefined;
>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3), Decl(b.ts, 11, 3), Decl(b.ts, 18, 3), Decl(b.ts, 19, 3), Decl(b.ts, 20, 3), Decl(b.ts, 21, 3), Decl(b.ts, 22, 3))
var stringOrNumberOrUndefined = c.inMethod;
>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3), Decl(b.ts, 11, 3), Decl(b.ts, 18, 3), Decl(b.ts, 19, 3), Decl(b.ts, 20, 3), Decl(b.ts, 21, 3), Decl(b.ts, 22, 3))
>c.inMethod : Symbol(C.inMethod, Decl(a.js, 12, 28), Decl(a.js, 15, 14))
>c.inMethod : Symbol(C.inMethod, Decl(a.js, 11, 28), Decl(a.js, 14, 14))
>c : Symbol(c, Decl(b.ts, 0, 3))
>inMethod : Symbol(C.inMethod, Decl(a.js, 12, 28), Decl(a.js, 15, 14))
>inMethod : Symbol(C.inMethod, Decl(a.js, 11, 28), Decl(a.js, 14, 14))
var stringOrNumberOrUndefined = c.inGetter;
>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3), Decl(b.ts, 11, 3), Decl(b.ts, 18, 3), Decl(b.ts, 19, 3), Decl(b.ts, 20, 3), Decl(b.ts, 21, 3), Decl(b.ts, 22, 3))
>c.inGetter : Symbol(C.inGetter, Decl(a.js, 30, 28), Decl(a.js, 33, 14))
>c.inGetter : Symbol(C.inGetter, Decl(a.js, 29, 28), Decl(a.js, 32, 14))
>c : Symbol(c, Decl(b.ts, 0, 3))
>inGetter : Symbol(C.inGetter, Decl(a.js, 30, 28), Decl(a.js, 33, 14))
>inGetter : Symbol(C.inGetter, Decl(a.js, 29, 28), Decl(a.js, 32, 14))
var stringOrNumberOrUndefined = c.inSetter;
>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3), Decl(b.ts, 11, 3), Decl(b.ts, 18, 3), Decl(b.ts, 19, 3), Decl(b.ts, 20, 3), Decl(b.ts, 21, 3), Decl(b.ts, 22, 3))
>c.inSetter : Symbol(C.inSetter, Decl(a.js, 39, 28), Decl(a.js, 42, 14))
>c.inSetter : Symbol(C.inSetter, Decl(a.js, 38, 28), Decl(a.js, 41, 14))
>c : Symbol(c, Decl(b.ts, 0, 3))
>inSetter : Symbol(C.inSetter, Decl(a.js, 39, 28), Decl(a.js, 42, 14))
>inSetter : Symbol(C.inSetter, Decl(a.js, 38, 28), Decl(a.js, 41, 14))
var stringOrNumberOrUndefined = c.inPropertyDeclaration;
>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3), Decl(b.ts, 11, 3), Decl(b.ts, 18, 3), Decl(b.ts, 19, 3), Decl(b.ts, 20, 3), Decl(b.ts, 21, 3), Decl(b.ts, 22, 3))
>c.inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 47, 28), Decl(a.js, 50, 14))
>c.inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 46, 28), Decl(a.js, 49, 14))
>c : Symbol(c, Decl(b.ts, 0, 3))
>inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 47, 28), Decl(a.js, 50, 14))
>inPropertyDeclaration : Symbol(C.inPropertyDeclaration, Decl(a.js, 46, 28), Decl(a.js, 49, 14))
var stringOrNumberOrUndefined = c.inNestedArrowFunction
>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3), Decl(b.ts, 11, 3), Decl(b.ts, 18, 3), Decl(b.ts, 19, 3), Decl(b.ts, 20, 3), Decl(b.ts, 21, 3), Decl(b.ts, 22, 3))
>c.inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 21, 32), Decl(a.js, 24, 18))
>c.inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 20, 32), Decl(a.js, 23, 18))
>c : Symbol(c, Decl(b.ts, 0, 3))
>inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 21, 32), Decl(a.js, 24, 18))
>inNestedArrowFunction : Symbol(C.inNestedArrowFunction, Decl(a.js, 20, 32), Decl(a.js, 23, 18))
var stringOrNumberOrBoolean: string | number | boolean;
>stringOrNumberOrBoolean : Symbol(stringOrNumberOrBoolean, Decl(b.ts, 13, 3), Decl(b.ts, 15, 3))
var stringOrNumberOrBoolean = c.inMultiple;
>stringOrNumberOrBoolean : Symbol(stringOrNumberOrBoolean, Decl(b.ts, 13, 3), Decl(b.ts, 15, 3))
>c.inMultiple : Symbol(C.inMultiple, Decl(a.js, 8, 9), Decl(a.js, 17, 9), Decl(a.js, 35, 9))
>c.inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 16, 9), Decl(a.js, 34, 9))
>c : Symbol(c, Decl(b.ts, 0, 3))
>inMultiple : Symbol(C.inMultiple, Decl(a.js, 8, 9), Decl(a.js, 17, 9), Decl(a.js, 35, 9))
>inMultiple : Symbol(C.inMultiple, Decl(a.js, 7, 9), Decl(a.js, 16, 9), Decl(a.js, 34, 9))
var stringOrNumberOrUndefined = C.inStaticMethod;
>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3), Decl(b.ts, 11, 3), Decl(b.ts, 18, 3), Decl(b.ts, 19, 3), Decl(b.ts, 20, 3), Decl(b.ts, 21, 3), Decl(b.ts, 22, 3))
>C.inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 55, 28), Decl(a.js, 58, 14))
>C.inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 54, 28), Decl(a.js, 57, 14))
>C : Symbol(C, Decl(a.js, 0, 0))
>inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 55, 28), Decl(a.js, 58, 14))
>inStaticMethod : Symbol(C.inStaticMethod, Decl(a.js, 54, 28), Decl(a.js, 57, 14))
var stringOrNumberOrUndefined = C.inStaticGetter;
>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3), Decl(b.ts, 11, 3), Decl(b.ts, 18, 3), Decl(b.ts, 19, 3), Decl(b.ts, 20, 3), Decl(b.ts, 21, 3), Decl(b.ts, 22, 3))
>C.inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 72, 28), Decl(a.js, 75, 14))
>C.inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 71, 28), Decl(a.js, 74, 14))
>C : Symbol(C, Decl(a.js, 0, 0))
>inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 72, 28), Decl(a.js, 75, 14))
>inStaticGetter : Symbol(C.inStaticGetter, Decl(a.js, 71, 28), Decl(a.js, 74, 14))
var stringOrNumberOrUndefined = C.inStaticSetter;
>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3), Decl(b.ts, 11, 3), Decl(b.ts, 18, 3), Decl(b.ts, 19, 3), Decl(b.ts, 20, 3), Decl(b.ts, 21, 3), Decl(b.ts, 22, 3))
>C.inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 80, 28), Decl(a.js, 83, 14))
>C.inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 79, 28), Decl(a.js, 82, 14))
>C : Symbol(C, Decl(a.js, 0, 0))
>inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 80, 28), Decl(a.js, 83, 14))
>inStaticSetter : Symbol(C.inStaticSetter, Decl(a.js, 79, 28), Decl(a.js, 82, 14))
var stringOrNumberOrUndefined = C.inStaticPropertyDeclaration;
>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3), Decl(b.ts, 11, 3), Decl(b.ts, 18, 3), Decl(b.ts, 19, 3), Decl(b.ts, 20, 3), Decl(b.ts, 21, 3), Decl(b.ts, 22, 3))
>C.inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 88, 28), Decl(a.js, 91, 14))
>C.inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 87, 28), Decl(a.js, 90, 14))
>C : Symbol(C, Decl(a.js, 0, 0))
>inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 88, 28), Decl(a.js, 91, 14))
>inStaticPropertyDeclaration : Symbol(C.inStaticPropertyDeclaration, Decl(a.js, 87, 28), Decl(a.js, 90, 14))
var stringOrNumberOrUndefined = C.inStaticNestedArrowFunction;
>stringOrNumberOrUndefined : Symbol(stringOrNumberOrUndefined, Decl(b.ts, 5, 3), Decl(b.ts, 7, 3), Decl(b.ts, 8, 3), Decl(b.ts, 9, 3), Decl(b.ts, 10, 3), Decl(b.ts, 11, 3), Decl(b.ts, 18, 3), Decl(b.ts, 19, 3), Decl(b.ts, 20, 3), Decl(b.ts, 21, 3), Decl(b.ts, 22, 3))
>C.inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 63, 32), Decl(a.js, 66, 18))
>C.inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 62, 32), Decl(a.js, 65, 18))
>C : Symbol(C, Decl(a.js, 0, 0))
>inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 63, 32), Decl(a.js, 66, 18))
>inStaticNestedArrowFunction : Symbol(C.inStaticNestedArrowFunction, Decl(a.js, 62, 32), Decl(a.js, 65, 18))

View file

@ -1,5 +1,4 @@
=== tests/cases/conformance/salsa/a.js ===
class C {
>C : C

View file

@ -1,7 +1,6 @@
//// [tests/cases/conformance/salsa/jsObjectsMarkedAsOpenEnded.ts] ////
//// [a.js]
var variable = {};
variable.a = 0;

View file

@ -1,48 +1,47 @@
=== tests/cases/conformance/salsa/a.js ===
var variable = {};
>variable : Symbol(variable, Decl(a.js, 1, 3))
>variable : Symbol(variable, Decl(a.js, 0, 3))
variable.a = 0;
>variable : Symbol(variable, Decl(a.js, 1, 3))
>variable : Symbol(variable, Decl(a.js, 0, 3))
class C {
>C : Symbol(C, Decl(a.js, 2, 15))
>C : Symbol(C, Decl(a.js, 1, 15))
initializedMember = {};
>initializedMember : Symbol(C.initializedMember, Decl(a.js, 4, 9))
>initializedMember : Symbol(C.initializedMember, Decl(a.js, 3, 9))
constructor() {
this.member = {};
>this.member : Symbol(C.member, Decl(a.js, 6, 19))
>this : Symbol(C, Decl(a.js, 2, 15))
>member : Symbol(C.member, Decl(a.js, 6, 19))
>this.member : Symbol(C.member, Decl(a.js, 5, 19))
>this : Symbol(C, Decl(a.js, 1, 15))
>member : Symbol(C.member, Decl(a.js, 5, 19))
this.member.a = 0;
>this.member : Symbol(C.member, Decl(a.js, 6, 19))
>this : Symbol(C, Decl(a.js, 2, 15))
>member : Symbol(C.member, Decl(a.js, 6, 19))
>this.member : Symbol(C.member, Decl(a.js, 5, 19))
>this : Symbol(C, Decl(a.js, 1, 15))
>member : Symbol(C.member, Decl(a.js, 5, 19))
}
}
var obj = {
>obj : Symbol(obj, Decl(a.js, 12, 3))
>obj : Symbol(obj, Decl(a.js, 11, 3))
property: {}
>property : Symbol(property, Decl(a.js, 12, 11))
>property : Symbol(property, Decl(a.js, 11, 11))
};
obj.property.a = 0;
>obj.property : Symbol(property, Decl(a.js, 12, 11))
>obj : Symbol(obj, Decl(a.js, 12, 3))
>property : Symbol(property, Decl(a.js, 12, 11))
>obj.property : Symbol(property, Decl(a.js, 11, 11))
>obj : Symbol(obj, Decl(a.js, 11, 3))
>property : Symbol(property, Decl(a.js, 11, 11))
var arr = [{}];
>arr : Symbol(arr, Decl(a.js, 18, 3))
>arr : Symbol(arr, Decl(a.js, 17, 3))
function getObj() {
>getObj : Symbol(getObj, Decl(a.js, 18, 15))
>getObj : Symbol(getObj, Decl(a.js, 17, 15))
return {};
}
@ -50,27 +49,27 @@ function getObj() {
=== tests/cases/conformance/salsa/b.ts ===
variable.a = 1;
>variable : Symbol(variable, Decl(a.js, 1, 3))
>variable : Symbol(variable, Decl(a.js, 0, 3))
(new C()).member.a = 1;
>(new C()).member : Symbol(C.member, Decl(a.js, 6, 19))
>C : Symbol(C, Decl(a.js, 2, 15))
>member : Symbol(C.member, Decl(a.js, 6, 19))
>(new C()).member : Symbol(C.member, Decl(a.js, 5, 19))
>C : Symbol(C, Decl(a.js, 1, 15))
>member : Symbol(C.member, Decl(a.js, 5, 19))
(new C()).initializedMember.a = 1;
>(new C()).initializedMember : Symbol(C.initializedMember, Decl(a.js, 4, 9))
>C : Symbol(C, Decl(a.js, 2, 15))
>initializedMember : Symbol(C.initializedMember, Decl(a.js, 4, 9))
>(new C()).initializedMember : Symbol(C.initializedMember, Decl(a.js, 3, 9))
>C : Symbol(C, Decl(a.js, 1, 15))
>initializedMember : Symbol(C.initializedMember, Decl(a.js, 3, 9))
obj.property.a = 1;
>obj.property : Symbol(property, Decl(a.js, 12, 11))
>obj : Symbol(obj, Decl(a.js, 12, 3))
>property : Symbol(property, Decl(a.js, 12, 11))
>obj.property : Symbol(property, Decl(a.js, 11, 11))
>obj : Symbol(obj, Decl(a.js, 11, 3))
>property : Symbol(property, Decl(a.js, 11, 11))
arr[0].a = 1;
>arr : Symbol(arr, Decl(a.js, 18, 3))
>arr : Symbol(arr, Decl(a.js, 17, 3))
getObj().a = 1;
>getObj : Symbol(getObj, Decl(a.js, 18, 15))
>getObj : Symbol(getObj, Decl(a.js, 17, 15))

View file

@ -1,5 +1,4 @@
=== tests/cases/conformance/salsa/a.js ===
var variable = {};
>variable : { [x: string]: any; }
>{} : { [x: string]: any; }

View file

@ -1,14 +1,13 @@
tests/cases/conformance/types/thisType/looseThisTypeInFunctions.ts(22,1): error TS2322: Type '(this: C, m: number) => number' is not assignable to type '(this: void, m: number) => number'.
tests/cases/conformance/types/thisType/looseThisTypeInFunctions.ts(21,1): error TS2322: Type '(this: C, m: number) => number' is not assignable to type '(this: void, m: number) => number'.
The 'this' types of each signature are incompatible.
Type 'void' is not assignable to type 'C'.
tests/cases/conformance/types/thisType/looseThisTypeInFunctions.ts(26,27): error TS2339: Property 'length' does not exist on type 'number'.
tests/cases/conformance/types/thisType/looseThisTypeInFunctions.ts(34,28): error TS2339: Property 'length' does not exist on type 'number'.
tests/cases/conformance/types/thisType/looseThisTypeInFunctions.ts(38,9): error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'I'.
tests/cases/conformance/types/thisType/looseThisTypeInFunctions.ts(47,20): error TS2339: Property 'length' does not exist on type 'number'.
tests/cases/conformance/types/thisType/looseThisTypeInFunctions.ts(25,27): error TS2339: Property 'length' does not exist on type 'number'.
tests/cases/conformance/types/thisType/looseThisTypeInFunctions.ts(33,28): error TS2339: Property 'length' does not exist on type 'number'.
tests/cases/conformance/types/thisType/looseThisTypeInFunctions.ts(37,9): error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'I'.
tests/cases/conformance/types/thisType/looseThisTypeInFunctions.ts(46,20): error TS2339: Property 'length' does not exist on type 'number'.
==== tests/cases/conformance/types/thisType/looseThisTypeInFunctions.ts (5 errors) ====
interface I {
n: number;
explicitThis(this: this, m: number): number;

View file

@ -1,5 +1,4 @@
//// [looseThisTypeInFunctions.ts]
interface I {
n: number;
explicitThis(this: this, m: number): number;

View file

@ -1,5 +1,4 @@
=== tests/cases/conformance/salsa/a.ts ===
import b = require("./b.js");
>b : Symbol(b, Decl(a.ts, 0, 0))

View file

@ -1,5 +1,4 @@
=== tests/cases/conformance/salsa/a.ts ===
import b = require("./b.js");
>b : typeof b

View file

@ -1,5 +1,4 @@
//// [overrideBaseIntersectionMethod.ts]
// Repro from #14615
type Constructor<T> = new (...args: any[]) => T;
@ -32,8 +31,8 @@ class Foo extends WithLocation(Point) {
//// [overrideBaseIntersectionMethod.js]
// Repro from #14615
"use strict";
// Repro from #14615
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||

View file

@ -1,88 +1,87 @@
=== tests/cases/compiler/overrideBaseIntersectionMethod.ts ===
// Repro from #14615
type Constructor<T> = new (...args: any[]) => T;
>Constructor : Symbol(Constructor, Decl(overrideBaseIntersectionMethod.ts, 0, 0))
>T : Symbol(T, Decl(overrideBaseIntersectionMethod.ts, 3, 17))
>args : Symbol(args, Decl(overrideBaseIntersectionMethod.ts, 3, 27))
>T : Symbol(T, Decl(overrideBaseIntersectionMethod.ts, 3, 17))
>T : Symbol(T, Decl(overrideBaseIntersectionMethod.ts, 2, 17))
>args : Symbol(args, Decl(overrideBaseIntersectionMethod.ts, 2, 27))
>T : Symbol(T, Decl(overrideBaseIntersectionMethod.ts, 2, 17))
const WithLocation = <T extends Constructor<Point>>(Base: T) => class extends Base {
>WithLocation : Symbol(WithLocation, Decl(overrideBaseIntersectionMethod.ts, 5, 5))
>T : Symbol(T, Decl(overrideBaseIntersectionMethod.ts, 5, 22))
>WithLocation : Symbol(WithLocation, Decl(overrideBaseIntersectionMethod.ts, 4, 5))
>T : Symbol(T, Decl(overrideBaseIntersectionMethod.ts, 4, 22))
>Constructor : Symbol(Constructor, Decl(overrideBaseIntersectionMethod.ts, 0, 0))
>Point : Symbol(Point, Decl(overrideBaseIntersectionMethod.ts, 10, 1))
>Base : Symbol(Base, Decl(overrideBaseIntersectionMethod.ts, 5, 52))
>T : Symbol(T, Decl(overrideBaseIntersectionMethod.ts, 5, 22))
>Base : Symbol(Base, Decl(overrideBaseIntersectionMethod.ts, 5, 52))
>Point : Symbol(Point, Decl(overrideBaseIntersectionMethod.ts, 9, 1))
>Base : Symbol(Base, Decl(overrideBaseIntersectionMethod.ts, 4, 52))
>T : Symbol(T, Decl(overrideBaseIntersectionMethod.ts, 4, 22))
>Base : Symbol(Base, Decl(overrideBaseIntersectionMethod.ts, 4, 52))
getLocation(): [number, number] {
>getLocation : Symbol((Anonymous class).getLocation, Decl(overrideBaseIntersectionMethod.ts, 5, 84))
>getLocation : Symbol((Anonymous class).getLocation, Decl(overrideBaseIntersectionMethod.ts, 4, 84))
const [x,y] = super.getLocation();
>x : Symbol(x, Decl(overrideBaseIntersectionMethod.ts, 7, 11))
>y : Symbol(y, Decl(overrideBaseIntersectionMethod.ts, 7, 13))
>super.getLocation : Symbol(Point.getLocation, Decl(overrideBaseIntersectionMethod.ts, 13, 53))
>super : Symbol(Point, Decl(overrideBaseIntersectionMethod.ts, 10, 1))
>getLocation : Symbol(Point.getLocation, Decl(overrideBaseIntersectionMethod.ts, 13, 53))
>x : Symbol(x, Decl(overrideBaseIntersectionMethod.ts, 6, 11))
>y : Symbol(y, Decl(overrideBaseIntersectionMethod.ts, 6, 13))
>super.getLocation : Symbol(Point.getLocation, Decl(overrideBaseIntersectionMethod.ts, 12, 53))
>super : Symbol(Point, Decl(overrideBaseIntersectionMethod.ts, 9, 1))
>getLocation : Symbol(Point.getLocation, Decl(overrideBaseIntersectionMethod.ts, 12, 53))
return [this.x | x, this.y | y];
>this.x : Symbol(Point.x, Decl(overrideBaseIntersectionMethod.ts, 13, 14))
>this : Symbol((Anonymous class), Decl(overrideBaseIntersectionMethod.ts, 5, 63))
>x : Symbol(Point.x, Decl(overrideBaseIntersectionMethod.ts, 13, 14))
>x : Symbol(x, Decl(overrideBaseIntersectionMethod.ts, 7, 11))
>this.y : Symbol(Point.y, Decl(overrideBaseIntersectionMethod.ts, 13, 31))
>this : Symbol((Anonymous class), Decl(overrideBaseIntersectionMethod.ts, 5, 63))
>y : Symbol(Point.y, Decl(overrideBaseIntersectionMethod.ts, 13, 31))
>y : Symbol(y, Decl(overrideBaseIntersectionMethod.ts, 7, 13))
>this.x : Symbol(Point.x, Decl(overrideBaseIntersectionMethod.ts, 12, 14))
>this : Symbol((Anonymous class), Decl(overrideBaseIntersectionMethod.ts, 4, 63))
>x : Symbol(Point.x, Decl(overrideBaseIntersectionMethod.ts, 12, 14))
>x : Symbol(x, Decl(overrideBaseIntersectionMethod.ts, 6, 11))
>this.y : Symbol(Point.y, Decl(overrideBaseIntersectionMethod.ts, 12, 31))
>this : Symbol((Anonymous class), Decl(overrideBaseIntersectionMethod.ts, 4, 63))
>y : Symbol(Point.y, Decl(overrideBaseIntersectionMethod.ts, 12, 31))
>y : Symbol(y, Decl(overrideBaseIntersectionMethod.ts, 6, 13))
}
}
class Point {
>Point : Symbol(Point, Decl(overrideBaseIntersectionMethod.ts, 10, 1))
>Point : Symbol(Point, Decl(overrideBaseIntersectionMethod.ts, 9, 1))
constructor(public x: number, public y: number) { }
>x : Symbol(Point.x, Decl(overrideBaseIntersectionMethod.ts, 13, 14))
>y : Symbol(Point.y, Decl(overrideBaseIntersectionMethod.ts, 13, 31))
>x : Symbol(Point.x, Decl(overrideBaseIntersectionMethod.ts, 12, 14))
>y : Symbol(Point.y, Decl(overrideBaseIntersectionMethod.ts, 12, 31))
getLocation(): [number, number] {
>getLocation : Symbol(Point.getLocation, Decl(overrideBaseIntersectionMethod.ts, 13, 53))
>getLocation : Symbol(Point.getLocation, Decl(overrideBaseIntersectionMethod.ts, 12, 53))
return [0,0];
}
}
class Foo extends WithLocation(Point) {
>Foo : Symbol(Foo, Decl(overrideBaseIntersectionMethod.ts, 17, 1))
>WithLocation : Symbol(WithLocation, Decl(overrideBaseIntersectionMethod.ts, 5, 5))
>Point : Symbol(Point, Decl(overrideBaseIntersectionMethod.ts, 10, 1))
>Foo : Symbol(Foo, Decl(overrideBaseIntersectionMethod.ts, 16, 1))
>WithLocation : Symbol(WithLocation, Decl(overrideBaseIntersectionMethod.ts, 4, 5))
>Point : Symbol(Point, Decl(overrideBaseIntersectionMethod.ts, 9, 1))
calculate() {
>calculate : Symbol(Foo.calculate, Decl(overrideBaseIntersectionMethod.ts, 19, 39))
>calculate : Symbol(Foo.calculate, Decl(overrideBaseIntersectionMethod.ts, 18, 39))
return this.x + this.y;
>this.x : Symbol(Point.x, Decl(overrideBaseIntersectionMethod.ts, 13, 14))
>this : Symbol(Foo, Decl(overrideBaseIntersectionMethod.ts, 17, 1))
>x : Symbol(Point.x, Decl(overrideBaseIntersectionMethod.ts, 13, 14))
>this.y : Symbol(Point.y, Decl(overrideBaseIntersectionMethod.ts, 13, 31))
>this : Symbol(Foo, Decl(overrideBaseIntersectionMethod.ts, 17, 1))
>y : Symbol(Point.y, Decl(overrideBaseIntersectionMethod.ts, 13, 31))
>this.x : Symbol(Point.x, Decl(overrideBaseIntersectionMethod.ts, 12, 14))
>this : Symbol(Foo, Decl(overrideBaseIntersectionMethod.ts, 16, 1))
>x : Symbol(Point.x, Decl(overrideBaseIntersectionMethod.ts, 12, 14))
>this.y : Symbol(Point.y, Decl(overrideBaseIntersectionMethod.ts, 12, 31))
>this : Symbol(Foo, Decl(overrideBaseIntersectionMethod.ts, 16, 1))
>y : Symbol(Point.y, Decl(overrideBaseIntersectionMethod.ts, 12, 31))
}
getLocation() {
>getLocation : Symbol(Foo.getLocation, Decl(overrideBaseIntersectionMethod.ts, 22, 3))
>getLocation : Symbol(Foo.getLocation, Decl(overrideBaseIntersectionMethod.ts, 21, 3))
return super.getLocation()
>super.getLocation : Symbol(getLocation, Decl(overrideBaseIntersectionMethod.ts, 5, 84), Decl(overrideBaseIntersectionMethod.ts, 13, 53))
>getLocation : Symbol(getLocation, Decl(overrideBaseIntersectionMethod.ts, 5, 84), Decl(overrideBaseIntersectionMethod.ts, 13, 53))
>super.getLocation : Symbol(getLocation, Decl(overrideBaseIntersectionMethod.ts, 4, 84), Decl(overrideBaseIntersectionMethod.ts, 12, 53))
>getLocation : Symbol(getLocation, Decl(overrideBaseIntersectionMethod.ts, 4, 84), Decl(overrideBaseIntersectionMethod.ts, 12, 53))
}
whereAmI() {
>whereAmI : Symbol(Foo.whereAmI, Decl(overrideBaseIntersectionMethod.ts, 25, 3))
>whereAmI : Symbol(Foo.whereAmI, Decl(overrideBaseIntersectionMethod.ts, 24, 3))
return this.getLocation();
>this.getLocation : Symbol(Foo.getLocation, Decl(overrideBaseIntersectionMethod.ts, 22, 3))
>this : Symbol(Foo, Decl(overrideBaseIntersectionMethod.ts, 17, 1))
>getLocation : Symbol(Foo.getLocation, Decl(overrideBaseIntersectionMethod.ts, 22, 3))
>this.getLocation : Symbol(Foo.getLocation, Decl(overrideBaseIntersectionMethod.ts, 21, 3))
>this : Symbol(Foo, Decl(overrideBaseIntersectionMethod.ts, 16, 1))
>getLocation : Symbol(Foo.getLocation, Decl(overrideBaseIntersectionMethod.ts, 21, 3))
}
}

View file

@ -1,5 +1,4 @@
=== tests/cases/compiler/overrideBaseIntersectionMethod.ts ===
// Repro from #14615
type Constructor<T> = new (...args: any[]) => T;

View file

@ -1,5 +1,4 @@
//// [selfInLambdas.ts]
interface MouseEvent {
x: number;
y: number;

View file

@ -1,52 +1,51 @@
=== tests/cases/compiler/selfInLambdas.ts ===
interface MouseEvent {
>MouseEvent : Symbol(MouseEvent, Decl(selfInLambdas.ts, 0, 0))
x: number;
>x : Symbol(MouseEvent.x, Decl(selfInLambdas.ts, 1, 22))
>x : Symbol(MouseEvent.x, Decl(selfInLambdas.ts, 0, 22))
y: number;
>y : Symbol(MouseEvent.y, Decl(selfInLambdas.ts, 2, 14))
>y : Symbol(MouseEvent.y, Decl(selfInLambdas.ts, 1, 14))
}
declare var window: Window;
>window : Symbol(window, Decl(selfInLambdas.ts, 6, 11))
>Window : Symbol(Window, Decl(selfInLambdas.ts, 6, 27))
>window : Symbol(window, Decl(selfInLambdas.ts, 5, 11))
>Window : Symbol(Window, Decl(selfInLambdas.ts, 5, 27))
interface Window {
>Window : Symbol(Window, Decl(selfInLambdas.ts, 6, 27))
>Window : Symbol(Window, Decl(selfInLambdas.ts, 5, 27))
onmousemove: (ev: MouseEvent) => any;
>onmousemove : Symbol(Window.onmousemove, Decl(selfInLambdas.ts, 7, 18))
>ev : Symbol(ev, Decl(selfInLambdas.ts, 8, 18))
>onmousemove : Symbol(Window.onmousemove, Decl(selfInLambdas.ts, 6, 18))
>ev : Symbol(ev, Decl(selfInLambdas.ts, 7, 18))
>MouseEvent : Symbol(MouseEvent, Decl(selfInLambdas.ts, 0, 0))
}
var o = {
>o : Symbol(o, Decl(selfInLambdas.ts, 11, 3))
>o : Symbol(o, Decl(selfInLambdas.ts, 10, 3))
counter: 0,
>counter : Symbol(counter, Decl(selfInLambdas.ts, 11, 9))
>counter : Symbol(counter, Decl(selfInLambdas.ts, 10, 9))
start: function() {
>start : Symbol(start, Decl(selfInLambdas.ts, 13, 15))
>start : Symbol(start, Decl(selfInLambdas.ts, 12, 15))
window.onmousemove = () => {
>window.onmousemove : Symbol(Window.onmousemove, Decl(selfInLambdas.ts, 7, 18))
>window : Symbol(window, Decl(selfInLambdas.ts, 6, 11))
>onmousemove : Symbol(Window.onmousemove, Decl(selfInLambdas.ts, 7, 18))
>window.onmousemove : Symbol(Window.onmousemove, Decl(selfInLambdas.ts, 6, 18))
>window : Symbol(window, Decl(selfInLambdas.ts, 5, 11))
>onmousemove : Symbol(Window.onmousemove, Decl(selfInLambdas.ts, 6, 18))
this.counter++
>this.counter : Symbol(counter, Decl(selfInLambdas.ts, 11, 9))
>this : Symbol(o, Decl(selfInLambdas.ts, 11, 7))
>counter : Symbol(counter, Decl(selfInLambdas.ts, 11, 9))
>this.counter : Symbol(counter, Decl(selfInLambdas.ts, 10, 9))
>this : Symbol(o, Decl(selfInLambdas.ts, 10, 7))
>counter : Symbol(counter, Decl(selfInLambdas.ts, 10, 9))
var f = () => this.counter;
>f : Symbol(f, Decl(selfInLambdas.ts, 19, 15))
>this.counter : Symbol(counter, Decl(selfInLambdas.ts, 11, 9))
>this : Symbol(o, Decl(selfInLambdas.ts, 11, 7))
>counter : Symbol(counter, Decl(selfInLambdas.ts, 11, 9))
>f : Symbol(f, Decl(selfInLambdas.ts, 18, 15))
>this.counter : Symbol(counter, Decl(selfInLambdas.ts, 10, 9))
>this : Symbol(o, Decl(selfInLambdas.ts, 10, 7))
>counter : Symbol(counter, Decl(selfInLambdas.ts, 10, 9))
}
@ -57,39 +56,39 @@ var o = {
class X {
>X : Symbol(X, Decl(selfInLambdas.ts, 25, 1))
>X : Symbol(X, Decl(selfInLambdas.ts, 24, 1))
private value = "value";
>value : Symbol(X.value, Decl(selfInLambdas.ts, 29, 9))
>value : Symbol(X.value, Decl(selfInLambdas.ts, 28, 9))
public foo() {
>foo : Symbol(X.foo, Decl(selfInLambdas.ts, 30, 25))
>foo : Symbol(X.foo, Decl(selfInLambdas.ts, 29, 25))
var outer= () => {
>outer : Symbol(outer, Decl(selfInLambdas.ts, 33, 5))
>outer : Symbol(outer, Decl(selfInLambdas.ts, 32, 5))
var x = this.value;
>x : Symbol(x, Decl(selfInLambdas.ts, 34, 15))
>this.value : Symbol(X.value, Decl(selfInLambdas.ts, 29, 9))
>this : Symbol(X, Decl(selfInLambdas.ts, 25, 1))
>value : Symbol(X.value, Decl(selfInLambdas.ts, 29, 9))
>x : Symbol(x, Decl(selfInLambdas.ts, 33, 15))
>this.value : Symbol(X.value, Decl(selfInLambdas.ts, 28, 9))
>this : Symbol(X, Decl(selfInLambdas.ts, 24, 1))
>value : Symbol(X.value, Decl(selfInLambdas.ts, 28, 9))
var inner = () => {
>inner : Symbol(inner, Decl(selfInLambdas.ts, 35, 15))
>inner : Symbol(inner, Decl(selfInLambdas.ts, 34, 15))
var y = this.value;
>y : Symbol(y, Decl(selfInLambdas.ts, 36, 19))
>this.value : Symbol(X.value, Decl(selfInLambdas.ts, 29, 9))
>this : Symbol(X, Decl(selfInLambdas.ts, 25, 1))
>value : Symbol(X.value, Decl(selfInLambdas.ts, 29, 9))
>y : Symbol(y, Decl(selfInLambdas.ts, 35, 19))
>this.value : Symbol(X.value, Decl(selfInLambdas.ts, 28, 9))
>this : Symbol(X, Decl(selfInLambdas.ts, 24, 1))
>value : Symbol(X.value, Decl(selfInLambdas.ts, 28, 9))
}
inner();
>inner : Symbol(inner, Decl(selfInLambdas.ts, 35, 15))
>inner : Symbol(inner, Decl(selfInLambdas.ts, 34, 15))
};
outer();
>outer : Symbol(outer, Decl(selfInLambdas.ts, 33, 5))
>outer : Symbol(outer, Decl(selfInLambdas.ts, 32, 5))
}
}

View file

@ -1,5 +1,4 @@
=== tests/cases/compiler/selfInLambdas.ts ===
interface MouseEvent {
>MouseEvent : MouseEvent

View file

@ -1,8 +1,7 @@
tests/cases/compiler/thisBinding2.ts(11,11): error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
tests/cases/compiler/thisBinding2.ts(10,11): error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
==== tests/cases/compiler/thisBinding2.ts (1 errors) ====
class C {
x: number;
constructor() {

View file

@ -1,5 +1,4 @@
//// [thisBinding2.ts]
class C {
x: number;
constructor() {

View file

@ -1,9 +1,8 @@
tests/cases/conformance/expressions/thisKeyword/thisInObjectLiterals.ts(15,5): error TS7023: 'f' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.
tests/cases/conformance/expressions/thisKeyword/thisInObjectLiterals.ts(16,21): error TS2339: Property 'spaaace' does not exist on type '{ f(): any; }'.
tests/cases/conformance/expressions/thisKeyword/thisInObjectLiterals.ts(14,5): error TS7023: 'f' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.
tests/cases/conformance/expressions/thisKeyword/thisInObjectLiterals.ts(15,21): error TS2339: Property 'spaaace' does not exist on type '{ f(): any; }'.
==== tests/cases/conformance/expressions/thisKeyword/thisInObjectLiterals.ts (2 errors) ====
class MyClass {
t: number;

View file

@ -1,5 +1,4 @@
//// [thisInObjectLiterals.ts]
class MyClass {
t: number;

View file

@ -1,8 +1,7 @@
tests/cases/conformance/types/thisType/thisTypeInFunctions2.ts(15,5): error TS7010: 'foo', which lacks return-type annotation, implicitly has an 'any' return type.
tests/cases/conformance/types/thisType/thisTypeInFunctions2.ts(14,5): error TS7010: 'foo', which lacks return-type annotation, implicitly has an 'any' return type.
==== tests/cases/conformance/types/thisType/thisTypeInFunctions2.ts (1 errors) ====
interface IndexedWithThis {
// this is a workaround for React
init?: (this: this) => void;

View file

@ -1,5 +1,4 @@
//// [thisTypeInFunctions2.ts]
interface IndexedWithThis {
// this is a workaround for React
init?: (this: this) => void;

View file

@ -1,5 +1,4 @@
//// [thisTypeInNativeThisAssignableMethods.ts]
class A {
options: string[];

View file

@ -1,5 +1,4 @@
=== tests/cases/compiler/thisTypeInNativeThisAssignableMethods.ts ===
class A {
>A : A

View file

@ -1,5 +1,4 @@
//// [thisTypeInObjectLiterals.ts]
let o = {
d: "bar",
m() {

View file

@ -1,105 +1,104 @@
=== tests/cases/conformance/types/thisType/thisTypeInObjectLiterals.ts ===
let o = {
>o : Symbol(o, Decl(thisTypeInObjectLiterals.ts, 1, 3))
>o : Symbol(o, Decl(thisTypeInObjectLiterals.ts, 0, 3))
d: "bar",
>d : Symbol(d, Decl(thisTypeInObjectLiterals.ts, 1, 9))
>d : Symbol(d, Decl(thisTypeInObjectLiterals.ts, 0, 9))
m() {
>m : Symbol(m, Decl(thisTypeInObjectLiterals.ts, 2, 13))
>m : Symbol(m, Decl(thisTypeInObjectLiterals.ts, 1, 13))
return this.d.length;
>this.d.length : Symbol(String.length, Decl(lib.d.ts, --, --))
>this.d : Symbol(d, Decl(thisTypeInObjectLiterals.ts, 1, 9))
>this : Symbol(o, Decl(thisTypeInObjectLiterals.ts, 1, 7))
>d : Symbol(d, Decl(thisTypeInObjectLiterals.ts, 1, 9))
>this.d : Symbol(d, Decl(thisTypeInObjectLiterals.ts, 0, 9))
>this : Symbol(o, Decl(thisTypeInObjectLiterals.ts, 0, 7))
>d : Symbol(d, Decl(thisTypeInObjectLiterals.ts, 0, 9))
>length : Symbol(String.length, Decl(lib.d.ts, --, --))
},
f: function() {
>f : Symbol(f, Decl(thisTypeInObjectLiterals.ts, 5, 6))
>f : Symbol(f, Decl(thisTypeInObjectLiterals.ts, 4, 6))
return this.d.length;
>this.d.length : Symbol(String.length, Decl(lib.d.ts, --, --))
>this.d : Symbol(d, Decl(thisTypeInObjectLiterals.ts, 1, 9))
>this : Symbol(o, Decl(thisTypeInObjectLiterals.ts, 1, 7))
>d : Symbol(d, Decl(thisTypeInObjectLiterals.ts, 1, 9))
>this.d : Symbol(d, Decl(thisTypeInObjectLiterals.ts, 0, 9))
>this : Symbol(o, Decl(thisTypeInObjectLiterals.ts, 0, 7))
>d : Symbol(d, Decl(thisTypeInObjectLiterals.ts, 0, 9))
>length : Symbol(String.length, Decl(lib.d.ts, --, --))
}
}
let mutuallyRecursive = {
>mutuallyRecursive : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 11, 3))
>mutuallyRecursive : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 10, 3))
a: 100,
>a : Symbol(a, Decl(thisTypeInObjectLiterals.ts, 11, 25))
>a : Symbol(a, Decl(thisTypeInObjectLiterals.ts, 10, 25))
start() {
>start : Symbol(start, Decl(thisTypeInObjectLiterals.ts, 12, 11))
>start : Symbol(start, Decl(thisTypeInObjectLiterals.ts, 11, 11))
return this.passthrough(this.a);
>this.passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 15, 6))
>this : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 11, 23))
>passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 15, 6))
>this.a : Symbol(a, Decl(thisTypeInObjectLiterals.ts, 11, 25))
>this : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 11, 23))
>a : Symbol(a, Decl(thisTypeInObjectLiterals.ts, 11, 25))
>this.passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 14, 6))
>this : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 10, 23))
>passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 14, 6))
>this.a : Symbol(a, Decl(thisTypeInObjectLiterals.ts, 10, 25))
>this : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 10, 23))
>a : Symbol(a, Decl(thisTypeInObjectLiterals.ts, 10, 25))
},
passthrough(n: number) {
>passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 15, 6))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 16, 16))
>passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 14, 6))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 15, 16))
return this.sub1(n);
>this.sub1 : Symbol(sub1, Decl(thisTypeInObjectLiterals.ts, 18, 6))
>this : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 11, 23))
>sub1 : Symbol(sub1, Decl(thisTypeInObjectLiterals.ts, 18, 6))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 16, 16))
>this.sub1 : Symbol(sub1, Decl(thisTypeInObjectLiterals.ts, 17, 6))
>this : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 10, 23))
>sub1 : Symbol(sub1, Decl(thisTypeInObjectLiterals.ts, 17, 6))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 15, 16))
},
sub1(n: number): number {
>sub1 : Symbol(sub1, Decl(thisTypeInObjectLiterals.ts, 18, 6))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 19, 9))
>sub1 : Symbol(sub1, Decl(thisTypeInObjectLiterals.ts, 17, 6))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 18, 9))
if (n > 0) {
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 19, 9))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 18, 9))
return this.passthrough(n - 1);
>this.passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 15, 6))
>this : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 11, 23))
>passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 15, 6))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 19, 9))
>this.passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 14, 6))
>this : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 10, 23))
>passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 14, 6))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 18, 9))
}
return n;
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 19, 9))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 18, 9))
}
}
var i: number = mutuallyRecursive.start();
>i : Symbol(i, Decl(thisTypeInObjectLiterals.ts, 26, 3))
>mutuallyRecursive.start : Symbol(start, Decl(thisTypeInObjectLiterals.ts, 12, 11))
>mutuallyRecursive : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 11, 3))
>start : Symbol(start, Decl(thisTypeInObjectLiterals.ts, 12, 11))
>i : Symbol(i, Decl(thisTypeInObjectLiterals.ts, 25, 3))
>mutuallyRecursive.start : Symbol(start, Decl(thisTypeInObjectLiterals.ts, 11, 11))
>mutuallyRecursive : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 10, 3))
>start : Symbol(start, Decl(thisTypeInObjectLiterals.ts, 11, 11))
interface I {
>I : Symbol(I, Decl(thisTypeInObjectLiterals.ts, 26, 42))
>I : Symbol(I, Decl(thisTypeInObjectLiterals.ts, 25, 42))
a: number;
>a : Symbol(I.a, Decl(thisTypeInObjectLiterals.ts, 27, 13))
>a : Symbol(I.a, Decl(thisTypeInObjectLiterals.ts, 26, 13))
start(): number;
>start : Symbol(I.start, Decl(thisTypeInObjectLiterals.ts, 28, 14))
>start : Symbol(I.start, Decl(thisTypeInObjectLiterals.ts, 27, 14))
passthrough(n: number): number;
>passthrough : Symbol(I.passthrough, Decl(thisTypeInObjectLiterals.ts, 29, 20))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 30, 16))
>passthrough : Symbol(I.passthrough, Decl(thisTypeInObjectLiterals.ts, 28, 20))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 29, 16))
sub1(n: number): number;
>sub1 : Symbol(I.sub1, Decl(thisTypeInObjectLiterals.ts, 30, 35))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 31, 9))
>sub1 : Symbol(I.sub1, Decl(thisTypeInObjectLiterals.ts, 29, 35))
>n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 30, 9))
}
var impl: I = mutuallyRecursive;
>impl : Symbol(impl, Decl(thisTypeInObjectLiterals.ts, 33, 3))
>I : Symbol(I, Decl(thisTypeInObjectLiterals.ts, 26, 42))
>mutuallyRecursive : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 11, 3))
>impl : Symbol(impl, Decl(thisTypeInObjectLiterals.ts, 32, 3))
>I : Symbol(I, Decl(thisTypeInObjectLiterals.ts, 25, 42))
>mutuallyRecursive : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 10, 3))

View file

@ -1,5 +1,4 @@
=== tests/cases/conformance/types/thisType/thisTypeInObjectLiterals.ts ===
let o = {
>o : { d: string; m(): number; f: () => number; }
>{ d: "bar", m() { return this.d.length; }, f: function() { return this.d.length; }} : { d: string; m(): number; f: () => number; }

View file

@ -1,5 +1,4 @@
//// [thisTypeInObjectLiterals2.ts]
// In methods of an object literal with no contextual type, 'this' has the type
// of the object literal.
@ -244,9 +243,9 @@ vue.hello;
//// [thisTypeInObjectLiterals2.js]
"use strict";
// In methods of an object literal with no contextual type, 'this' has the type
// of the object literal.
"use strict";
var obj1 = {
a: 1,
f: function () {

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,4 @@
=== tests/cases/conformance/types/thisType/thisTypeInObjectLiterals2.ts ===
// In methods of an object literal with no contextual type, 'this' has the type
// of the object literal.

View file

@ -1,5 +1,4 @@
//// [typeGuardsTypeParameters.ts]
// Type guards involving type parameters produce intersection types
class C {

View file

@ -1,62 +1,61 @@
=== tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts ===
// Type guards involving type parameters produce intersection types
class C {
>C : Symbol(C, Decl(typeGuardsTypeParameters.ts, 0, 0))
prop: string;
>prop : Symbol(C.prop, Decl(typeGuardsTypeParameters.ts, 3, 9))
>prop : Symbol(C.prop, Decl(typeGuardsTypeParameters.ts, 2, 9))
}
function f1<T>(x: T) {
>f1 : Symbol(f1, Decl(typeGuardsTypeParameters.ts, 5, 1))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 7, 12))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 7, 15))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 7, 12))
>f1 : Symbol(f1, Decl(typeGuardsTypeParameters.ts, 4, 1))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 6, 12))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 6, 15))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 6, 12))
if (x instanceof C) {
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 7, 15))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 6, 15))
>C : Symbol(C, Decl(typeGuardsTypeParameters.ts, 0, 0))
let v1: T = x;
>v1 : Symbol(v1, Decl(typeGuardsTypeParameters.ts, 9, 11))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 7, 12))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 7, 15))
>v1 : Symbol(v1, Decl(typeGuardsTypeParameters.ts, 8, 11))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 6, 12))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 6, 15))
let v2: C = x;
>v2 : Symbol(v2, Decl(typeGuardsTypeParameters.ts, 10, 11))
>v2 : Symbol(v2, Decl(typeGuardsTypeParameters.ts, 9, 11))
>C : Symbol(C, Decl(typeGuardsTypeParameters.ts, 0, 0))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 7, 15))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 6, 15))
x.prop;
>x.prop : Symbol(C.prop, Decl(typeGuardsTypeParameters.ts, 3, 9))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 7, 15))
>prop : Symbol(C.prop, Decl(typeGuardsTypeParameters.ts, 3, 9))
>x.prop : Symbol(C.prop, Decl(typeGuardsTypeParameters.ts, 2, 9))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 6, 15))
>prop : Symbol(C.prop, Decl(typeGuardsTypeParameters.ts, 2, 9))
}
}
function f2<T>(x: T) {
>f2 : Symbol(f2, Decl(typeGuardsTypeParameters.ts, 13, 1))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 15, 12))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 15, 15))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 15, 12))
>f2 : Symbol(f2, Decl(typeGuardsTypeParameters.ts, 12, 1))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 14, 12))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 14, 15))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 14, 12))
if (typeof x === "string") {
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 15, 15))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 14, 15))
let v1: T = x;
>v1 : Symbol(v1, Decl(typeGuardsTypeParameters.ts, 17, 11))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 15, 12))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 15, 15))
>v1 : Symbol(v1, Decl(typeGuardsTypeParameters.ts, 16, 11))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 14, 12))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 14, 15))
let v2: string = x;
>v2 : Symbol(v2, Decl(typeGuardsTypeParameters.ts, 18, 11))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 15, 15))
>v2 : Symbol(v2, Decl(typeGuardsTypeParameters.ts, 17, 11))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 14, 15))
x.length;
>x.length : Symbol(String.length, Decl(lib.d.ts, --, --))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 15, 15))
>x : Symbol(x, Decl(typeGuardsTypeParameters.ts, 14, 15))
>length : Symbol(String.length, Decl(lib.d.ts, --, --))
}
}
@ -64,34 +63,34 @@ function f2<T>(x: T) {
// Repro from #13872
function fun<T>(item: { [P in keyof T]: T[P] }) {
>fun : Symbol(fun, Decl(typeGuardsTypeParameters.ts, 21, 1))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 25, 13))
>item : Symbol(item, Decl(typeGuardsTypeParameters.ts, 25, 16))
>P : Symbol(P, Decl(typeGuardsTypeParameters.ts, 25, 25))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 25, 13))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 25, 13))
>P : Symbol(P, Decl(typeGuardsTypeParameters.ts, 25, 25))
>fun : Symbol(fun, Decl(typeGuardsTypeParameters.ts, 20, 1))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 24, 13))
>item : Symbol(item, Decl(typeGuardsTypeParameters.ts, 24, 16))
>P : Symbol(P, Decl(typeGuardsTypeParameters.ts, 24, 25))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 24, 13))
>T : Symbol(T, Decl(typeGuardsTypeParameters.ts, 24, 13))
>P : Symbol(P, Decl(typeGuardsTypeParameters.ts, 24, 25))
const strings: string[] = [];
>strings : Symbol(strings, Decl(typeGuardsTypeParameters.ts, 26, 9))
>strings : Symbol(strings, Decl(typeGuardsTypeParameters.ts, 25, 9))
for (const key in item) {
>key : Symbol(key, Decl(typeGuardsTypeParameters.ts, 27, 14))
>item : Symbol(item, Decl(typeGuardsTypeParameters.ts, 25, 16))
>key : Symbol(key, Decl(typeGuardsTypeParameters.ts, 26, 14))
>item : Symbol(item, Decl(typeGuardsTypeParameters.ts, 24, 16))
const value = item[key];
>value : Symbol(value, Decl(typeGuardsTypeParameters.ts, 28, 13))
>item : Symbol(item, Decl(typeGuardsTypeParameters.ts, 25, 16))
>key : Symbol(key, Decl(typeGuardsTypeParameters.ts, 27, 14))
>value : Symbol(value, Decl(typeGuardsTypeParameters.ts, 27, 13))
>item : Symbol(item, Decl(typeGuardsTypeParameters.ts, 24, 16))
>key : Symbol(key, Decl(typeGuardsTypeParameters.ts, 26, 14))
if (typeof value === "string") {
>value : Symbol(value, Decl(typeGuardsTypeParameters.ts, 28, 13))
>value : Symbol(value, Decl(typeGuardsTypeParameters.ts, 27, 13))
strings.push(value);
>strings.push : Symbol(Array.push, Decl(lib.d.ts, --, --))
>strings : Symbol(strings, Decl(typeGuardsTypeParameters.ts, 26, 9))
>strings : Symbol(strings, Decl(typeGuardsTypeParameters.ts, 25, 9))
>push : Symbol(Array.push, Decl(lib.d.ts, --, --))
>value : Symbol(value, Decl(typeGuardsTypeParameters.ts, 28, 13))
>value : Symbol(value, Decl(typeGuardsTypeParameters.ts, 27, 13))
}
}
}

View file

@ -1,5 +1,4 @@
=== tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts ===
// Type guards involving type parameters produce intersection types
class C {