@@ -2123,135 +2123,171 @@ const Derived02c03 = new Derived02<number>(1);
21232123>Derived02c03 : Symbol(Derived02c03, Decl(genericDefaults.ts, 457, 5))
21242124>Derived02 : Symbol(Derived02, Decl(genericDefaults.ts, 451, 46))
21252125
2126+ // https://github.com/Microsoft/TypeScript/issues/16211
2127+ interface Base02 {}
2128+ >Base02 : Symbol(Base02, Decl(genericDefaults.ts, 457, 46), Decl(genericDefaults.ts, 462, 13))
2129+
2130+ interface Base02Constructor { new <T = A>(a: T): Base02 & T; }
2131+ >Base02Constructor : Symbol(Base02Constructor, Decl(genericDefaults.ts, 460, 19))
2132+ >T : Symbol(T, Decl(genericDefaults.ts, 461, 35))
2133+ >A : Symbol(A, Decl(genericDefaults.ts, 0, 0))
2134+ >a : Symbol(a, Decl(genericDefaults.ts, 461, 42))
2135+ >T : Symbol(T, Decl(genericDefaults.ts, 461, 35))
2136+ >Base02 : Symbol(Base02, Decl(genericDefaults.ts, 457, 46), Decl(genericDefaults.ts, 462, 13))
2137+ >T : Symbol(T, Decl(genericDefaults.ts, 461, 35))
2138+
2139+ declare const Base02: Base02Constructor;
2140+ >Base02 : Symbol(Base02, Decl(genericDefaults.ts, 457, 46), Decl(genericDefaults.ts, 462, 13))
2141+ >Base02Constructor : Symbol(Base02Constructor, Decl(genericDefaults.ts, 460, 19))
2142+
2143+ declare class Derived03 extends Base02 {}
2144+ >Derived03 : Symbol(Derived03, Decl(genericDefaults.ts, 462, 40))
2145+ >Base02 : Symbol(Base02, Decl(genericDefaults.ts, 457, 46), Decl(genericDefaults.ts, 462, 13))
2146+
2147+ const Derived03c00 = new Derived03(ab);
2148+ >Derived03c00 : Symbol(Derived03c00, Decl(genericDefaults.ts, 464, 5))
2149+ >Derived03 : Symbol(Derived03, Decl(genericDefaults.ts, 462, 40))
2150+ >ab : Symbol(ab, Decl(genericDefaults.ts, 11, 13))
2151+
2152+ const Derived03c01 = Derived03c00.a;
2153+ >Derived03c01 : Symbol(Derived03c01, Decl(genericDefaults.ts, 465, 5))
2154+ >Derived03c00.a : Symbol(A.a, Decl(genericDefaults.ts, 0, 13))
2155+ >Derived03c00 : Symbol(Derived03c00, Decl(genericDefaults.ts, 464, 5))
2156+ >a : Symbol(A.a, Decl(genericDefaults.ts, 0, 13))
2157+
2158+ type DerivedProps = keyof Derived03;
2159+ >DerivedProps : Symbol(DerivedProps, Decl(genericDefaults.ts, 465, 36))
2160+ >Derived03 : Symbol(Derived03, Decl(genericDefaults.ts, 462, 40))
2161+
21262162type t00<T = number> = { a: T; }
2127- >t00 : Symbol(t00, Decl(genericDefaults.ts, 457, 46 ))
2128- >T : Symbol(T, Decl(genericDefaults.ts, 459 , 9))
2129- >a : Symbol(a, Decl(genericDefaults.ts, 459 , 24))
2130- >T : Symbol(T, Decl(genericDefaults.ts, 459 , 9))
2163+ >t00 : Symbol(t00, Decl(genericDefaults.ts, 466, 36 ))
2164+ >T : Symbol(T, Decl(genericDefaults.ts, 468 , 9))
2165+ >a : Symbol(a, Decl(genericDefaults.ts, 468 , 24))
2166+ >T : Symbol(T, Decl(genericDefaults.ts, 468 , 9))
21312167
21322168const t00c00 = (<t00>x).a;
2133- >t00c00 : Symbol(t00c00, Decl(genericDefaults.ts, 460 , 5))
2134- >(<t00>x).a : Symbol(a, Decl(genericDefaults.ts, 459 , 24))
2135- >t00 : Symbol(t00, Decl(genericDefaults.ts, 457, 46 ))
2169+ >t00c00 : Symbol(t00c00, Decl(genericDefaults.ts, 469 , 5))
2170+ >(<t00>x).a : Symbol(a, Decl(genericDefaults.ts, 468 , 24))
2171+ >t00 : Symbol(t00, Decl(genericDefaults.ts, 466, 36 ))
21362172>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2137- >a : Symbol(a, Decl(genericDefaults.ts, 459 , 24))
2173+ >a : Symbol(a, Decl(genericDefaults.ts, 468 , 24))
21382174
21392175const t00c01 = (<t00<number>>x).a;
2140- >t00c01 : Symbol(t00c01, Decl(genericDefaults.ts, 461 , 5))
2141- >(<t00<number>>x).a : Symbol(a, Decl(genericDefaults.ts, 459 , 24))
2142- >t00 : Symbol(t00, Decl(genericDefaults.ts, 457, 46 ))
2176+ >t00c01 : Symbol(t00c01, Decl(genericDefaults.ts, 470 , 5))
2177+ >(<t00<number>>x).a : Symbol(a, Decl(genericDefaults.ts, 468 , 24))
2178+ >t00 : Symbol(t00, Decl(genericDefaults.ts, 466, 36 ))
21432179>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2144- >a : Symbol(a, Decl(genericDefaults.ts, 459 , 24))
2180+ >a : Symbol(a, Decl(genericDefaults.ts, 468 , 24))
21452181
21462182type t01<T, U = T> = { a: [T, U]; }
2147- >t01 : Symbol(t01, Decl(genericDefaults.ts, 461 , 34))
2148- >T : Symbol(T, Decl(genericDefaults.ts, 463 , 9))
2149- >U : Symbol(U, Decl(genericDefaults.ts, 463 , 11))
2150- >T : Symbol(T, Decl(genericDefaults.ts, 463 , 9))
2151- >a : Symbol(a, Decl(genericDefaults.ts, 463 , 22))
2152- >T : Symbol(T, Decl(genericDefaults.ts, 463 , 9))
2153- >U : Symbol(U, Decl(genericDefaults.ts, 463 , 11))
2183+ >t01 : Symbol(t01, Decl(genericDefaults.ts, 470 , 34))
2184+ >T : Symbol(T, Decl(genericDefaults.ts, 472 , 9))
2185+ >U : Symbol(U, Decl(genericDefaults.ts, 472 , 11))
2186+ >T : Symbol(T, Decl(genericDefaults.ts, 472 , 9))
2187+ >a : Symbol(a, Decl(genericDefaults.ts, 472 , 22))
2188+ >T : Symbol(T, Decl(genericDefaults.ts, 472 , 9))
2189+ >U : Symbol(U, Decl(genericDefaults.ts, 472 , 11))
21542190
21552191const t01c00 = (<t01<number>>x).a;
2156- >t01c00 : Symbol(t01c00, Decl(genericDefaults.ts, 464 , 5))
2157- >(<t01<number>>x).a : Symbol(a, Decl(genericDefaults.ts, 463 , 22))
2158- >t01 : Symbol(t01, Decl(genericDefaults.ts, 461 , 34))
2192+ >t01c00 : Symbol(t01c00, Decl(genericDefaults.ts, 473 , 5))
2193+ >(<t01<number>>x).a : Symbol(a, Decl(genericDefaults.ts, 472 , 22))
2194+ >t01 : Symbol(t01, Decl(genericDefaults.ts, 470 , 34))
21592195>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2160- >a : Symbol(a, Decl(genericDefaults.ts, 463 , 22))
2196+ >a : Symbol(a, Decl(genericDefaults.ts, 472 , 22))
21612197
21622198const t01c01 = (<t01<number, string>>x).a;
2163- >t01c01 : Symbol(t01c01, Decl(genericDefaults.ts, 465 , 5))
2164- >(<t01<number, string>>x).a : Symbol(a, Decl(genericDefaults.ts, 463 , 22))
2165- >t01 : Symbol(t01, Decl(genericDefaults.ts, 461 , 34))
2199+ >t01c01 : Symbol(t01c01, Decl(genericDefaults.ts, 474 , 5))
2200+ >(<t01<number, string>>x).a : Symbol(a, Decl(genericDefaults.ts, 472 , 22))
2201+ >t01 : Symbol(t01, Decl(genericDefaults.ts, 470 , 34))
21662202>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2167- >a : Symbol(a, Decl(genericDefaults.ts, 463 , 22))
2203+ >a : Symbol(a, Decl(genericDefaults.ts, 472 , 22))
21682204
21692205type t02<T extends number, U = T> = { a: [T, U]; }
2170- >t02 : Symbol(t02, Decl(genericDefaults.ts, 465 , 42))
2171- >T : Symbol(T, Decl(genericDefaults.ts, 467 , 9))
2172- >U : Symbol(U, Decl(genericDefaults.ts, 467 , 26))
2173- >T : Symbol(T, Decl(genericDefaults.ts, 467 , 9))
2174- >a : Symbol(a, Decl(genericDefaults.ts, 467 , 37))
2175- >T : Symbol(T, Decl(genericDefaults.ts, 467 , 9))
2176- >U : Symbol(U, Decl(genericDefaults.ts, 467 , 26))
2206+ >t02 : Symbol(t02, Decl(genericDefaults.ts, 474 , 42))
2207+ >T : Symbol(T, Decl(genericDefaults.ts, 476 , 9))
2208+ >U : Symbol(U, Decl(genericDefaults.ts, 476 , 26))
2209+ >T : Symbol(T, Decl(genericDefaults.ts, 476 , 9))
2210+ >a : Symbol(a, Decl(genericDefaults.ts, 476 , 37))
2211+ >T : Symbol(T, Decl(genericDefaults.ts, 476 , 9))
2212+ >U : Symbol(U, Decl(genericDefaults.ts, 476 , 26))
21772213
21782214const t02c00 = (<t02<number>>x).a;
2179- >t02c00 : Symbol(t02c00, Decl(genericDefaults.ts, 468 , 5))
2180- >(<t02<number>>x).a : Symbol(a, Decl(genericDefaults.ts, 467 , 37))
2181- >t02 : Symbol(t02, Decl(genericDefaults.ts, 465 , 42))
2215+ >t02c00 : Symbol(t02c00, Decl(genericDefaults.ts, 477 , 5))
2216+ >(<t02<number>>x).a : Symbol(a, Decl(genericDefaults.ts, 476 , 37))
2217+ >t02 : Symbol(t02, Decl(genericDefaults.ts, 474 , 42))
21822218>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2183- >a : Symbol(a, Decl(genericDefaults.ts, 467 , 37))
2219+ >a : Symbol(a, Decl(genericDefaults.ts, 476 , 37))
21842220
21852221const t02c01 = (<t02<1>>x).a;
2186- >t02c01 : Symbol(t02c01, Decl(genericDefaults.ts, 469 , 5))
2187- >(<t02<1>>x).a : Symbol(a, Decl(genericDefaults.ts, 467 , 37))
2188- >t02 : Symbol(t02, Decl(genericDefaults.ts, 465 , 42))
2222+ >t02c01 : Symbol(t02c01, Decl(genericDefaults.ts, 478 , 5))
2223+ >(<t02<1>>x).a : Symbol(a, Decl(genericDefaults.ts, 476 , 37))
2224+ >t02 : Symbol(t02, Decl(genericDefaults.ts, 474 , 42))
21892225>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2190- >a : Symbol(a, Decl(genericDefaults.ts, 467 , 37))
2226+ >a : Symbol(a, Decl(genericDefaults.ts, 476 , 37))
21912227
21922228const t02c02 = (<t02<number, number>>x).a;
2193- >t02c02 : Symbol(t02c02, Decl(genericDefaults.ts, 470 , 5))
2194- >(<t02<number, number>>x).a : Symbol(a, Decl(genericDefaults.ts, 467 , 37))
2195- >t02 : Symbol(t02, Decl(genericDefaults.ts, 465 , 42))
2229+ >t02c02 : Symbol(t02c02, Decl(genericDefaults.ts, 479 , 5))
2230+ >(<t02<number, number>>x).a : Symbol(a, Decl(genericDefaults.ts, 476 , 37))
2231+ >t02 : Symbol(t02, Decl(genericDefaults.ts, 474 , 42))
21962232>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2197- >a : Symbol(a, Decl(genericDefaults.ts, 467 , 37))
2233+ >a : Symbol(a, Decl(genericDefaults.ts, 476 , 37))
21982234
21992235const t02c03 = (<t02<1, number>>x).a;
2200- >t02c03 : Symbol(t02c03, Decl(genericDefaults.ts, 471 , 5))
2201- >(<t02<1, number>>x).a : Symbol(a, Decl(genericDefaults.ts, 467 , 37))
2202- >t02 : Symbol(t02, Decl(genericDefaults.ts, 465 , 42))
2236+ >t02c03 : Symbol(t02c03, Decl(genericDefaults.ts, 480 , 5))
2237+ >(<t02<1, number>>x).a : Symbol(a, Decl(genericDefaults.ts, 476 , 37))
2238+ >t02 : Symbol(t02, Decl(genericDefaults.ts, 474 , 42))
22032239>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2204- >a : Symbol(a, Decl(genericDefaults.ts, 467 , 37))
2240+ >a : Symbol(a, Decl(genericDefaults.ts, 476 , 37))
22052241
22062242const t02c04 = (<t02<number, 1>>x).a;
2207- >t02c04 : Symbol(t02c04, Decl(genericDefaults.ts, 472 , 5))
2208- >(<t02<number, 1>>x).a : Symbol(a, Decl(genericDefaults.ts, 467 , 37))
2209- >t02 : Symbol(t02, Decl(genericDefaults.ts, 465 , 42))
2243+ >t02c04 : Symbol(t02c04, Decl(genericDefaults.ts, 481 , 5))
2244+ >(<t02<number, 1>>x).a : Symbol(a, Decl(genericDefaults.ts, 476 , 37))
2245+ >t02 : Symbol(t02, Decl(genericDefaults.ts, 474 , 42))
22102246>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2211- >a : Symbol(a, Decl(genericDefaults.ts, 467 , 37))
2247+ >a : Symbol(a, Decl(genericDefaults.ts, 476 , 37))
22122248
22132249type t03<T extends number, U extends T = T> = { a: [T, U]; }
2214- >t03 : Symbol(t03, Decl(genericDefaults.ts, 472 , 37))
2215- >T : Symbol(T, Decl(genericDefaults.ts, 474 , 9))
2216- >U : Symbol(U, Decl(genericDefaults.ts, 474 , 26))
2217- >T : Symbol(T, Decl(genericDefaults.ts, 474 , 9))
2218- >T : Symbol(T, Decl(genericDefaults.ts, 474 , 9))
2219- >a : Symbol(a, Decl(genericDefaults.ts, 474 , 47))
2220- >T : Symbol(T, Decl(genericDefaults.ts, 474 , 9))
2221- >U : Symbol(U, Decl(genericDefaults.ts, 474 , 26))
2250+ >t03 : Symbol(t03, Decl(genericDefaults.ts, 481 , 37))
2251+ >T : Symbol(T, Decl(genericDefaults.ts, 483 , 9))
2252+ >U : Symbol(U, Decl(genericDefaults.ts, 483 , 26))
2253+ >T : Symbol(T, Decl(genericDefaults.ts, 483 , 9))
2254+ >T : Symbol(T, Decl(genericDefaults.ts, 483 , 9))
2255+ >a : Symbol(a, Decl(genericDefaults.ts, 483 , 47))
2256+ >T : Symbol(T, Decl(genericDefaults.ts, 483 , 9))
2257+ >U : Symbol(U, Decl(genericDefaults.ts, 483 , 26))
22222258
22232259const t03c00 = (<t03<number>>x).a;
2224- >t03c00 : Symbol(t03c00, Decl(genericDefaults.ts, 475 , 5))
2225- >(<t03<number>>x).a : Symbol(a, Decl(genericDefaults.ts, 474 , 47))
2226- >t03 : Symbol(t03, Decl(genericDefaults.ts, 472 , 37))
2260+ >t03c00 : Symbol(t03c00, Decl(genericDefaults.ts, 484 , 5))
2261+ >(<t03<number>>x).a : Symbol(a, Decl(genericDefaults.ts, 483 , 47))
2262+ >t03 : Symbol(t03, Decl(genericDefaults.ts, 481 , 37))
22272263>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2228- >a : Symbol(a, Decl(genericDefaults.ts, 474 , 47))
2264+ >a : Symbol(a, Decl(genericDefaults.ts, 483 , 47))
22292265
22302266const t03c01 = (<t03<1>>x).a;
2231- >t03c01 : Symbol(t03c01, Decl(genericDefaults.ts, 476 , 5))
2232- >(<t03<1>>x).a : Symbol(a, Decl(genericDefaults.ts, 474 , 47))
2233- >t03 : Symbol(t03, Decl(genericDefaults.ts, 472 , 37))
2267+ >t03c01 : Symbol(t03c01, Decl(genericDefaults.ts, 485 , 5))
2268+ >(<t03<1>>x).a : Symbol(a, Decl(genericDefaults.ts, 483 , 47))
2269+ >t03 : Symbol(t03, Decl(genericDefaults.ts, 481 , 37))
22342270>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2235- >a : Symbol(a, Decl(genericDefaults.ts, 474 , 47))
2271+ >a : Symbol(a, Decl(genericDefaults.ts, 483 , 47))
22362272
22372273const t03c02 = (<t03<number, number>>x).a;
2238- >t03c02 : Symbol(t03c02, Decl(genericDefaults.ts, 477 , 5))
2239- >(<t03<number, number>>x).a : Symbol(a, Decl(genericDefaults.ts, 474 , 47))
2240- >t03 : Symbol(t03, Decl(genericDefaults.ts, 472 , 37))
2274+ >t03c02 : Symbol(t03c02, Decl(genericDefaults.ts, 486 , 5))
2275+ >(<t03<number, number>>x).a : Symbol(a, Decl(genericDefaults.ts, 483 , 47))
2276+ >t03 : Symbol(t03, Decl(genericDefaults.ts, 481 , 37))
22412277>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2242- >a : Symbol(a, Decl(genericDefaults.ts, 474 , 47))
2278+ >a : Symbol(a, Decl(genericDefaults.ts, 483 , 47))
22432279
22442280const t03c03 = (<t03<1, 1>>x).a;
2245- >t03c03 : Symbol(t03c03, Decl(genericDefaults.ts, 478 , 5))
2246- >(<t03<1, 1>>x).a : Symbol(a, Decl(genericDefaults.ts, 474 , 47))
2247- >t03 : Symbol(t03, Decl(genericDefaults.ts, 472 , 37))
2281+ >t03c03 : Symbol(t03c03, Decl(genericDefaults.ts, 487 , 5))
2282+ >(<t03<1, 1>>x).a : Symbol(a, Decl(genericDefaults.ts, 483 , 47))
2283+ >t03 : Symbol(t03, Decl(genericDefaults.ts, 481 , 37))
22482284>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2249- >a : Symbol(a, Decl(genericDefaults.ts, 474 , 47))
2285+ >a : Symbol(a, Decl(genericDefaults.ts, 483 , 47))
22502286
22512287const t03c04 = (<t03<number, 1>>x).a;
2252- >t03c04 : Symbol(t03c04, Decl(genericDefaults.ts, 479 , 5))
2253- >(<t03<number, 1>>x).a : Symbol(a, Decl(genericDefaults.ts, 474 , 47))
2254- >t03 : Symbol(t03, Decl(genericDefaults.ts, 472 , 37))
2288+ >t03c04 : Symbol(t03c04, Decl(genericDefaults.ts, 488 , 5))
2289+ >(<t03<number, 1>>x).a : Symbol(a, Decl(genericDefaults.ts, 483 , 47))
2290+ >t03 : Symbol(t03, Decl(genericDefaults.ts, 481 , 37))
22552291>x : Symbol(x, Decl(genericDefaults.ts, 13, 13))
2256- >a : Symbol(a, Decl(genericDefaults.ts, 474 , 47))
2292+ >a : Symbol(a, Decl(genericDefaults.ts, 483 , 47))
22572293
0 commit comments