Skip to content

Commit 017c11a

Browse files
committed
Accept new baselines
1 parent 3e93461 commit 017c11a

4 files changed

+183
-0
lines changed

tests/baselines/reference/discriminantPropertyCheck.errors.txt

+22
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,26 @@ tests/cases/compiler/discriminantPropertyCheck.ts(65,9): error TS2532: Object is
106106
}
107107
}
108108
}
109+
110+
// Repro from #29106
111+
112+
const f = (_a: string, _b: string): void => {};
113+
114+
interface A {
115+
a?: string;
116+
b?: string;
117+
}
118+
119+
interface B {
120+
a: string;
121+
b: string;
122+
}
123+
124+
type U = A | B;
125+
126+
const u: U = {} as any;
127+
128+
u.a && u.b && f(u.a, u.b);
129+
130+
u.b && u.a && f(u.a, u.b);
109131

tests/baselines/reference/discriminantPropertyCheck.js

+27
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,28 @@ function func2(inst: Instance) {
9898
}
9999
}
100100
}
101+
102+
// Repro from #29106
103+
104+
const f = (_a: string, _b: string): void => {};
105+
106+
interface A {
107+
a?: string;
108+
b?: string;
109+
}
110+
111+
interface B {
112+
a: string;
113+
b: string;
114+
}
115+
116+
type U = A | B;
117+
118+
const u: U = {} as any;
119+
120+
u.a && u.b && f(u.a, u.b);
121+
122+
u.b && u.a && f(u.a, u.b);
101123

102124

103125
//// [discriminantPropertyCheck.js]
@@ -161,3 +183,8 @@ function func2(inst) {
161183
}
162184
}
163185
}
186+
// Repro from #29106
187+
var f = function (_a, _b) { };
188+
var u = {};
189+
u.a && u.b && f(u.a, u.b);
190+
u.b && u.a && f(u.a, u.b);

tests/baselines/reference/discriminantPropertyCheck.symbols

+66
Original file line numberDiff line numberDiff line change
@@ -311,3 +311,69 @@ function func2(inst: Instance) {
311311
}
312312
}
313313

314+
// Repro from #29106
315+
316+
const f = (_a: string, _b: string): void => {};
317+
>f : Symbol(f, Decl(discriminantPropertyCheck.ts, 102, 5))
318+
>_a : Symbol(_a, Decl(discriminantPropertyCheck.ts, 102, 11))
319+
>_b : Symbol(_b, Decl(discriminantPropertyCheck.ts, 102, 22))
320+
321+
interface A {
322+
>A : Symbol(A, Decl(discriminantPropertyCheck.ts, 102, 47))
323+
324+
a?: string;
325+
>a : Symbol(A.a, Decl(discriminantPropertyCheck.ts, 104, 13))
326+
327+
b?: string;
328+
>b : Symbol(A.b, Decl(discriminantPropertyCheck.ts, 105, 13))
329+
}
330+
331+
interface B {
332+
>B : Symbol(B, Decl(discriminantPropertyCheck.ts, 107, 1))
333+
334+
a: string;
335+
>a : Symbol(B.a, Decl(discriminantPropertyCheck.ts, 109, 13))
336+
337+
b: string;
338+
>b : Symbol(B.b, Decl(discriminantPropertyCheck.ts, 110, 12))
339+
}
340+
341+
type U = A | B;
342+
>U : Symbol(U, Decl(discriminantPropertyCheck.ts, 112, 1))
343+
>A : Symbol(A, Decl(discriminantPropertyCheck.ts, 102, 47))
344+
>B : Symbol(B, Decl(discriminantPropertyCheck.ts, 107, 1))
345+
346+
const u: U = {} as any;
347+
>u : Symbol(u, Decl(discriminantPropertyCheck.ts, 116, 5))
348+
>U : Symbol(U, Decl(discriminantPropertyCheck.ts, 112, 1))
349+
350+
u.a && u.b && f(u.a, u.b);
351+
>u.a : Symbol(a, Decl(discriminantPropertyCheck.ts, 104, 13), Decl(discriminantPropertyCheck.ts, 109, 13))
352+
>u : Symbol(u, Decl(discriminantPropertyCheck.ts, 116, 5))
353+
>a : Symbol(a, Decl(discriminantPropertyCheck.ts, 104, 13), Decl(discriminantPropertyCheck.ts, 109, 13))
354+
>u.b : Symbol(b, Decl(discriminantPropertyCheck.ts, 105, 13), Decl(discriminantPropertyCheck.ts, 110, 12))
355+
>u : Symbol(u, Decl(discriminantPropertyCheck.ts, 116, 5))
356+
>b : Symbol(b, Decl(discriminantPropertyCheck.ts, 105, 13), Decl(discriminantPropertyCheck.ts, 110, 12))
357+
>f : Symbol(f, Decl(discriminantPropertyCheck.ts, 102, 5))
358+
>u.a : Symbol(a, Decl(discriminantPropertyCheck.ts, 104, 13), Decl(discriminantPropertyCheck.ts, 109, 13))
359+
>u : Symbol(u, Decl(discriminantPropertyCheck.ts, 116, 5))
360+
>a : Symbol(a, Decl(discriminantPropertyCheck.ts, 104, 13), Decl(discriminantPropertyCheck.ts, 109, 13))
361+
>u.b : Symbol(b, Decl(discriminantPropertyCheck.ts, 105, 13), Decl(discriminantPropertyCheck.ts, 110, 12))
362+
>u : Symbol(u, Decl(discriminantPropertyCheck.ts, 116, 5))
363+
>b : Symbol(b, Decl(discriminantPropertyCheck.ts, 105, 13), Decl(discriminantPropertyCheck.ts, 110, 12))
364+
365+
u.b && u.a && f(u.a, u.b);
366+
>u.b : Symbol(b, Decl(discriminantPropertyCheck.ts, 105, 13), Decl(discriminantPropertyCheck.ts, 110, 12))
367+
>u : Symbol(u, Decl(discriminantPropertyCheck.ts, 116, 5))
368+
>b : Symbol(b, Decl(discriminantPropertyCheck.ts, 105, 13), Decl(discriminantPropertyCheck.ts, 110, 12))
369+
>u.a : Symbol(a, Decl(discriminantPropertyCheck.ts, 104, 13), Decl(discriminantPropertyCheck.ts, 109, 13))
370+
>u : Symbol(u, Decl(discriminantPropertyCheck.ts, 116, 5))
371+
>a : Symbol(a, Decl(discriminantPropertyCheck.ts, 104, 13), Decl(discriminantPropertyCheck.ts, 109, 13))
372+
>f : Symbol(f, Decl(discriminantPropertyCheck.ts, 102, 5))
373+
>u.a : Symbol(a, Decl(discriminantPropertyCheck.ts, 104, 13), Decl(discriminantPropertyCheck.ts, 109, 13))
374+
>u : Symbol(u, Decl(discriminantPropertyCheck.ts, 116, 5))
375+
>a : Symbol(a, Decl(discriminantPropertyCheck.ts, 104, 13), Decl(discriminantPropertyCheck.ts, 109, 13))
376+
>u.b : Symbol(b, Decl(discriminantPropertyCheck.ts, 105, 13), Decl(discriminantPropertyCheck.ts, 110, 12))
377+
>u : Symbol(u, Decl(discriminantPropertyCheck.ts, 116, 5))
378+
>b : Symbol(b, Decl(discriminantPropertyCheck.ts, 105, 13), Decl(discriminantPropertyCheck.ts, 110, 12))
379+

tests/baselines/reference/discriminantPropertyCheck.types

+68
Original file line numberDiff line numberDiff line change
@@ -310,3 +310,71 @@ function func2(inst: Instance) {
310310
}
311311
}
312312

313+
// Repro from #29106
314+
315+
const f = (_a: string, _b: string): void => {};
316+
>f : (_a: string, _b: string) => void
317+
>(_a: string, _b: string): void => {} : (_a: string, _b: string) => void
318+
>_a : string
319+
>_b : string
320+
321+
interface A {
322+
a?: string;
323+
>a : string | undefined
324+
325+
b?: string;
326+
>b : string | undefined
327+
}
328+
329+
interface B {
330+
a: string;
331+
>a : string
332+
333+
b: string;
334+
>b : string
335+
}
336+
337+
type U = A | B;
338+
>U : U
339+
340+
const u: U = {} as any;
341+
>u : U
342+
>{} as any : any
343+
>{} : {}
344+
345+
u.a && u.b && f(u.a, u.b);
346+
>u.a && u.b && f(u.a, u.b) : void | "" | undefined
347+
>u.a && u.b : string | undefined
348+
>u.a : string | undefined
349+
>u : U
350+
>a : string | undefined
351+
>u.b : string | undefined
352+
>u : U
353+
>b : string | undefined
354+
>f(u.a, u.b) : void
355+
>f : (_a: string, _b: string) => void
356+
>u.a : string
357+
>u : U
358+
>a : string
359+
>u.b : string
360+
>u : U
361+
>b : string
362+
363+
u.b && u.a && f(u.a, u.b);
364+
>u.b && u.a && f(u.a, u.b) : void | "" | undefined
365+
>u.b && u.a : string | undefined
366+
>u.b : string | undefined
367+
>u : U
368+
>b : string | undefined
369+
>u.a : string | undefined
370+
>u : U
371+
>a : string | undefined
372+
>f(u.a, u.b) : void
373+
>f : (_a: string, _b: string) => void
374+
>u.a : string
375+
>u : U
376+
>a : string
377+
>u.b : string
378+
>u : U
379+
>b : string
380+

0 commit comments

Comments
 (0)