Skip to content

Commit 03e0722

Browse files
author
Yui T
committed
Add test cases and rename test files
1 parent 8bd7aae commit 03e0722

35 files changed

Lines changed: 544 additions & 185 deletions

File tree

tests/baselines/reference/objectLiteralShorthandProperties4.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,34 @@ var id: number = 10000;
33
var name: string = "my name";
44

55
var person: { name: string; id: number } = { name, id };
6+
function foo( obj:{ name: string }): void { };
7+
function bar(name: string, id: number) { return { name, id }; }
8+
function bar1(name: string, id: number) { return { name }; }
9+
function baz(name: string, id: number): { name: string; id: number } { return { name, id }; }
10+
11+
foo(person);
12+
var person1 = bar("Hello", 5);
13+
var person2: { name: string } = bar("Hello", 5);
14+
var person3: { name: string; id:number } = bar("Hello", 5);
615

716

817
//// [objectLiteralShorthandPropertiesAssignment.js]
918
var id = 10000;
1019
var name = "my name";
1120
var person = { name: name, id: id };
21+
function foo(obj) {
22+
}
23+
;
24+
function bar(name, id) {
25+
return { name: name, id: id };
26+
}
27+
function bar1(name, id) {
28+
return { name: name };
29+
}
30+
function baz(name, id) {
31+
return { name: name, id: id };
32+
}
33+
foo(person);
34+
var person1 = bar("Hello", 5);
35+
var person2 = bar("Hello", 5);
36+
var person3 = bar("Hello", 5);

tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,56 @@ var person: { name: string; id: number } = { name, id };
1313
>name : string
1414
>id : number
1515

16+
function foo( obj:{ name: string }): void { };
17+
>foo : (obj: { name: string; }) => void
18+
>obj : { name: string; }
19+
>name : string
20+
21+
function bar(name: string, id: number) { return { name, id }; }
22+
>bar : (name: string, id: number) => { name: string; id: number; }
23+
>name : string
24+
>id : number
25+
>{ name, id } : { name: string; id: number; }
26+
>name : string
27+
>id : number
28+
29+
function bar1(name: string, id: number) { return { name }; }
30+
>bar1 : (name: string, id: number) => { name: string; }
31+
>name : string
32+
>id : number
33+
>{ name } : { name: string; }
34+
>name : string
35+
36+
function baz(name: string, id: number): { name: string; id: number } { return { name, id }; }
37+
>baz : (name: string, id: number) => { name: string; id: number; }
38+
>name : string
39+
>id : number
40+
>name : string
41+
>id : number
42+
>{ name, id } : { name: string; id: number; }
43+
>name : string
44+
>id : number
45+
46+
foo(person);
47+
>foo(person) : void
48+
>foo : (obj: { name: string; }) => void
49+
>person : { name: string; id: number; }
50+
51+
var person1 = bar("Hello", 5);
52+
>person1 : { name: string; id: number; }
53+
>bar("Hello", 5) : { name: string; id: number; }
54+
>bar : (name: string, id: number) => { name: string; id: number; }
55+
56+
var person2: { name: string } = bar("Hello", 5);
57+
>person2 : { name: string; }
58+
>name : string
59+
>bar("Hello", 5) : { name: string; id: number; }
60+
>bar : (name: string, id: number) => { name: string; id: number; }
61+
62+
var person3: { name: string; id:number } = bar("Hello", 5);
63+
>person3 : { name: string; id: number; }
64+
>name : string
65+
>id : number
66+
>bar("Hello", 5) : { name: string; id: number; }
67+
>bar : (name: string, id: number) => { name: string; id: number; }
68+

tests/baselines/reference/objectLiteralShorthandPropertiesAssignment2.errors.txt

Lines changed: 0 additions & 13 deletions
This file was deleted.

tests/baselines/reference/objectLiteralShorthandPropertiesAssignment2.js

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
//// [objectLiteralShorthandPropertiesAssignmentES6.ts]
2+
var id: number = 10000;
3+
var name: string = "my name";
4+
5+
var person: { name: string; id: number } = { name, id };
6+
function foo(obj: { name: string }): void { };
7+
function bar(name: string, id: number) { return { name, id }; }
8+
function bar1(name: string, id: number) { return { name }; }
9+
function baz(name: string, id: number): { name: string; id: number } { return { name, id }; }
10+
11+
foo(person);
12+
var person1 = bar("Hello", 5);
13+
var person2: { name: string } = bar("Hello", 5);
14+
var person3: { name: string; id: number } = bar("Hello", 5);
15+
16+
17+
//// [objectLiteralShorthandPropertiesAssignmentES6.js]
18+
var id = 10000;
19+
var name = "my name";
20+
var person = { name, id };
21+
function foo(obj) {
22+
}
23+
;
24+
function bar(name, id) {
25+
return { name, id };
26+
}
27+
function bar1(name, id) {
28+
return { name };
29+
}
30+
function baz(name, id) {
31+
return { name, id };
32+
}
33+
foo(person);
34+
var person1 = bar("Hello", 5);
35+
var person2 = bar("Hello", 5);
36+
var person3 = bar("Hello", 5);
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
=== tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentES6.ts ===
2+
var id: number = 10000;
3+
>id : number
4+
5+
var name: string = "my name";
6+
>name : string
7+
8+
var person: { name: string; id: number } = { name, id };
9+
>person : { name: string; id: number; }
10+
>name : string
11+
>id : number
12+
>{ name, id } : { name: string; id: number; }
13+
>name : string
14+
>id : number
15+
16+
function foo(obj: { name: string }): void { };
17+
>foo : (obj: { name: string; }) => void
18+
>obj : { name: string; }
19+
>name : string
20+
21+
function bar(name: string, id: number) { return { name, id }; }
22+
>bar : (name: string, id: number) => { name: string; id: number; }
23+
>name : string
24+
>id : number
25+
>{ name, id } : { name: string; id: number; }
26+
>name : string
27+
>id : number
28+
29+
function bar1(name: string, id: number) { return { name }; }
30+
>bar1 : (name: string, id: number) => { name: string; }
31+
>name : string
32+
>id : number
33+
>{ name } : { name: string; }
34+
>name : string
35+
36+
function baz(name: string, id: number): { name: string; id: number } { return { name, id }; }
37+
>baz : (name: string, id: number) => { name: string; id: number; }
38+
>name : string
39+
>id : number
40+
>name : string
41+
>id : number
42+
>{ name, id } : { name: string; id: number; }
43+
>name : string
44+
>id : number
45+
46+
foo(person);
47+
>foo(person) : void
48+
>foo : (obj: { name: string; }) => void
49+
>person : { name: string; id: number; }
50+
51+
var person1 = bar("Hello", 5);
52+
>person1 : { name: string; id: number; }
53+
>bar("Hello", 5) : { name: string; id: number; }
54+
>bar : (name: string, id: number) => { name: string; id: number; }
55+
56+
var person2: { name: string } = bar("Hello", 5);
57+
>person2 : { name: string; }
58+
>name : string
59+
>bar("Hello", 5) : { name: string; id: number; }
60+
>bar : (name: string, id: number) => { name: string; id: number; }
61+
62+
var person3: { name: string; id: number } = bar("Hello", 5);
63+
>person3 : { name: string; id: number; }
64+
>name : string
65+
>id : number
66+
>bar("Hello", 5) : { name: string; id: number; }
67+
>bar : (name: string, id: number) => { name: string; id: number; }
68+
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentError.ts(5,16): error TS1131: Property or signature expected.
2+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentError.ts(5,25): error TS1128: Declaration or statement expected.
3+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentError.ts(6,53): error TS1005: ';' expected.
4+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentError.ts(4,5): error TS2322: Type '{ name: string; id: number; }' is not assignable to type '{ b: string; id: number; }'.
5+
Property 'b' is missing in type '{ name: string; id: number; }'.
6+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentError.ts(5,22): error TS2403: Subsequent variable declarations must have the same type. Variable 'id' must be of type 'number', but here has type 'any'.
7+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentError.ts(6,79): error TS2322: Type '{ name: string; id: number; }' is not assignable to type '{ id: string; name: number; }'.
8+
Types of property 'id' are incompatible.
9+
Type 'number' is not assignable to type 'string'.
10+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentError.ts(8,5): error TS2345: Argument of type '{ name: string; id: number; }' is not assignable to parameter of type '{ name: string; id: boolean; }'.
11+
Types of property 'id' are incompatible.
12+
Type 'number' is not assignable to type 'boolean'.
13+
14+
15+
==== tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentError.ts (7 errors) ====
16+
var id: number = 10000;
17+
var name: string = "my name";
18+
19+
var person: { b: string; id: number } = { name, id }; // error
20+
~~~~~~
21+
!!! error TS2322: Type '{ name: string; id: number; }' is not assignable to type '{ b: string; id: number; }'.
22+
!!! error TS2322: Property 'b' is missing in type '{ name: string; id: number; }'.
23+
var person1: { name, id }; // error: can't use short-hand property assignment in type position
24+
~~~~
25+
!!! error TS1131: Property or signature expected.
26+
~
27+
!!! error TS1128: Declaration or statement expected.
28+
~~
29+
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'id' must be of type 'number', but here has type 'any'.
30+
function foo(name: string, id: number): { id: string, name: number } { return { name, id }; } // error
31+
~
32+
!!! error TS1005: ';' expected.
33+
~~~~~~~~~~~~
34+
!!! error TS2322: Type '{ name: string; id: number; }' is not assignable to type '{ id: string; name: number; }'.
35+
!!! error TS2322: Types of property 'id' are incompatible.
36+
!!! error TS2322: Type 'number' is not assignable to type 'string'.
37+
function bar(obj: { name: string; id: boolean }) { }
38+
bar({ name, id }); // error
39+
~~~~~~~~~~~~
40+
!!! error TS2345: Argument of type '{ name: string; id: number; }' is not assignable to parameter of type '{ name: string; id: boolean; }'.
41+
!!! error TS2345: Types of property 'id' are incompatible.
42+
!!! error TS2345: Type 'number' is not assignable to type 'boolean'.
43+
44+
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(5,55): error TS1005: ';' expected.
2+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(6,55): error TS1005: ';' expected.
3+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(7,16): error TS1131: Property or signature expected.
4+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(7,25): error TS1128: Declaration or statement expected.
5+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(8,28): error TS1005: ';' expected.
6+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(4,5): error TS2322: Type '{ name: string; id: number; }' is not assignable to type '{ b: string; id: number; }'.
7+
Property 'b' is missing in type '{ name: string; id: number; }'.
8+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(5,79): error TS2322: Type '{ name: string; id: number; }' is not assignable to type '{ name: number; id: string; }'.
9+
Types of property 'name' are incompatible.
10+
Type 'string' is not assignable to type 'number'.
11+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(7,22): error TS2403: Subsequent variable declarations must have the same type. Variable 'id' must be of type 'number', but here has type 'any'.
12+
tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts(8,5): error TS2322: Type '{ name: number; id: string; }' is not assignable to type '{ name: string; id: number; }'.
13+
Types of property 'name' are incompatible.
14+
Type 'number' is not assignable to type 'string'.
15+
16+
17+
==== tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentErrorFromMissingIdentifier.ts (9 errors) ====
18+
var id: number = 10000;
19+
var name: string = "my name";
20+
21+
var person: { b: string; id: number } = { name, id }; // error
22+
~~~~~~
23+
!!! error TS2322: Type '{ name: string; id: number; }' is not assignable to type '{ b: string; id: number; }'.
24+
!!! error TS2322: Property 'b' is missing in type '{ name: string; id: number; }'.
25+
function bar(name: string, id: number): { name: number, id: string } { return { name, id }; } // error
26+
~
27+
!!! error TS1005: ';' expected.
28+
~~~~~~~~~~~~
29+
!!! error TS2322: Type '{ name: string; id: number; }' is not assignable to type '{ name: number; id: string; }'.
30+
!!! error TS2322: Types of property 'name' are incompatible.
31+
!!! error TS2322: Type 'string' is not assignable to type 'number'.
32+
function foo(name: string, id: number): { name: string, id: number } { return { name, id }; } // error
33+
~
34+
!!! error TS1005: ';' expected.
35+
var person1: { name, id }; // error : Can't use shorthand in the type position
36+
~~~~
37+
!!! error TS1131: Property or signature expected.
38+
~
39+
!!! error TS1128: Declaration or statement expected.
40+
~~
41+
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'id' must be of type 'number', but here has type 'any'.
42+
var person2: { name: string, id: number } = bar("hello", 5);
43+
~
44+
!!! error TS1005: ';' expected.
45+
~~~~~~~
46+
!!! error TS2322: Type '{ name: number; id: string; }' is not assignable to type '{ name: string; id: number; }'.
47+
!!! error TS2322: Types of property 'name' are incompatible.
48+
!!! error TS2322: Type 'number' is not assignable to type 'string'.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
//// [objectLiteralShorthandPropertiesES6.ts]
2+
var a, b, c;
3+
4+
var x1 = {
5+
a
6+
};
7+
8+
var x2 = {
9+
a,
10+
}
11+
12+
var x3 = {
13+
a: 0,
14+
b,
15+
c,
16+
d() { },
17+
x3,
18+
parent: x3
19+
};
20+
21+
22+
23+
//// [objectLiteralShorthandPropertiesES6.js]
24+
var a, b, c;
25+
var x1 = {
26+
a
27+
};
28+
var x2 = {
29+
a,
30+
};
31+
var x3 = {
32+
a: 0,
33+
b,
34+
c,
35+
d: function () {
36+
},
37+
x3,
38+
parent: x3
39+
};

0 commit comments

Comments
 (0)