Accepted baselines.

This commit is contained in:
Daniel Rosenwasser
2015-09-15 16:35:11 -07:00
parent b10733bb51
commit b7c399cbbc
8 changed files with 378 additions and 0 deletions
@@ -0,0 +1,39 @@
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates01.ts(21,1): error TS2322: Type '(x: any) => x is B' is not assignable to type '(x: any) => x is A'.
Type predicate 'x is B' is not assignable to 'x is A'.
Type 'B' is not assignable to type 'A'.
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates01.ts(22,1): error TS2322: Type '(x: any) => x is A' is not assignable to type '(x: any) => x is B'.
Type predicate 'x is A' is not assignable to 'x is B'.
Type 'A' is not assignable to type 'B'.
==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates01.ts (2 errors) ====
class A {
private a;
}
class B extends A {
private b;
}
function isA(x: any): x is A {
return x instanceof A;
}
function isB(x: any): x is B {
return x instanceof B;
}
let myIsA = isA;
let myIsB = isB;
myIsA = myIsB;
~~~~~
!!! error TS2322: Type '(x: any) => x is B' is not assignable to type '(x: any) => x is A'.
!!! error TS2322: Type predicate 'x is B' is not assignable to 'x is A'.
!!! error TS2322: Type 'B' is not assignable to type 'A'.
myIsB = myIsA;
~~~~~
!!! error TS2322: Type '(x: any) => x is A' is not assignable to type '(x: any) => x is B'.
!!! error TS2322: Type predicate 'x is A' is not assignable to 'x is B'.
!!! error TS2322: Type 'A' is not assignable to type 'B'.
@@ -0,0 +1,65 @@
//// [assignmentCompatForSignaturesWithTypePredicates01.ts]
class A {
private a;
}
class B extends A {
private b;
}
function isA(x: any): x is A {
return x instanceof A;
}
function isB(x: any): x is B {
return x instanceof B;
}
let myIsA = isA;
let myIsB = isB;
myIsA = myIsB;
myIsB = myIsA;
//// [assignmentCompatForSignaturesWithTypePredicates01.js]
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var A = (function () {
function A() {
}
return A;
})();
var B = (function (_super) {
__extends(B, _super);
function B() {
_super.apply(this, arguments);
}
return B;
})(A);
function isA(x) {
return x instanceof A;
}
function isB(x) {
return x instanceof B;
}
var myIsA = isA;
var myIsB = isB;
myIsA = myIsB;
myIsB = myIsA;
//// [assignmentCompatForSignaturesWithTypePredicates01.d.ts]
declare class A {
private a;
}
declare class B extends A {
private b;
}
declare function isA(x: any): x is A;
declare function isB(x: any): x is B;
declare let myIsA: typeof isA;
declare let myIsB: typeof isB;
@@ -0,0 +1,38 @@
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates02.ts(11,25): error TS2304: Cannot find name 'B'.
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates02.ts(17,1): error TS2322: Type '(x: any) => x is any' is not assignable to type '(x: any) => x is A'.
Type predicate 'x is any' is not assignable to 'x is A'.
Type 'any' is not assignable to type 'A'.
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates02.ts(18,1): error TS2322: Type '(x: any) => x is A' is not assignable to type '(x: any) => x is any'.
Type predicate 'x is A' is not assignable to 'x is any'.
Type 'A' is not assignable to type 'any'.
==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates02.ts (3 errors) ====
class A {
private a;
}
function isA(x: any): x is A {
return x instanceof A;
}
function isAny(x: any): x is any {
return x instanceof B;
~
!!! error TS2304: Cannot find name 'B'.
}
let myIsA = isA;
let myIsAny = isAny;
myIsA = myIsAny;
~~~~~
!!! error TS2322: Type '(x: any) => x is any' is not assignable to type '(x: any) => x is A'.
!!! error TS2322: Type predicate 'x is any' is not assignable to 'x is A'.
!!! error TS2322: Type 'any' is not assignable to type 'A'.
myIsAny = myIsA;
~~~~~~~
!!! error TS2322: Type '(x: any) => x is A' is not assignable to type '(x: any) => x is any'.
!!! error TS2322: Type predicate 'x is A' is not assignable to 'x is any'.
!!! error TS2322: Type 'A' is not assignable to type 'any'.
@@ -0,0 +1,46 @@
//// [assignmentCompatForSignaturesWithTypePredicates02.ts]
class A {
private a;
}
function isA(x: any): x is A {
return x instanceof A;
}
function isAny(x: any): x is any {
return x instanceof B;
}
let myIsA = isA;
let myIsAny = isAny;
myIsA = myIsAny;
myIsAny = myIsA;
//// [assignmentCompatForSignaturesWithTypePredicates02.js]
var A = (function () {
function A() {
}
return A;
})();
function isA(x) {
return x instanceof A;
}
function isAny(x) {
return x instanceof B;
}
var myIsA = isA;
var myIsAny = isAny;
myIsA = myIsAny;
myIsAny = myIsA;
//// [assignmentCompatForSignaturesWithTypePredicates02.d.ts]
declare class A {
private a;
}
declare function isA(x: any): x is A;
declare function isAny(x: any): x is any;
declare let myIsA: typeof isA;
declare let myIsAny: typeof isAny;
@@ -0,0 +1,38 @@
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates03.ts(20,1): error TS2322: Type '(x: any) => x is B' is not assignable to type '(x: any) => x is A'.
Type predicate 'x is B' is not assignable to 'x is A'.
Type 'B' is not assignable to type 'A'.
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates03.ts(21,1): error TS2322: Type '(x: any) => x is A' is not assignable to type '(x: any) => x is B'.
Type predicate 'x is A' is not assignable to 'x is B'.
Type 'A' is not assignable to type 'B'.
==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates03.ts (2 errors) ====
interface A {
a?;
}
interface B {
}
function isA(x: any): x is A {
return !!(<A>x).a;
}
function isB(x: any): x is B {
return !!isA(x);
}
let myIsA = isA;
let myIsAny = isB;
myIsA = myIsAny;
~~~~~
!!! error TS2322: Type '(x: any) => x is B' is not assignable to type '(x: any) => x is A'.
!!! error TS2322: Type predicate 'x is B' is not assignable to 'x is A'.
!!! error TS2322: Type 'B' is not assignable to type 'A'.
myIsAny = myIsA;
~~~~~~~
!!! error TS2322: Type '(x: any) => x is A' is not assignable to type '(x: any) => x is B'.
!!! error TS2322: Type predicate 'x is A' is not assignable to 'x is B'.
!!! error TS2322: Type 'A' is not assignable to type 'B'.
@@ -0,0 +1,46 @@
//// [assignmentCompatForSignaturesWithTypePredicates03.ts]
interface A {
a?;
}
interface B {
}
function isA(x: any): x is A {
return !!(<A>x).a;
}
function isB(x: any): x is B {
return !!isA(x);
}
let myIsA = isA;
let myIsAny = isB;
myIsA = myIsAny;
myIsAny = myIsA;
//// [assignmentCompatForSignaturesWithTypePredicates03.js]
function isA(x) {
return !!x.a;
}
function isB(x) {
return !!isA(x);
}
var myIsA = isA;
var myIsAny = isB;
myIsA = myIsAny;
myIsAny = myIsA;
//// [assignmentCompatForSignaturesWithTypePredicates03.d.ts]
interface A {
a?: any;
}
interface B {
}
declare function isA(x: any): x is A;
declare function isB(x: any): x is B;
declare let myIsA: typeof isA;
declare let myIsAny: typeof isB;
@@ -0,0 +1,43 @@
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates04.ts(25,1): error TS2322: Type '(x: any) => x is E' is not assignable to type '(x: any) => x is number'.
Type predicate 'x is E' is not assignable to 'x is number'.
Type 'E' is not assignable to type 'number'.
tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates04.ts(26,1): error TS2322: Type '(x: any) => x is number' is not assignable to type '(x: any) => x is E'.
Type predicate 'x is number' is not assignable to 'x is E'.
Type 'number' is not assignable to type 'E'.
==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatForSignaturesWithTypePredicates04.ts (2 errors) ====
enum E {
A = 1,
B = 2,
C = 3,
}
function isA(x: any): x is number {
return typeof x === "number";
}
function isB(x: any): x is E {
switch (x) {
case E.A:
case E.B:
case E.C:
return true;
}
return false;
}
let myIsA = isA;
let myIsB = isB;
myIsA = myIsB;
~~~~~
!!! error TS2322: Type '(x: any) => x is E' is not assignable to type '(x: any) => x is number'.
!!! error TS2322: Type predicate 'x is E' is not assignable to 'x is number'.
!!! error TS2322: Type 'E' is not assignable to type 'number'.
myIsB = myIsA;
~~~~~
!!! error TS2322: Type '(x: any) => x is number' is not assignable to type '(x: any) => x is E'.
!!! error TS2322: Type predicate 'x is number' is not assignable to 'x is E'.
!!! error TS2322: Type 'number' is not assignable to type 'E'.
@@ -0,0 +1,63 @@
//// [assignmentCompatForSignaturesWithTypePredicates04.ts]
enum E {
A = 1,
B = 2,
C = 3,
}
function isA(x: any): x is number {
return typeof x === "number";
}
function isB(x: any): x is E {
switch (x) {
case E.A:
case E.B:
case E.C:
return true;
}
return false;
}
let myIsA = isA;
let myIsB = isB;
myIsA = myIsB;
myIsB = myIsA;
//// [assignmentCompatForSignaturesWithTypePredicates04.js]
var E;
(function (E) {
E[E["A"] = 1] = "A";
E[E["B"] = 2] = "B";
E[E["C"] = 3] = "C";
})(E || (E = {}));
function isA(x) {
return typeof x === "number";
}
function isB(x) {
switch (x) {
case E.A:
case E.B:
case E.C:
return true;
}
return false;
}
var myIsA = isA;
var myIsB = isB;
myIsA = myIsB;
myIsB = myIsA;
//// [assignmentCompatForSignaturesWithTypePredicates04.d.ts]
declare enum E {
A = 1,
B = 2,
C = 3,
}
declare function isA(x: any): x is number;
declare function isB(x: any): x is E;
declare let myIsA: typeof isA;
declare let myIsB: typeof isB;