Skip to content

Commit c8091ac

Browse files
committed
Accept new baselines
1 parent 7a07792 commit c8091ac

File tree

4 files changed

+138
-1
lines changed

4 files changed

+138
-1
lines changed

tests/baselines/reference/unknownType1.errors.txt

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,18 @@ tests/cases/conformance/types/unknown/unknownType1.ts(113,9): error TS2322: Type
1717
tests/cases/conformance/types/unknown/unknownType1.ts(114,9): error TS2322: Type 'unknown' is not assignable to type '{} | null | undefined'.
1818
Type 'unknown' is not assignable to type '{}'.
1919
tests/cases/conformance/types/unknown/unknownType1.ts(120,9): error TS2322: Type 'T' is not assignable to type 'object'.
20+
Type 'unknown' is not assignable to type 'object'.
2021
tests/cases/conformance/types/unknown/unknownType1.ts(129,5): error TS2322: Type '123' is not assignable to type '{ [x: string]: unknown; }'.
2122
tests/cases/conformance/types/unknown/unknownType1.ts(149,17): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value.
2223
tests/cases/conformance/types/unknown/unknownType1.ts(155,14): error TS2700: Rest types may only be created from object types.
2324
tests/cases/conformance/types/unknown/unknownType1.ts(161,5): error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
25+
tests/cases/conformance/types/unknown/unknownType1.ts(170,9): error TS2322: Type 'U' is not assignable to type '{}'.
26+
Type 'unknown' is not assignable to type '{}'.
27+
tests/cases/conformance/types/unknown/unknownType1.ts(180,5): error TS2322: Type 'T' is not assignable to type '{}'.
28+
Type 'unknown' is not assignable to type '{}'.
2429

2530

26-
==== tests/cases/conformance/types/unknown/unknownType1.ts (22 errors) ====
31+
==== tests/cases/conformance/types/unknown/unknownType1.ts (24 errors) ====
2732
// In an intersection everything absorbs unknown
2833

2934
type T00 = unknown & null; // null
@@ -181,6 +186,7 @@ tests/cases/conformance/types/unknown/unknownType1.ts(161,5): error TS2564: Prop
181186
let y: object = x; // Error
182187
~
183188
!!! error TS2322: Type 'T' is not assignable to type 'object'.
189+
!!! error TS2322: Type 'unknown' is not assignable to type 'object'.
184190
}
185191

186192
// Anything but primitive assignable to { [x: string]: unknown }
@@ -233,4 +239,27 @@ tests/cases/conformance/types/unknown/unknownType1.ts(161,5): error TS2564: Prop
233239
b: unknown;
234240
c: any;
235241
}
242+
243+
// Type parameter with explicit 'unknown' constraint not assignable to '{}'
244+
245+
function f30<T, U extends unknown>(t: T, u: U) {
246+
let x: {} = t;
247+
let y: {} = u;
248+
~
249+
!!! error TS2322: Type 'U' is not assignable to type '{}'.
250+
!!! error TS2322: Type 'unknown' is not assignable to type '{}'.
251+
}
252+
253+
// Repro from #26796
254+
255+
type Test1 = [unknown] extends [{}] ? true : false; // false
256+
type IsDefinitelyDefined<T extends unknown> = [T] extends [{}] ? true : false;
257+
type Test2 = IsDefinitelyDefined<unknown>; // false
258+
259+
function oops<T extends unknown>(arg: T): {} {
260+
return arg; // Error
261+
~~~~~~~~~~~
262+
!!! error TS2322: Type 'T' is not assignable to type '{}'.
263+
!!! error TS2322: Type 'unknown' is not assignable to type '{}'.
264+
}
236265

tests/baselines/reference/unknownType1.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,23 @@ class C1 {
163163
b: unknown;
164164
c: any;
165165
}
166+
167+
// Type parameter with explicit 'unknown' constraint not assignable to '{}'
168+
169+
function f30<T, U extends unknown>(t: T, u: U) {
170+
let x: {} = t;
171+
let y: {} = u;
172+
}
173+
174+
// Repro from #26796
175+
176+
type Test1 = [unknown] extends [{}] ? true : false; // false
177+
type IsDefinitelyDefined<T extends unknown> = [T] extends [{}] ? true : false;
178+
type Test2 = IsDefinitelyDefined<unknown>; // false
179+
180+
function oops<T extends unknown>(arg: T): {} {
181+
return arg; // Error
182+
}
166183

167184

168185
//// [unknownType1.js]
@@ -276,3 +293,11 @@ var C1 = /** @class */ (function () {
276293
}
277294
return C1;
278295
}());
296+
// Type parameter with explicit 'unknown' constraint not assignable to '{}'
297+
function f30(t, u) {
298+
var x = t;
299+
var y = u;
300+
}
301+
function oops(arg) {
302+
return arg; // Error
303+
}

tests/baselines/reference/unknownType1.symbols

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,3 +407,47 @@ class C1 {
407407
>c : Symbol(C1.c, Decl(unknownType1.ts, 161, 15))
408408
}
409409

410+
// Type parameter with explicit 'unknown' constraint not assignable to '{}'
411+
412+
function f30<T, U extends unknown>(t: T, u: U) {
413+
>f30 : Symbol(f30, Decl(unknownType1.ts, 163, 1))
414+
>T : Symbol(T, Decl(unknownType1.ts, 167, 13))
415+
>U : Symbol(U, Decl(unknownType1.ts, 167, 15))
416+
>t : Symbol(t, Decl(unknownType1.ts, 167, 35))
417+
>T : Symbol(T, Decl(unknownType1.ts, 167, 13))
418+
>u : Symbol(u, Decl(unknownType1.ts, 167, 40))
419+
>U : Symbol(U, Decl(unknownType1.ts, 167, 15))
420+
421+
let x: {} = t;
422+
>x : Symbol(x, Decl(unknownType1.ts, 168, 7))
423+
>t : Symbol(t, Decl(unknownType1.ts, 167, 35))
424+
425+
let y: {} = u;
426+
>y : Symbol(y, Decl(unknownType1.ts, 169, 7))
427+
>u : Symbol(u, Decl(unknownType1.ts, 167, 40))
428+
}
429+
430+
// Repro from #26796
431+
432+
type Test1 = [unknown] extends [{}] ? true : false; // false
433+
>Test1 : Symbol(Test1, Decl(unknownType1.ts, 170, 1))
434+
435+
type IsDefinitelyDefined<T extends unknown> = [T] extends [{}] ? true : false;
436+
>IsDefinitelyDefined : Symbol(IsDefinitelyDefined, Decl(unknownType1.ts, 174, 51))
437+
>T : Symbol(T, Decl(unknownType1.ts, 175, 25))
438+
>T : Symbol(T, Decl(unknownType1.ts, 175, 25))
439+
440+
type Test2 = IsDefinitelyDefined<unknown>; // false
441+
>Test2 : Symbol(Test2, Decl(unknownType1.ts, 175, 78))
442+
>IsDefinitelyDefined : Symbol(IsDefinitelyDefined, Decl(unknownType1.ts, 174, 51))
443+
444+
function oops<T extends unknown>(arg: T): {} {
445+
>oops : Symbol(oops, Decl(unknownType1.ts, 176, 42))
446+
>T : Symbol(T, Decl(unknownType1.ts, 178, 14))
447+
>arg : Symbol(arg, Decl(unknownType1.ts, 178, 33))
448+
>T : Symbol(T, Decl(unknownType1.ts, 178, 14))
449+
450+
return arg; // Error
451+
>arg : Symbol(arg, Decl(unknownType1.ts, 178, 33))
452+
}
453+

tests/baselines/reference/unknownType1.types

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,3 +453,42 @@ class C1 {
453453
>c : any
454454
}
455455

456+
// Type parameter with explicit 'unknown' constraint not assignable to '{}'
457+
458+
function f30<T, U extends unknown>(t: T, u: U) {
459+
>f30 : <T, U extends unknown>(t: T, u: U) => void
460+
>t : T
461+
>u : U
462+
463+
let x: {} = t;
464+
>x : {}
465+
>t : T
466+
467+
let y: {} = u;
468+
>y : {}
469+
>u : U
470+
}
471+
472+
// Repro from #26796
473+
474+
type Test1 = [unknown] extends [{}] ? true : false; // false
475+
>Test1 : false
476+
>true : true
477+
>false : false
478+
479+
type IsDefinitelyDefined<T extends unknown> = [T] extends [{}] ? true : false;
480+
>IsDefinitelyDefined : IsDefinitelyDefined<T>
481+
>true : true
482+
>false : false
483+
484+
type Test2 = IsDefinitelyDefined<unknown>; // false
485+
>Test2 : false
486+
487+
function oops<T extends unknown>(arg: T): {} {
488+
>oops : <T extends unknown>(arg: T) => {}
489+
>arg : T
490+
491+
return arg; // Error
492+
>arg : T
493+
}
494+

0 commit comments

Comments
 (0)