Adding new test
This commit is contained in:
parent
6beb24edc8
commit
294e13da96
|
@ -0,0 +1,42 @@
|
|||
//// [assignmentNonObjectTypeConstraints.ts]
|
||||
const enum E { A, B, C }
|
||||
|
||||
function foo<T extends number>(x: T) {
|
||||
var y: number = x; // Ok
|
||||
}
|
||||
|
||||
foo(5);
|
||||
foo(E.A);
|
||||
|
||||
class A { a }
|
||||
class B { b }
|
||||
|
||||
function bar<T extends A | B>(x: T) {
|
||||
var y: A | B = x; // Ok
|
||||
}
|
||||
|
||||
bar(new A);
|
||||
bar(new B);
|
||||
|
||||
|
||||
//// [assignmentNonObjectTypeConstraints.js]
|
||||
function foo(x) {
|
||||
var y = x; // Ok
|
||||
}
|
||||
foo(5);
|
||||
foo(0 /* A */);
|
||||
var A = (function () {
|
||||
function A() {
|
||||
}
|
||||
return A;
|
||||
})();
|
||||
var B = (function () {
|
||||
function B() {
|
||||
}
|
||||
return B;
|
||||
})();
|
||||
function bar(x) {
|
||||
var y = x; // Ok
|
||||
}
|
||||
bar(new A);
|
||||
bar(new B);
|
|
@ -0,0 +1,58 @@
|
|||
=== tests/cases/compiler/assignmentNonObjectTypeConstraints.ts ===
|
||||
const enum E { A, B, C }
|
||||
>E : Symbol(E, Decl(assignmentNonObjectTypeConstraints.ts, 0, 0))
|
||||
>A : Symbol(E.A, Decl(assignmentNonObjectTypeConstraints.ts, 0, 14))
|
||||
>B : Symbol(E.B, Decl(assignmentNonObjectTypeConstraints.ts, 0, 17))
|
||||
>C : Symbol(E.C, Decl(assignmentNonObjectTypeConstraints.ts, 0, 20))
|
||||
|
||||
function foo<T extends number>(x: T) {
|
||||
>foo : Symbol(foo, Decl(assignmentNonObjectTypeConstraints.ts, 0, 24))
|
||||
>T : Symbol(T, Decl(assignmentNonObjectTypeConstraints.ts, 2, 13))
|
||||
>x : Symbol(x, Decl(assignmentNonObjectTypeConstraints.ts, 2, 31))
|
||||
>T : Symbol(T, Decl(assignmentNonObjectTypeConstraints.ts, 2, 13))
|
||||
|
||||
var y: number = x; // Ok
|
||||
>y : Symbol(y, Decl(assignmentNonObjectTypeConstraints.ts, 3, 7))
|
||||
>x : Symbol(x, Decl(assignmentNonObjectTypeConstraints.ts, 2, 31))
|
||||
}
|
||||
|
||||
foo(5);
|
||||
>foo : Symbol(foo, Decl(assignmentNonObjectTypeConstraints.ts, 0, 24))
|
||||
|
||||
foo(E.A);
|
||||
>foo : Symbol(foo, Decl(assignmentNonObjectTypeConstraints.ts, 0, 24))
|
||||
>E.A : Symbol(E.A, Decl(assignmentNonObjectTypeConstraints.ts, 0, 14))
|
||||
>E : Symbol(E, Decl(assignmentNonObjectTypeConstraints.ts, 0, 0))
|
||||
>A : Symbol(E.A, Decl(assignmentNonObjectTypeConstraints.ts, 0, 14))
|
||||
|
||||
class A { a }
|
||||
>A : Symbol(A, Decl(assignmentNonObjectTypeConstraints.ts, 7, 9))
|
||||
>a : Symbol(a, Decl(assignmentNonObjectTypeConstraints.ts, 9, 9))
|
||||
|
||||
class B { b }
|
||||
>B : Symbol(B, Decl(assignmentNonObjectTypeConstraints.ts, 9, 13))
|
||||
>b : Symbol(b, Decl(assignmentNonObjectTypeConstraints.ts, 10, 9))
|
||||
|
||||
function bar<T extends A | B>(x: T) {
|
||||
>bar : Symbol(bar, Decl(assignmentNonObjectTypeConstraints.ts, 10, 13))
|
||||
>T : Symbol(T, Decl(assignmentNonObjectTypeConstraints.ts, 12, 13))
|
||||
>A : Symbol(A, Decl(assignmentNonObjectTypeConstraints.ts, 7, 9))
|
||||
>B : Symbol(B, Decl(assignmentNonObjectTypeConstraints.ts, 9, 13))
|
||||
>x : Symbol(x, Decl(assignmentNonObjectTypeConstraints.ts, 12, 30))
|
||||
>T : Symbol(T, Decl(assignmentNonObjectTypeConstraints.ts, 12, 13))
|
||||
|
||||
var y: A | B = x; // Ok
|
||||
>y : Symbol(y, Decl(assignmentNonObjectTypeConstraints.ts, 13, 7))
|
||||
>A : Symbol(A, Decl(assignmentNonObjectTypeConstraints.ts, 7, 9))
|
||||
>B : Symbol(B, Decl(assignmentNonObjectTypeConstraints.ts, 9, 13))
|
||||
>x : Symbol(x, Decl(assignmentNonObjectTypeConstraints.ts, 12, 30))
|
||||
}
|
||||
|
||||
bar(new A);
|
||||
>bar : Symbol(bar, Decl(assignmentNonObjectTypeConstraints.ts, 10, 13))
|
||||
>A : Symbol(A, Decl(assignmentNonObjectTypeConstraints.ts, 7, 9))
|
||||
|
||||
bar(new B);
|
||||
>bar : Symbol(bar, Decl(assignmentNonObjectTypeConstraints.ts, 10, 13))
|
||||
>B : Symbol(B, Decl(assignmentNonObjectTypeConstraints.ts, 9, 13))
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
=== tests/cases/compiler/assignmentNonObjectTypeConstraints.ts ===
|
||||
const enum E { A, B, C }
|
||||
>E : E
|
||||
>A : E
|
||||
>B : E
|
||||
>C : E
|
||||
|
||||
function foo<T extends number>(x: T) {
|
||||
>foo : <T extends number>(x: T) => void
|
||||
>T : T
|
||||
>x : T
|
||||
>T : T
|
||||
|
||||
var y: number = x; // Ok
|
||||
>y : number
|
||||
>x : T
|
||||
}
|
||||
|
||||
foo(5);
|
||||
>foo(5) : void
|
||||
>foo : <T extends number>(x: T) => void
|
||||
>5 : number
|
||||
|
||||
foo(E.A);
|
||||
>foo(E.A) : void
|
||||
>foo : <T extends number>(x: T) => void
|
||||
>E.A : E
|
||||
>E : typeof E
|
||||
>A : E
|
||||
|
||||
class A { a }
|
||||
>A : A
|
||||
>a : any
|
||||
|
||||
class B { b }
|
||||
>B : B
|
||||
>b : any
|
||||
|
||||
function bar<T extends A | B>(x: T) {
|
||||
>bar : <T extends A | B>(x: T) => void
|
||||
>T : T
|
||||
>A : A
|
||||
>B : B
|
||||
>x : T
|
||||
>T : T
|
||||
|
||||
var y: A | B = x; // Ok
|
||||
>y : A | B
|
||||
>A : A
|
||||
>B : B
|
||||
>x : T
|
||||
}
|
||||
|
||||
bar(new A);
|
||||
>bar(new A) : void
|
||||
>bar : <T extends A | B>(x: T) => void
|
||||
>new A : A
|
||||
>A : typeof A
|
||||
|
||||
bar(new B);
|
||||
>bar(new B) : void
|
||||
>bar : <T extends A | B>(x: T) => void
|
||||
>new B : B
|
||||
>B : typeof B
|
||||
|
18
tests/cases/compiler/assignmentNonObjectTypeConstraints.ts
Normal file
18
tests/cases/compiler/assignmentNonObjectTypeConstraints.ts
Normal file
|
@ -0,0 +1,18 @@
|
|||
const enum E { A, B, C }
|
||||
|
||||
function foo<T extends number>(x: T) {
|
||||
var y: number = x; // Ok
|
||||
}
|
||||
|
||||
foo(5);
|
||||
foo(E.A);
|
||||
|
||||
class A { a }
|
||||
class B { b }
|
||||
|
||||
function bar<T extends A | B>(x: T) {
|
||||
var y: A | B = x; // Ok
|
||||
}
|
||||
|
||||
bar(new A);
|
||||
bar(new B);
|
Loading…
Reference in a new issue