From bec0fdac23508942129d3ab3107dce6ae791807c Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 9 Feb 2023 11:04:07 -0800 Subject: [PATCH] Add test for already fixed issue 49778 (#52668) --- .../relatedViaDiscriminatedTypeNoError2.js | 17 +++++++++ ...elatedViaDiscriminatedTypeNoError2.symbols | 37 +++++++++++++++++++ .../relatedViaDiscriminatedTypeNoError2.types | 32 ++++++++++++++++ .../relatedViaDiscriminatedTypeNoError2.ts | 11 ++++++ 4 files changed, 97 insertions(+) create mode 100644 tests/baselines/reference/relatedViaDiscriminatedTypeNoError2.js create mode 100644 tests/baselines/reference/relatedViaDiscriminatedTypeNoError2.symbols create mode 100644 tests/baselines/reference/relatedViaDiscriminatedTypeNoError2.types create mode 100644 tests/cases/compiler/relatedViaDiscriminatedTypeNoError2.ts diff --git a/tests/baselines/reference/relatedViaDiscriminatedTypeNoError2.js b/tests/baselines/reference/relatedViaDiscriminatedTypeNoError2.js new file mode 100644 index 00000000000..e8db395b591 --- /dev/null +++ b/tests/baselines/reference/relatedViaDiscriminatedTypeNoError2.js @@ -0,0 +1,17 @@ +//// [relatedViaDiscriminatedTypeNoError2.ts] +type AObjOrBObj = { name: "A" } | { name: "B" }; +type AOrBObj = { name: "A" | "B" }; +type Generic = T; + +type T = Generic; + +declare let x: AObjOrBObj; +declare let y: AOrBObj; +x = y; +y = x; + + +//// [relatedViaDiscriminatedTypeNoError2.js] +"use strict"; +x = y; +y = x; diff --git a/tests/baselines/reference/relatedViaDiscriminatedTypeNoError2.symbols b/tests/baselines/reference/relatedViaDiscriminatedTypeNoError2.symbols new file mode 100644 index 00000000000..18aabf3e33e --- /dev/null +++ b/tests/baselines/reference/relatedViaDiscriminatedTypeNoError2.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/relatedViaDiscriminatedTypeNoError2.ts === +type AObjOrBObj = { name: "A" } | { name: "B" }; +>AObjOrBObj : Symbol(AObjOrBObj, Decl(relatedViaDiscriminatedTypeNoError2.ts, 0, 0)) +>name : Symbol(name, Decl(relatedViaDiscriminatedTypeNoError2.ts, 0, 19)) +>name : Symbol(name, Decl(relatedViaDiscriminatedTypeNoError2.ts, 0, 35)) + +type AOrBObj = { name: "A" | "B" }; +>AOrBObj : Symbol(AOrBObj, Decl(relatedViaDiscriminatedTypeNoError2.ts, 0, 48)) +>name : Symbol(name, Decl(relatedViaDiscriminatedTypeNoError2.ts, 1, 16)) + +type Generic = T; +>Generic : Symbol(Generic, Decl(relatedViaDiscriminatedTypeNoError2.ts, 1, 35)) +>T : Symbol(T, Decl(relatedViaDiscriminatedTypeNoError2.ts, 2, 13)) +>AObjOrBObj : Symbol(AObjOrBObj, Decl(relatedViaDiscriminatedTypeNoError2.ts, 0, 0)) +>T : Symbol(T, Decl(relatedViaDiscriminatedTypeNoError2.ts, 2, 13)) + +type T = Generic; +>T : Symbol(T, Decl(relatedViaDiscriminatedTypeNoError2.ts, 2, 39)) +>Generic : Symbol(Generic, Decl(relatedViaDiscriminatedTypeNoError2.ts, 1, 35)) +>AOrBObj : Symbol(AOrBObj, Decl(relatedViaDiscriminatedTypeNoError2.ts, 0, 48)) + +declare let x: AObjOrBObj; +>x : Symbol(x, Decl(relatedViaDiscriminatedTypeNoError2.ts, 6, 11)) +>AObjOrBObj : Symbol(AObjOrBObj, Decl(relatedViaDiscriminatedTypeNoError2.ts, 0, 0)) + +declare let y: AOrBObj; +>y : Symbol(y, Decl(relatedViaDiscriminatedTypeNoError2.ts, 7, 11)) +>AOrBObj : Symbol(AOrBObj, Decl(relatedViaDiscriminatedTypeNoError2.ts, 0, 48)) + +x = y; +>x : Symbol(x, Decl(relatedViaDiscriminatedTypeNoError2.ts, 6, 11)) +>y : Symbol(y, Decl(relatedViaDiscriminatedTypeNoError2.ts, 7, 11)) + +y = x; +>y : Symbol(y, Decl(relatedViaDiscriminatedTypeNoError2.ts, 7, 11)) +>x : Symbol(x, Decl(relatedViaDiscriminatedTypeNoError2.ts, 6, 11)) + diff --git a/tests/baselines/reference/relatedViaDiscriminatedTypeNoError2.types b/tests/baselines/reference/relatedViaDiscriminatedTypeNoError2.types new file mode 100644 index 00000000000..c074046d012 --- /dev/null +++ b/tests/baselines/reference/relatedViaDiscriminatedTypeNoError2.types @@ -0,0 +1,32 @@ +=== tests/cases/compiler/relatedViaDiscriminatedTypeNoError2.ts === +type AObjOrBObj = { name: "A" } | { name: "B" }; +>AObjOrBObj : { name: "A"; } | { name: "B"; } +>name : "A" +>name : "B" + +type AOrBObj = { name: "A" | "B" }; +>AOrBObj : { name: "A" | "B"; } +>name : "A" | "B" + +type Generic = T; +>Generic : T + +type T = Generic; +>T : AOrBObj + +declare let x: AObjOrBObj; +>x : AObjOrBObj + +declare let y: AOrBObj; +>y : AOrBObj + +x = y; +>x = y : AOrBObj +>x : AObjOrBObj +>y : AOrBObj + +y = x; +>y = x : AObjOrBObj +>y : AOrBObj +>x : AObjOrBObj + diff --git a/tests/cases/compiler/relatedViaDiscriminatedTypeNoError2.ts b/tests/cases/compiler/relatedViaDiscriminatedTypeNoError2.ts new file mode 100644 index 00000000000..3404b5b7cfa --- /dev/null +++ b/tests/cases/compiler/relatedViaDiscriminatedTypeNoError2.ts @@ -0,0 +1,11 @@ +// @strict: true +type AObjOrBObj = { name: "A" } | { name: "B" }; +type AOrBObj = { name: "A" | "B" }; +type Generic = T; + +type T = Generic; + +declare let x: AObjOrBObj; +declare let y: AOrBObj; +x = y; +y = x;