mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Add regression test
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
//// [inKeywordAndUnknown.ts]
|
||||
// Repro from #50531
|
||||
|
||||
function f(x: {}, y: unknown) {
|
||||
if (!("a" in x)) {
|
||||
return;
|
||||
}
|
||||
x; // {}
|
||||
if (!y) {
|
||||
return;
|
||||
}
|
||||
y; // {}
|
||||
if (!("a" in y)) {
|
||||
return;
|
||||
}
|
||||
y; // {}
|
||||
}
|
||||
|
||||
|
||||
//// [inKeywordAndUnknown.js]
|
||||
"use strict";
|
||||
// Repro from #50531
|
||||
function f(x, y) {
|
||||
if (!("a" in x)) {
|
||||
return;
|
||||
}
|
||||
x; // {}
|
||||
if (!y) {
|
||||
return;
|
||||
}
|
||||
y; // {}
|
||||
if (!("a" in y)) {
|
||||
return;
|
||||
}
|
||||
y; // {}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
=== tests/cases/compiler/inKeywordAndUnknown.ts ===
|
||||
// Repro from #50531
|
||||
|
||||
function f(x: {}, y: unknown) {
|
||||
>f : Symbol(f, Decl(inKeywordAndUnknown.ts, 0, 0))
|
||||
>x : Symbol(x, Decl(inKeywordAndUnknown.ts, 2, 11))
|
||||
>y : Symbol(y, Decl(inKeywordAndUnknown.ts, 2, 17))
|
||||
|
||||
if (!("a" in x)) {
|
||||
>x : Symbol(x, Decl(inKeywordAndUnknown.ts, 2, 11))
|
||||
|
||||
return;
|
||||
}
|
||||
x; // {}
|
||||
>x : Symbol(x, Decl(inKeywordAndUnknown.ts, 2, 11))
|
||||
|
||||
if (!y) {
|
||||
>y : Symbol(y, Decl(inKeywordAndUnknown.ts, 2, 17))
|
||||
|
||||
return;
|
||||
}
|
||||
y; // {}
|
||||
>y : Symbol(y, Decl(inKeywordAndUnknown.ts, 2, 17))
|
||||
|
||||
if (!("a" in y)) {
|
||||
>y : Symbol(y, Decl(inKeywordAndUnknown.ts, 2, 17))
|
||||
|
||||
return;
|
||||
}
|
||||
y; // {}
|
||||
>y : Symbol(y, Decl(inKeywordAndUnknown.ts, 2, 17))
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
=== tests/cases/compiler/inKeywordAndUnknown.ts ===
|
||||
// Repro from #50531
|
||||
|
||||
function f(x: {}, y: unknown) {
|
||||
>f : (x: {}, y: unknown) => void
|
||||
>x : {}
|
||||
>y : unknown
|
||||
|
||||
if (!("a" in x)) {
|
||||
>!("a" in x) : boolean
|
||||
>("a" in x) : boolean
|
||||
>"a" in x : boolean
|
||||
>"a" : "a"
|
||||
>x : {}
|
||||
|
||||
return;
|
||||
}
|
||||
x; // {}
|
||||
>x : {}
|
||||
|
||||
if (!y) {
|
||||
>!y : boolean
|
||||
>y : unknown
|
||||
|
||||
return;
|
||||
}
|
||||
y; // {}
|
||||
>y : {}
|
||||
|
||||
if (!("a" in y)) {
|
||||
>!("a" in y) : boolean
|
||||
>("a" in y) : boolean
|
||||
>"a" in y : boolean
|
||||
>"a" : "a"
|
||||
>y : {}
|
||||
|
||||
return;
|
||||
}
|
||||
y; // {}
|
||||
>y : {}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
// @strict: true
|
||||
|
||||
// Repro from #50531
|
||||
|
||||
function f(x: {}, y: unknown) {
|
||||
if (!("a" in x)) {
|
||||
return;
|
||||
}
|
||||
x; // {}
|
||||
if (!y) {
|
||||
return;
|
||||
}
|
||||
y; // {}
|
||||
if (!("a" in y)) {
|
||||
return;
|
||||
}
|
||||
y; // {}
|
||||
}
|
||||
Reference in New Issue
Block a user