Skip to content

Commit

Permalink
Add regression test
Browse files Browse the repository at this point in the history
  • Loading branch information
ahejlsberg committed Sep 2, 2022
1 parent 908548e commit 517777d
Show file tree
Hide file tree
Showing 4 changed files with 129 additions and 0 deletions.
36 changes: 36 additions & 0 deletions tests/baselines/reference/inKeywordAndUnknown.js
Original file line number Diff line number Diff line change
@@ -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; // {}
}
33 changes: 33 additions & 0 deletions tests/baselines/reference/inKeywordAndUnknown.symbols
Original file line number Diff line number Diff line change
@@ -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))
}

42 changes: 42 additions & 0 deletions tests/baselines/reference/inKeywordAndUnknown.types
Original file line number Diff line number Diff line change
@@ -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 : {}
}

18 changes: 18 additions & 0 deletions tests/cases/compiler/inKeywordAndUnknown.ts
Original file line number Diff line number Diff line change
@@ -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; // {}
}

0 comments on commit 517777d

Please sign in to comment.