Skip to content

Commit

Permalink
Accepted baselines.
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielRosenwasser committed Feb 12, 2016
1 parent f235b85 commit 74b1e3f
Show file tree
Hide file tree
Showing 14 changed files with 298 additions and 0 deletions.
16 changes: 16 additions & 0 deletions tests/baselines/reference/declarationEmitIdentifierPredicates01.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
//// [declarationEmitIdentifierPredicates01.ts]

export function f(x: any): x is number {
return typeof x === "number";
}

//// [declarationEmitIdentifierPredicates01.js]
"use strict";
function f(x) {
return typeof x === "number";
}
exports.f = f;


//// [declarationEmitIdentifierPredicates01.d.ts]
export declare function f(x: any): x is number;
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
=== tests/cases/conformance/declarationEmit/typePredicates/declarationEmitIdentifierPredicates01.ts ===

export function f(x: any): x is number {
>f : Symbol(f, Decl(declarationEmitIdentifierPredicates01.ts, 0, 0))
>x : Symbol(x, Decl(declarationEmitIdentifierPredicates01.ts, 1, 18))
>x : Symbol(x, Decl(declarationEmitIdentifierPredicates01.ts, 1, 18))

return typeof x === "number";
>x : Symbol(x, Decl(declarationEmitIdentifierPredicates01.ts, 1, 18))
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
=== tests/cases/conformance/declarationEmit/typePredicates/declarationEmitIdentifierPredicates01.ts ===

export function f(x: any): x is number {
>f : (x: any) => x is number
>x : any
>x : any

return typeof x === "number";
>typeof x === "number" : boolean
>typeof x : string
>x : any
>"number" : string
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
tests/cases/conformance/declarationEmit/typePredicates/declarationEmitIdentifierPredicatesWithPrivateName01.ts(6,33): error TS4060: Return type of exported function has or is using private name 'I'.


==== tests/cases/conformance/declarationEmit/typePredicates/declarationEmitIdentifierPredicatesWithPrivateName01.ts (1 errors) ====

interface I {
a: number;
}

export function f(x: any): x is I {
~
!!! error TS4060: Return type of exported function has or is using private name 'I'.
return typeof x.a === "number";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
//// [declarationEmitIdentifierPredicatesWithPrivateName01.ts]

interface I {
a: number;
}

export function f(x: any): x is I {
return typeof x.a === "number";
}

//// [declarationEmitIdentifierPredicatesWithPrivateName01.js]
"use strict";
function f(x) {
return typeof x.a === "number";
}
exports.f = f;
43 changes: 43 additions & 0 deletions tests/baselines/reference/declarationEmitThisPredicates01.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//// [declarationEmitThisPredicates01.ts]

export class C {
m(): this is D {
return this instanceof D;
}
}

export class D extends C {
}

//// [declarationEmitThisPredicates01.js]
"use strict";
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 C = (function () {
function C() {
}
C.prototype.m = function () {
return this instanceof D;
};
return C;
}());
exports.C = C;
var D = (function (_super) {
__extends(D, _super);
function D() {
_super.apply(this, arguments);
}
return D;
}(C));
exports.D = D;


//// [declarationEmitThisPredicates01.d.ts]
export declare class C {
m(): this is D;
}
export declare class D extends C {
}
19 changes: 19 additions & 0 deletions tests/baselines/reference/declarationEmitThisPredicates01.symbols
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
=== tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts ===

export class C {
>C : Symbol(C, Decl(declarationEmitThisPredicates01.ts, 0, 0))

m(): this is D {
>m : Symbol(m, Decl(declarationEmitThisPredicates01.ts, 1, 16))
>D : Symbol(D, Decl(declarationEmitThisPredicates01.ts, 5, 1))

return this instanceof D;
>this : Symbol(C, Decl(declarationEmitThisPredicates01.ts, 0, 0))
>D : Symbol(D, Decl(declarationEmitThisPredicates01.ts, 5, 1))
}
}

export class D extends C {
>D : Symbol(D, Decl(declarationEmitThisPredicates01.ts, 5, 1))
>C : Symbol(C, Decl(declarationEmitThisPredicates01.ts, 0, 0))
}
20 changes: 20 additions & 0 deletions tests/baselines/reference/declarationEmitThisPredicates01.types
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
=== tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts ===

export class C {
>C : C

m(): this is D {
>m : () => this is D
>D : D

return this instanceof D;
>this instanceof D : boolean
>this : this
>D : typeof D
}
}

export class D extends C {
>D : D
>C : C
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates02.ts(9,10): error TS2526: A 'this' type is available only in a non-static member of a class or interface.


==== tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates02.ts (1 errors) ====

export interface Foo {
a: string;
b: number;
c: boolean;
}

export const obj = {
m(): this is Foo {
~~~~
!!! error TS2526: A 'this' type is available only in a non-static member of a class or interface.
let dis = this as Foo;
return dis.a != null && dis.b != null && dis.c != null;
}
}
34 changes: 34 additions & 0 deletions tests/baselines/reference/declarationEmitThisPredicates02.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
//// [declarationEmitThisPredicates02.ts]

export interface Foo {
a: string;
b: number;
c: boolean;
}

export const obj = {
m(): this is Foo {
let dis = this as Foo;
return dis.a != null && dis.b != null && dis.c != null;
}
}

//// [declarationEmitThisPredicates02.js]
"use strict";
exports.obj = {
m: function () {
var dis = this;
return dis.a != null && dis.b != null && dis.c != null;
}
};


//// [declarationEmitThisPredicates02.d.ts]
export interface Foo {
a: string;
b: number;
c: boolean;
}
export declare const obj: {
m(): this is Foo;
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts(3,18): error TS4055: Return type of public method from exported class has or is using private name 'D'.


==== tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts (1 errors) ====

export class C {
m(): this is D {
~
!!! error TS4055: Return type of public method from exported class has or is using private name 'D'.
return this instanceof D;
}
}

class D extends C {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
//// [declarationEmitThisPredicatesWithPrivateName01.ts]

export class C {
m(): this is D {
return this instanceof D;
}
}

class D extends C {
}

//// [declarationEmitThisPredicatesWithPrivateName01.js]
"use strict";
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 C = (function () {
function C() {
}
C.prototype.m = function () {
return this instanceof D;
};
return C;
}());
exports.C = C;
var D = (function (_super) {
__extends(D, _super);
function D() {
_super.apply(this, arguments);
}
return D;
}(C));
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName02.ts(8,14): error TS4025: Exported variable 'obj' has or is using private name 'Foo'.
tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName02.ts(9,10): error TS2526: A 'this' type is available only in a non-static member of a class or interface.


==== tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName02.ts (2 errors) ====

interface Foo {
a: string;
b: number;
c: boolean;
}

export const obj = {
~~~
!!! error TS4025: Exported variable 'obj' has or is using private name 'Foo'.
m(): this is Foo {
~~~~
!!! error TS2526: A 'this' type is available only in a non-static member of a class or interface.
let dis = this as Foo;
return dis.a != null && dis.b != null && dis.c != null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//// [declarationEmitThisPredicatesWithPrivateName02.ts]

interface Foo {
a: string;
b: number;
c: boolean;
}

export const obj = {
m(): this is Foo {
let dis = this as Foo;
return dis.a != null && dis.b != null && dis.c != null;
}
}

//// [declarationEmitThisPredicatesWithPrivateName02.js]
"use strict";
exports.obj = {
m: function () {
var dis = this;
return dis.a != null && dis.b != null && dis.c != null;
}
};

0 comments on commit 74b1e3f

Please sign in to comment.