Update tests/baselines

This commit is contained in:
Kanchalai Tanglertsampan
2017-05-31 13:13:25 -07:00
parent 558cb2e2fa
commit 1daff75d46
7 changed files with 270 additions and 9 deletions

View File

@@ -0,0 +1,47 @@
//// [0.js]
// @ts-check
var lol = "hello Lol"
const obj = {
/** @type {string|undefined} */
foo: undefined,
/** @type {string|undefined} */
bar: "42",
/** @type {function(number): number} */
method1(n1) {
return n1 + 42;
},
/** @type {string} */
lol,
/** @type {number} */
['b' + 'ar1']: 42,
}
obj.foo = 'string'
obj.lol
obj.bar = undefined;
var k = obj.method1(0);
obj.bar1 = "42";
//// [0.js]
// @ts-check
var lol = "hello Lol";
var obj = (_a = {
/** @type {string|undefined} */
foo: undefined,
/** @type {string|undefined} */
bar: "42",
/** @type {function(number): number} */
method1: function (n1) {
return n1 + 42;
},
/** @type {string} */
lol: lol
},
/** @type {number} */
_a['b' + 'ar1'] = 42,
_a);
obj.foo = 'string';
obj.lol;
obj.bar = undefined;
var k = obj.method1(0);
obj.bar1 = "42";
var _a;

View File

@@ -0,0 +1,58 @@
=== tests/cases/conformance/jsdoc/0.js ===
// @ts-check
var lol = "hello Lol"
>lol : Symbol(lol, Decl(0.js, 1, 3))
const obj = {
>obj : Symbol(obj, Decl(0.js, 2, 5))
/** @type {string|undefined} */
foo: undefined,
>foo : Symbol(foo, Decl(0.js, 2, 13))
>undefined : Symbol(undefined)
/** @type {string|undefined} */
bar: "42",
>bar : Symbol(bar, Decl(0.js, 4, 17))
/** @type {function(number): number} */
method1(n1) {
>method1 : Symbol(method1, Decl(0.js, 6, 12))
>n1 : Symbol(n1, Decl(0.js, 8, 10))
return n1 + 42;
>n1 : Symbol(n1, Decl(0.js, 8, 10))
},
/** @type {string} */
lol,
>lol : Symbol(lol, Decl(0.js, 10, 4))
/** @type {number} */
['b' + 'ar1']: 42,
}
obj.foo = 'string'
>obj.foo : Symbol(foo, Decl(0.js, 2, 13))
>obj : Symbol(obj, Decl(0.js, 2, 5))
>foo : Symbol(foo, Decl(0.js, 2, 13))
obj.lol
>obj.lol : Symbol(lol, Decl(0.js, 10, 4))
>obj : Symbol(obj, Decl(0.js, 2, 5))
>lol : Symbol(lol, Decl(0.js, 10, 4))
obj.bar = undefined;
>obj.bar : Symbol(bar, Decl(0.js, 4, 17))
>obj : Symbol(obj, Decl(0.js, 2, 5))
>bar : Symbol(bar, Decl(0.js, 4, 17))
>undefined : Symbol(undefined)
var k = obj.method1(0);
>k : Symbol(k, Decl(0.js, 19, 3))
>obj.method1 : Symbol(method1, Decl(0.js, 6, 12))
>obj : Symbol(obj, Decl(0.js, 2, 5))
>method1 : Symbol(method1, Decl(0.js, 6, 12))
obj.bar1 = "42";
>obj : Symbol(obj, Decl(0.js, 2, 5))

View File

@@ -0,0 +1,76 @@
=== tests/cases/conformance/jsdoc/0.js ===
// @ts-check
var lol = "hello Lol"
>lol : string
>"hello Lol" : "hello Lol"
const obj = {
>obj : { [x: string]: any; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; }
>{ /** @type {string|undefined} */ foo: undefined, /** @type {string|undefined} */ bar: "42", /** @type {function(number): number} */ method1(n1) { return n1 + 42; }, /** @type {string} */ lol, /** @type {number} */ ['b' + 'ar1']: 42,} : { [x: string]: any; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; }
/** @type {string|undefined} */
foo: undefined,
>foo : string | undefined
>undefined : undefined
/** @type {string|undefined} */
bar: "42",
>bar : string | undefined
>"42" : "42"
/** @type {function(number): number} */
method1(n1) {
>method1 : (n1: any) => any
>n1 : any
return n1 + 42;
>n1 + 42 : any
>n1 : any
>42 : 42
},
/** @type {string} */
lol,
>lol : string
/** @type {number} */
['b' + 'ar1']: 42,
>'b' + 'ar1' : string
>'b' : "b"
>'ar1' : "ar1"
>42 : 42
}
obj.foo = 'string'
>obj.foo = 'string' : "string"
>obj.foo : string | undefined
>obj : { [x: string]: any; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; }
>foo : string | undefined
>'string' : "string"
obj.lol
>obj.lol : string
>obj : { [x: string]: any; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; }
>lol : string
obj.bar = undefined;
>obj.bar = undefined : undefined
>obj.bar : string | undefined
>obj : { [x: string]: any; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; }
>bar : string | undefined
>undefined : undefined
var k = obj.method1(0);
>k : number
>obj.method1(0) : number
>obj.method1 : (arg0: number) => number
>obj : { [x: string]: any; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; }
>method1 : (arg0: number) => number
>0 : 0
obj.bar1 = "42";
>obj.bar1 = "42" : "42"
>obj.bar1 : any
>obj : { [x: string]: any; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; }
>bar1 : any
>"42" : "42"

View File

@@ -0,0 +1,39 @@
tests/cases/conformance/jsdoc/0.js(5,3): error TS2322: Type 'number' is not assignable to type 'string | undefined'.
tests/cases/conformance/jsdoc/0.js(7,3): error TS2322: Type '(n1: any) => string' is not assignable to type '(arg0: number) => number'.
Type 'string' is not assignable to type 'number'.
tests/cases/conformance/jsdoc/0.js(11,3): error TS2322: Type '(n1: any) => string' is not assignable to type '(arg0: number) => number'.
Type 'string' is not assignable to type 'number'.
tests/cases/conformance/jsdoc/0.js(13,3): error TS2322: Type 'undefined' is not assignable to type 'string'.
tests/cases/conformance/jsdoc/0.js(17,5): error TS2322: Type 'number' is not assignable to type 'string'.
==== tests/cases/conformance/jsdoc/0.js (5 errors) ====
// @ts-check
var lol;
const obj = {
/** @type {string|undefined} */
bar: 42,
~~~~~~~
!!! error TS2322: Type 'number' is not assignable to type 'string | undefined'.
/** @type {function(number): number} */
method1(n1) {
~~~~~~~
!!! error TS2322: Type '(n1: any) => string' is not assignable to type '(arg0: number) => number'.
!!! error TS2322: Type 'string' is not assignable to type 'number'.
return "42";
},
/** @type {function(number): number} */
method2: (n1) => "lol",
~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2322: Type '(n1: any) => string' is not assignable to type '(arg0: number) => number'.
!!! error TS2322: Type 'string' is not assignable to type 'number'.
/** @type {string} */
lol
~~~
!!! error TS2322: Type 'undefined' is not assignable to type 'string'.
}
lol = "string"
/** @type {string} */
var s = obj.method1(0);
~
!!! error TS2322: Type 'number' is not assignable to type 'string'.

View File

@@ -0,0 +1,37 @@
//// [0.js]
// @ts-check
var lol;
const obj = {
/** @type {string|undefined} */
bar: 42,
/** @type {function(number): number} */
method1(n1) {
return "42";
},
/** @type {function(number): number} */
method2: (n1) => "lol",
/** @type {string} */
lol
}
lol = "string"
/** @type {string} */
var s = obj.method1(0);
//// [0.js]
// @ts-check
var lol;
var obj = {
/** @type {string|undefined} */
bar: 42,
/** @type {function(number): number} */
method1: function (n1) {
return "42";
},
/** @type {function(number): number} */
method2: function (n1) { return "lol"; },
/** @type {string} */
lol: lol
};
lol = "string";
/** @type {string} */
var s = obj.method1(0);

View File

@@ -9,16 +9,18 @@ const obj = {
/** @type {string|undefined} */
foo: undefined,
/** @type {string|undefined} */
bar: 42,
bar: "42",
/** @type {function(number): number} */
method1(n1) {
return n1 + 42;
},
/** @type {string} */
lol
lol,
/** @type {number} */
['b' + 'ar1']: 42,
}
obj.foo = 'string'
obj.foo;
obj.lol
obj.bar = undefined;
var k = obj.method1(0);
var k = obj.method1(0);
obj.bar1 = "42";

View File

@@ -4,17 +4,19 @@
// @filename: 0.js
// @ts-check
var lol;
const obj = {
/** @type {string|undefined} */
foo: undefined,
/** @type {string|undefined} */
bar: 42,
/** @type {function(number): number} */
method1(n1) {
return (n1 + 42).toString()
return "42";
},
/** @type {function(number): number} */
method2: (n1) => "lol",
/** @type {string} */
lol
}
var lol = "string"
obj.foo = 5
lol = "string"
/** @type {string} */
var s = obj.method1(0);