Adding selected tests from #6196

This commit is contained in:
Anders Hejlsberg 2016-07-06 21:00:47 -07:00
parent 868d5e602f
commit 82c26cd1ef
11 changed files with 192 additions and 0 deletions

View File

@ -0,0 +1,3 @@
var a = "foo" === "bar" as string;
var b = "foo" !== ("bar" as string);
var c = "foo" == (<any>"bar");

View File

@ -0,0 +1,6 @@
type EnhancedString = string & { enhancements: any };
var a = "foo" === "bar" as "baz";
var b = "foo" !== ("bar" as "foo");
var c = "foo" == (<number>"bar");
var d = "foo" === ("bar" as EnhancedString);

View File

@ -0,0 +1,22 @@
let x: "foo";
let y: "foo" | "bar";
let b: boolean;
b = x === y;
b = "foo" === y
b = y === "foo";
b = "foo" === "bar";
b = "bar" === x;
b = x === "bar";
b = y === "bar";
b = "bar" === y;
b = x !== y;
b = "foo" !== y
b = y !== "foo";
b = "foo" !== "bar";
b = "bar" !== x;
b = x !== "bar";
b = y !== "bar";
b = "bar" !== y;

View File

@ -0,0 +1,22 @@
let x: "foo";
let y: "foo" | "bar";
let b: boolean;
b = x == y;
b = "foo" == y
b = y == "foo";
b = "foo" == "bar";
b = "bar" == x;
b = x == "bar";
b = y == "bar";
b = "bar" == y;
b = x != y;
b = "foo" != y
b = y != "foo";
b = "foo" != "bar";
b = "bar" != x;
b = x != "bar";
b = y != "bar";
b = "bar" != y;

View File

@ -0,0 +1,29 @@
interface Runnable {
isRunning: boolean;
}
interface Refrigerator extends Runnable {
makesFoodGoBrrr: boolean;
}
let x: string;
let y: "foo" | Refrigerator;
let b: boolean;
b = x === y;
b = "foo" === y
b = y === "foo";
b = "foo" === "bar";
b = "bar" === x;
b = x === "bar";
b = y === "bar";
b = "bar" === y;
b = x !== y;
b = "foo" !== y
b = y !== "foo";
b = "foo" !== "bar";
b = "bar" !== x;
b = x !== "bar";
b = y !== "bar";
b = "bar" !== y;

View File

@ -0,0 +1,29 @@
interface Runnable {
isRunning: boolean;
}
interface Refrigerator extends Runnable {
makesFoodGoBrrr: boolean;
}
let x: string;
let y: "foo" | Refrigerator;
let b: boolean;
b = x == y;
b = "foo" == y
b = y == "foo";
b = "foo" == "bar";
b = "bar" == x;
b = x == "bar";
b = y == "bar";
b = "bar" == y;
b = x != y;
b = "foo" != y
b = y != "foo";
b = "foo" != "bar";
b = "bar" != x;
b = x != "bar";
b = y != "bar";
b = "bar" != y;

View File

@ -0,0 +1,12 @@
let x: "foo";
let y: "foo" | "bar";
switch (x) {
case "foo":
break;
case "bar":
break;
case y:
y;
break;
}

View File

@ -0,0 +1,14 @@
let x: "foo";
let y: "foo" | "bar";
let b: boolean;
b = x == y;
b = "foo" == y
b = y == "foo";
b = "foo" == "bar";
b = x != y;
b = "foo" != y
b = y != "foo";
b = "foo" != "bar";

View File

@ -0,0 +1,26 @@
let x: "foo";
let y: "foo" | "bar";
let z: "bar";
declare function randBool(): boolean;
switch (x) {
case randBool() ? "foo" : "baz":
break;
case (randBool() ? ("bar") : "baz" ? "bar" : "baz"):
break;
case (("bar")):
break;
case (x, y, ("baz")):
x;
y;
break;
case (("foo" || ("bar"))):
break;
case (("bar" || ("baz"))):
break;
case z || "baz":
case "baz" || z:
z;
break;
}

View File

@ -0,0 +1,21 @@
let x: "foo";
let y: "foo" | "bar";
declare function randBool(): boolean;
switch (y) {
case "foo", x:
break;
case x, "foo":
break;
case x, "baz":
break;
case "baz", x:
break;
case "baz" && "bar":
break;
case "baz" && ("foo" || "bar"):
break;
case "bar" && ("baz" || "bar"):
break;
}

View File

@ -0,0 +1,8 @@
let fooOrBar: "foo" | "bar";
let a = "foo" as "bar";
let b = "bar" as "foo";
let c = fooOrBar as "foo";
let d = fooOrBar as "bar";
let e = fooOrBar as "baz";
let f = "baz" as typeof fooOrBar;