From 8a72a19b7ae9fd0429dd837df9b7d2eeb550926a Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Thu, 27 Dec 2018 14:05:24 -1000 Subject: [PATCH] Accept new baselines --- ...UsesConstraintOnCircularDefault.errors.txt | 10 ++++++-- ...tDefaultUsesConstraintOnCircularDefault.js | 23 ++++++++++++++++--- ...ultUsesConstraintOnCircularDefault.symbols | 16 +++++++++++-- ...faultUsesConstraintOnCircularDefault.types | 12 ++++++++-- 4 files changed, 52 insertions(+), 9 deletions(-) diff --git a/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.errors.txt b/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.errors.txt index a886b48d5a2..756c1f9da3e 100644 --- a/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.errors.txt +++ b/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.errors.txt @@ -4,7 +4,7 @@ tests/cases/compiler/typeArgumentDefaultUsesConstraintOnCircularDefault.ts(3,18) ==== tests/cases/compiler/typeArgumentDefaultUsesConstraintOnCircularDefault.ts (2 errors) ==== - type Test = { value: T }; + type Test = { value: T }; // Error ~ !!! error TS2744: Type parameter defaults can only reference previously declared type parameters. @@ -13,5 +13,11 @@ tests/cases/compiler/typeArgumentDefaultUsesConstraintOnCircularDefault.ts(3,18) !!! error TS2322: Type '{ foo: string; }' is not assignable to type 'Test'. !!! error TS2322: Object literal may only specify known properties, and 'foo' does not exist in type 'Test'. - let zzy: Test = { value: {} }; // should error + let zzy: Test = { value: {} }; + + // Simplified repro from #28873 + + class C1 {} + + class C2 = any> {} \ No newline at end of file diff --git a/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.js b/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.js index 296a0063fe2..a50e7cab397 100644 --- a/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.js +++ b/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.js @@ -1,11 +1,28 @@ //// [typeArgumentDefaultUsesConstraintOnCircularDefault.ts] -type Test = { value: T }; +type Test = { value: T }; // Error let zz: Test = { foo: "abc" }; // should error on comparison with Test -let zzy: Test = { value: {} }; // should error +let zzy: Test = { value: {} }; + +// Simplified repro from #28873 + +class C1 {} + +class C2 = any> {} //// [typeArgumentDefaultUsesConstraintOnCircularDefault.js] var zz = { foo: "abc" }; // should error on comparison with Test -var zzy = { value: {} }; // should error +var zzy = { value: {} }; +// Simplified repro from #28873 +var C1 = /** @class */ (function () { + function C1() { + } + return C1; +}()); +var C2 = /** @class */ (function () { + function C2() { + } + return C2; +}()); diff --git a/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.symbols b/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.symbols index 2181e341889..4c227899de9 100644 --- a/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.symbols +++ b/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.symbols @@ -1,5 +1,5 @@ === tests/cases/compiler/typeArgumentDefaultUsesConstraintOnCircularDefault.ts === -type Test = { value: T }; +type Test = { value: T }; // Error >Test : Symbol(Test, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 0, 0)) >T : Symbol(T, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 0, 10)) >T : Symbol(T, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 0, 10)) @@ -11,8 +11,20 @@ let zz: Test = { foo: "abc" }; // should error on comparison with Test >Test : Symbol(Test, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 0, 0)) >foo : Symbol(foo, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 2, 16)) -let zzy: Test = { value: {} }; // should error +let zzy: Test = { value: {} }; >zzy : Symbol(zzy, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 4, 3)) >Test : Symbol(Test, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 0, 0)) >value : Symbol(value, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 4, 17)) +// Simplified repro from #28873 + +class C1 {} +>C1 : Symbol(C1, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 4, 30)) +>T : Symbol(T, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 8, 9)) +>C1 : Symbol(C1, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 4, 30)) + +class C2 = any> {} +>C2 : Symbol(C2, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 8, 31)) +>T : Symbol(T, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 10, 9)) +>C2 : Symbol(C2, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 8, 31)) + diff --git a/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.types b/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.types index 46477c7ffb3..91078dad884 100644 --- a/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.types +++ b/tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.types @@ -1,5 +1,5 @@ === tests/cases/compiler/typeArgumentDefaultUsesConstraintOnCircularDefault.ts === -type Test = { value: T }; +type Test = { value: T }; // Error >Test : Test >value : T @@ -9,9 +9,17 @@ let zz: Test = { foo: "abc" }; // should error on comparison with Test >foo : string >"abc" : "abc" -let zzy: Test = { value: {} }; // should error +let zzy: Test = { value: {} }; >zzy : Test >{ value: {} } : { value: {}; } >value : {} >{} : {} +// Simplified repro from #28873 + +class C1 {} +>C1 : C1 + +class C2 = any> {} +>C2 : C2 +