Skip to content

Commit

Permalink
Adding selected tests from #6196
Browse files Browse the repository at this point in the history
  • Loading branch information
ahejlsberg committed Jul 7, 2016
1 parent 868d5e6 commit 82c26cd
Show file tree
Hide file tree
Showing 11 changed files with 192 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
var a = "foo" === "bar" as string;
var b = "foo" !== ("bar" as string);
var c = "foo" == (<any>"bar");
Original file line number Diff line number Diff line change
@@ -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);
Original file line number Diff line number Diff line change
@@ -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;

Original file line number Diff line number Diff line change
@@ -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;

Original file line number Diff line number Diff line change
@@ -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;
Original file line number Diff line number Diff line change
@@ -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;
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
let x: "foo";
let y: "foo" | "bar";

switch (x) {
case "foo":
break;
case "bar":
break;
case y:
y;
break;
}
Original file line number Diff line number Diff line change
@@ -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";

Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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;

0 comments on commit 82c26cd

Please sign in to comment.