From 5a90c6777aec2284e3ae65a7f335be69af210a5f Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 14 Jun 2016 11:33:41 -0700 Subject: [PATCH 1/8] Added tests. --- .../types/tuple/emptyTuples/emptyTuplesTypeAssertion01.ts | 4 ++++ .../types/tuple/emptyTuples/emptyTuplesTypeAssertion02.ts | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.ts create mode 100644 tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.ts diff --git a/tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.ts b/tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.ts new file mode 100644 index 00000000000..2e1e2d42499 --- /dev/null +++ b/tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.ts @@ -0,0 +1,4 @@ +// @declaration: true + +let x = <[]>[]; +let y = x[0]; \ No newline at end of file diff --git a/tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.ts b/tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.ts new file mode 100644 index 00000000000..43f63e9ce77 --- /dev/null +++ b/tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.ts @@ -0,0 +1,4 @@ +// @declaration: true + +let x = [] as []; +let y = x[0]; \ No newline at end of file From 0a1c4c60da9609155ba65dcfc5932ce748c3c3ba Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 14 Jun 2016 11:36:14 -0700 Subject: [PATCH 2/8] Accepted baselines. --- .../reference/emptyTuplesTypeAssertion01.js | 27 +++++++++++++++++++ .../emptyTuplesTypeAssertion01.symbols | 9 +++++++ .../emptyTuplesTypeAssertion01.types | 13 +++++++++ .../reference/emptyTuplesTypeAssertion02.js | 27 +++++++++++++++++++ .../emptyTuplesTypeAssertion02.symbols | 9 +++++++ .../emptyTuplesTypeAssertion02.types | 13 +++++++++ 6 files changed, 98 insertions(+) create mode 100644 tests/baselines/reference/emptyTuplesTypeAssertion01.js create mode 100644 tests/baselines/reference/emptyTuplesTypeAssertion01.symbols create mode 100644 tests/baselines/reference/emptyTuplesTypeAssertion01.types create mode 100644 tests/baselines/reference/emptyTuplesTypeAssertion02.js create mode 100644 tests/baselines/reference/emptyTuplesTypeAssertion02.symbols create mode 100644 tests/baselines/reference/emptyTuplesTypeAssertion02.types diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion01.js b/tests/baselines/reference/emptyTuplesTypeAssertion01.js new file mode 100644 index 00000000000..b02caf3ceaf --- /dev/null +++ b/tests/baselines/reference/emptyTuplesTypeAssertion01.js @@ -0,0 +1,27 @@ +//// [emptyTuplesTypeAssertion01.ts] + +let x = <[]>[]; +let y = x[0]; + +//// [emptyTuplesTypeAssertion01.js] +var x = []; +var y = x[0]; + + +//// [emptyTuplesTypeAssertion01.d.ts] +declare let x: []; +declare let y: never; + + +//// [DtsFileErrors] + + +tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.d.ts(1,16): error TS1122: A tuple type element list cannot be empty. + + +==== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.d.ts (1 errors) ==== + declare let x: []; + ~~ +!!! error TS1122: A tuple type element list cannot be empty. + declare let y: never; + \ No newline at end of file diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion01.symbols b/tests/baselines/reference/emptyTuplesTypeAssertion01.symbols new file mode 100644 index 00000000000..d6f3cd4e9db --- /dev/null +++ b/tests/baselines/reference/emptyTuplesTypeAssertion01.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.ts === + +let x = <[]>[]; +>x : Symbol(x, Decl(emptyTuplesTypeAssertion01.ts, 1, 3)) + +let y = x[0]; +>y : Symbol(y, Decl(emptyTuplesTypeAssertion01.ts, 2, 3)) +>x : Symbol(x, Decl(emptyTuplesTypeAssertion01.ts, 1, 3)) + diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion01.types b/tests/baselines/reference/emptyTuplesTypeAssertion01.types new file mode 100644 index 00000000000..e0ef78c86e7 --- /dev/null +++ b/tests/baselines/reference/emptyTuplesTypeAssertion01.types @@ -0,0 +1,13 @@ +=== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.ts === + +let x = <[]>[]; +>x : [] +><[]>[] : [] +>[] : undefined[] + +let y = x[0]; +>y : never +>x[0] : never +>x : [] +>0 : number + diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion02.js b/tests/baselines/reference/emptyTuplesTypeAssertion02.js new file mode 100644 index 00000000000..0a6c3e5a984 --- /dev/null +++ b/tests/baselines/reference/emptyTuplesTypeAssertion02.js @@ -0,0 +1,27 @@ +//// [emptyTuplesTypeAssertion02.ts] + +let x = [] as []; +let y = x[0]; + +//// [emptyTuplesTypeAssertion02.js] +var x = []; +var y = x[0]; + + +//// [emptyTuplesTypeAssertion02.d.ts] +declare let x: []; +declare let y: never; + + +//// [DtsFileErrors] + + +tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.d.ts(1,16): error TS1122: A tuple type element list cannot be empty. + + +==== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.d.ts (1 errors) ==== + declare let x: []; + ~~ +!!! error TS1122: A tuple type element list cannot be empty. + declare let y: never; + \ No newline at end of file diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion02.symbols b/tests/baselines/reference/emptyTuplesTypeAssertion02.symbols new file mode 100644 index 00000000000..a5eeec95a32 --- /dev/null +++ b/tests/baselines/reference/emptyTuplesTypeAssertion02.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.ts === + +let x = [] as []; +>x : Symbol(x, Decl(emptyTuplesTypeAssertion02.ts, 1, 3)) + +let y = x[0]; +>y : Symbol(y, Decl(emptyTuplesTypeAssertion02.ts, 2, 3)) +>x : Symbol(x, Decl(emptyTuplesTypeAssertion02.ts, 1, 3)) + diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion02.types b/tests/baselines/reference/emptyTuplesTypeAssertion02.types new file mode 100644 index 00000000000..2dc7e823516 --- /dev/null +++ b/tests/baselines/reference/emptyTuplesTypeAssertion02.types @@ -0,0 +1,13 @@ +=== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.ts === + +let x = [] as []; +>x : [] +>[] as [] : [] +>[] : undefined[] + +let y = x[0]; +>y : never +>x[0] : never +>x : [] +>0 : number + From c9bab058d549fc846b346c45c1df5ac87b707cef Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 14 Jun 2016 13:06:28 -0700 Subject: [PATCH 3/8] Check tuple types when getting the type node's type. --- src/compiler/checker.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 47b0a53a8c3..51ef0a6058c 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5027,6 +5027,7 @@ namespace ts { function getTypeFromTupleTypeNode(node: TupleTypeNode): Type { const links = getNodeLinks(node); if (!links.resolvedType) { + checkTupleType(node); links.resolvedType = createTupleType(map(node.elementTypes, getTypeFromTypeNode)); } return links.resolvedType; From 82b385f33122eeebdd266d851ebd479020838847 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 14 Jun 2016 15:15:42 -0700 Subject: [PATCH 4/8] Accepted baselines. --- .../emptyTuplesTypeAssertion01.errors.txt | 9 +++++++++ .../reference/emptyTuplesTypeAssertion01.js | 14 -------------- .../emptyTuplesTypeAssertion02.errors.txt | 9 +++++++++ .../reference/emptyTuplesTypeAssertion02.js | 14 -------------- 4 files changed, 18 insertions(+), 28 deletions(-) create mode 100644 tests/baselines/reference/emptyTuplesTypeAssertion01.errors.txt create mode 100644 tests/baselines/reference/emptyTuplesTypeAssertion02.errors.txt diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion01.errors.txt b/tests/baselines/reference/emptyTuplesTypeAssertion01.errors.txt new file mode 100644 index 00000000000..4d70873bd74 --- /dev/null +++ b/tests/baselines/reference/emptyTuplesTypeAssertion01.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.ts(2,10): error TS1122: A tuple type element list cannot be empty. + + +==== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.ts (1 errors) ==== + + let x = <[]>[]; + ~~ +!!! error TS1122: A tuple type element list cannot be empty. + let y = x[0]; \ No newline at end of file diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion01.js b/tests/baselines/reference/emptyTuplesTypeAssertion01.js index b02caf3ceaf..6ab1ec82bd5 100644 --- a/tests/baselines/reference/emptyTuplesTypeAssertion01.js +++ b/tests/baselines/reference/emptyTuplesTypeAssertion01.js @@ -11,17 +11,3 @@ var y = x[0]; //// [emptyTuplesTypeAssertion01.d.ts] declare let x: []; declare let y: never; - - -//// [DtsFileErrors] - - -tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.d.ts(1,16): error TS1122: A tuple type element list cannot be empty. - - -==== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.d.ts (1 errors) ==== - declare let x: []; - ~~ -!!! error TS1122: A tuple type element list cannot be empty. - declare let y: never; - \ No newline at end of file diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion02.errors.txt b/tests/baselines/reference/emptyTuplesTypeAssertion02.errors.txt new file mode 100644 index 00000000000..0cbc0d7371c --- /dev/null +++ b/tests/baselines/reference/emptyTuplesTypeAssertion02.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.ts(2,15): error TS1122: A tuple type element list cannot be empty. + + +==== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.ts (1 errors) ==== + + let x = [] as []; + ~~ +!!! error TS1122: A tuple type element list cannot be empty. + let y = x[0]; \ No newline at end of file diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion02.js b/tests/baselines/reference/emptyTuplesTypeAssertion02.js index 0a6c3e5a984..ad112732cd2 100644 --- a/tests/baselines/reference/emptyTuplesTypeAssertion02.js +++ b/tests/baselines/reference/emptyTuplesTypeAssertion02.js @@ -11,17 +11,3 @@ var y = x[0]; //// [emptyTuplesTypeAssertion02.d.ts] declare let x: []; declare let y: never; - - -//// [DtsFileErrors] - - -tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.d.ts(1,16): error TS1122: A tuple type element list cannot be empty. - - -==== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.d.ts (1 errors) ==== - declare let x: []; - ~~ -!!! error TS1122: A tuple type element list cannot be empty. - declare let y: never; - \ No newline at end of file From 14c2bcf73ad5e5eead446beaf8955211b96a8957 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 14 Jun 2016 19:02:47 -0700 Subject: [PATCH 5/8] Added tests. --- .../typeAssertions/duplicatePropertiesInTypeAssertions01.ts | 3 +++ .../typeAssertions/duplicatePropertiesInTypeAssertions02.ts | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions01.ts create mode 100644 tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions02.ts diff --git a/tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions01.ts b/tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions01.ts new file mode 100644 index 00000000000..2f3da304c99 --- /dev/null +++ b/tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions01.ts @@ -0,0 +1,3 @@ +// @declaration: true + +let x = <{a: number; a: number}>{}; \ No newline at end of file diff --git a/tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions02.ts b/tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions02.ts new file mode 100644 index 00000000000..265fdbe5321 --- /dev/null +++ b/tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions02.ts @@ -0,0 +1,3 @@ +// @declaration: true + +let x = {} as {a: number; a: number}; \ No newline at end of file From f786c5c1874f20ec793204342c86f3ebfa77b24c Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 14 Jun 2016 19:03:00 -0700 Subject: [PATCH 6/8] Accepted baselines. --- .../duplicatePropertiesInTypeAssertions01.js | 12 ++++++++++++ .../duplicatePropertiesInTypeAssertions01.symbols | 7 +++++++ .../duplicatePropertiesInTypeAssertions01.types | 9 +++++++++ .../duplicatePropertiesInTypeAssertions02.js | 12 ++++++++++++ .../duplicatePropertiesInTypeAssertions02.symbols | 7 +++++++ .../duplicatePropertiesInTypeAssertions02.types | 9 +++++++++ 6 files changed, 56 insertions(+) create mode 100644 tests/baselines/reference/duplicatePropertiesInTypeAssertions01.js create mode 100644 tests/baselines/reference/duplicatePropertiesInTypeAssertions01.symbols create mode 100644 tests/baselines/reference/duplicatePropertiesInTypeAssertions01.types create mode 100644 tests/baselines/reference/duplicatePropertiesInTypeAssertions02.js create mode 100644 tests/baselines/reference/duplicatePropertiesInTypeAssertions02.symbols create mode 100644 tests/baselines/reference/duplicatePropertiesInTypeAssertions02.types diff --git a/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.js b/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.js new file mode 100644 index 00000000000..03f46ad110a --- /dev/null +++ b/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.js @@ -0,0 +1,12 @@ +//// [duplicatePropertiesInTypeAssertions01.ts] + +let x = <{a: number; a: number}>{}; + +//// [duplicatePropertiesInTypeAssertions01.js] +var x = {}; + + +//// [duplicatePropertiesInTypeAssertions01.d.ts] +declare let x: { + a: number; +}; diff --git a/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.symbols b/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.symbols new file mode 100644 index 00000000000..e6320bc3f8e --- /dev/null +++ b/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions01.ts === + +let x = <{a: number; a: number}>{}; +>x : Symbol(x, Decl(duplicatePropertiesInTypeAssertions01.ts, 1, 3)) +>a : Symbol(a, Decl(duplicatePropertiesInTypeAssertions01.ts, 1, 10), Decl(duplicatePropertiesInTypeAssertions01.ts, 1, 20)) +>a : Symbol(a, Decl(duplicatePropertiesInTypeAssertions01.ts, 1, 10), Decl(duplicatePropertiesInTypeAssertions01.ts, 1, 20)) + diff --git a/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.types b/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.types new file mode 100644 index 00000000000..ac185f8e265 --- /dev/null +++ b/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.types @@ -0,0 +1,9 @@ +=== tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions01.ts === + +let x = <{a: number; a: number}>{}; +>x : { a: number; } +><{a: number; a: number}>{} : { a: number; } +>a : number +>a : number +>{} : {} + diff --git a/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.js b/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.js new file mode 100644 index 00000000000..8aa4449595a --- /dev/null +++ b/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.js @@ -0,0 +1,12 @@ +//// [duplicatePropertiesInTypeAssertions02.ts] + +let x = {} as {a: number; a: number}; + +//// [duplicatePropertiesInTypeAssertions02.js] +var x = {}; + + +//// [duplicatePropertiesInTypeAssertions02.d.ts] +declare let x: { + a: number; +}; diff --git a/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.symbols b/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.symbols new file mode 100644 index 00000000000..152307cc669 --- /dev/null +++ b/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions02.ts === + +let x = {} as {a: number; a: number}; +>x : Symbol(x, Decl(duplicatePropertiesInTypeAssertions02.ts, 1, 3)) +>a : Symbol(a, Decl(duplicatePropertiesInTypeAssertions02.ts, 1, 15), Decl(duplicatePropertiesInTypeAssertions02.ts, 1, 25)) +>a : Symbol(a, Decl(duplicatePropertiesInTypeAssertions02.ts, 1, 15), Decl(duplicatePropertiesInTypeAssertions02.ts, 1, 25)) + diff --git a/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.types b/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.types new file mode 100644 index 00000000000..3e3f8cd7e59 --- /dev/null +++ b/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.types @@ -0,0 +1,9 @@ +=== tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions02.ts === + +let x = {} as {a: number; a: number}; +>x : { a: number; } +>{} as {a: number; a: number} : { a: number; } +>{} : {} +>a : number +>a : number + From 52a96ac8192385fe49749a6bab7812de6fcc6ece Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 14 Jun 2016 19:13:32 -0700 Subject: [PATCH 7/8] Always check type assertion types. --- src/compiler/checker.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 51ef0a6058c..e343762ade0 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5027,7 +5027,6 @@ namespace ts { function getTypeFromTupleTypeNode(node: TupleTypeNode): Type { const links = getNodeLinks(node); if (!links.resolvedType) { - checkTupleType(node); links.resolvedType = createTupleType(map(node.elementTypes, getTypeFromTypeNode)); } return links.resolvedType; @@ -11521,7 +11520,10 @@ namespace ts { function checkAssertion(node: AssertionExpression) { const exprType = getRegularTypeOfObjectLiteral(checkExpression(node.expression)); + + checkSourceElement(node.type); const targetType = getTypeFromTypeNode(node.type); + if (produceDiagnostics && targetType !== unknownType) { const widenedType = getWidenedType(exprType); if (!isTypeComparableTo(targetType, widenedType)) { From 74a784c8bef3a91864fcfe1c3203b5bdce0ef80c Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Tue, 14 Jun 2016 22:38:35 -0700 Subject: [PATCH 8/8] Accepted baselines. --- .../defaultValueInFunctionTypes.errors.txt | 7 +++++-- ...duplicatePropertiesInTypeAssertions01.errors.txt | 11 +++++++++++ .../duplicatePropertiesInTypeAssertions01.symbols | 7 ------- .../duplicatePropertiesInTypeAssertions01.types | 9 --------- ...duplicatePropertiesInTypeAssertions02.errors.txt | 11 +++++++++++ .../duplicatePropertiesInTypeAssertions02.symbols | 7 ------- .../duplicatePropertiesInTypeAssertions02.types | 9 --------- .../reference/emptyTuplesTypeAssertion01.symbols | 9 --------- .../reference/emptyTuplesTypeAssertion01.types | 13 ------------- .../reference/emptyTuplesTypeAssertion02.symbols | 9 --------- .../reference/emptyTuplesTypeAssertion02.types | 13 ------------- 11 files changed, 27 insertions(+), 78 deletions(-) create mode 100644 tests/baselines/reference/duplicatePropertiesInTypeAssertions01.errors.txt delete mode 100644 tests/baselines/reference/duplicatePropertiesInTypeAssertions01.symbols delete mode 100644 tests/baselines/reference/duplicatePropertiesInTypeAssertions01.types create mode 100644 tests/baselines/reference/duplicatePropertiesInTypeAssertions02.errors.txt delete mode 100644 tests/baselines/reference/duplicatePropertiesInTypeAssertions02.symbols delete mode 100644 tests/baselines/reference/duplicatePropertiesInTypeAssertions02.types delete mode 100644 tests/baselines/reference/emptyTuplesTypeAssertion01.symbols delete mode 100644 tests/baselines/reference/emptyTuplesTypeAssertion01.types delete mode 100644 tests/baselines/reference/emptyTuplesTypeAssertion02.symbols delete mode 100644 tests/baselines/reference/emptyTuplesTypeAssertion02.types diff --git a/tests/baselines/reference/defaultValueInFunctionTypes.errors.txt b/tests/baselines/reference/defaultValueInFunctionTypes.errors.txt index 01a807b3e7d..5544b9caae0 100644 --- a/tests/baselines/reference/defaultValueInFunctionTypes.errors.txt +++ b/tests/baselines/reference/defaultValueInFunctionTypes.errors.txt @@ -1,8 +1,11 @@ tests/cases/compiler/defaultValueInFunctionTypes.ts(1,9): error TS2371: A parameter initializer is only allowed in a function or constructor implementation. +tests/cases/compiler/defaultValueInFunctionTypes.ts(2,11): error TS2371: A parameter initializer is only allowed in a function or constructor implementation. -==== tests/cases/compiler/defaultValueInFunctionTypes.ts (1 errors) ==== +==== tests/cases/compiler/defaultValueInFunctionTypes.ts (2 errors) ==== var x: (a: number = 1) => number; ~~~~~~~~~~~~~ !!! error TS2371: A parameter initializer is only allowed in a function or constructor implementation. - var y = <(a : string = "") => any>(undefined) \ No newline at end of file + var y = <(a : string = "") => any>(undefined) + ~~~~~~~~~~~~~~~ +!!! error TS2371: A parameter initializer is only allowed in a function or constructor implementation. \ No newline at end of file diff --git a/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.errors.txt b/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.errors.txt new file mode 100644 index 00000000000..80b108bbd66 --- /dev/null +++ b/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions01.ts(2,11): error TS2300: Duplicate identifier 'a'. +tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions01.ts(2,22): error TS2300: Duplicate identifier 'a'. + + +==== tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions01.ts (2 errors) ==== + + let x = <{a: number; a: number}>{}; + ~ +!!! error TS2300: Duplicate identifier 'a'. + ~ +!!! error TS2300: Duplicate identifier 'a'. \ No newline at end of file diff --git a/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.symbols b/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.symbols deleted file mode 100644 index e6320bc3f8e..00000000000 --- a/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.symbols +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions01.ts === - -let x = <{a: number; a: number}>{}; ->x : Symbol(x, Decl(duplicatePropertiesInTypeAssertions01.ts, 1, 3)) ->a : Symbol(a, Decl(duplicatePropertiesInTypeAssertions01.ts, 1, 10), Decl(duplicatePropertiesInTypeAssertions01.ts, 1, 20)) ->a : Symbol(a, Decl(duplicatePropertiesInTypeAssertions01.ts, 1, 10), Decl(duplicatePropertiesInTypeAssertions01.ts, 1, 20)) - diff --git a/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.types b/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.types deleted file mode 100644 index ac185f8e265..00000000000 --- a/tests/baselines/reference/duplicatePropertiesInTypeAssertions01.types +++ /dev/null @@ -1,9 +0,0 @@ -=== tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions01.ts === - -let x = <{a: number; a: number}>{}; ->x : { a: number; } -><{a: number; a: number}>{} : { a: number; } ->a : number ->a : number ->{} : {} - diff --git a/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.errors.txt b/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.errors.txt new file mode 100644 index 00000000000..eeb9ffa9302 --- /dev/null +++ b/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions02.ts(2,16): error TS2300: Duplicate identifier 'a'. +tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions02.ts(2,27): error TS2300: Duplicate identifier 'a'. + + +==== tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions02.ts (2 errors) ==== + + let x = {} as {a: number; a: number}; + ~ +!!! error TS2300: Duplicate identifier 'a'. + ~ +!!! error TS2300: Duplicate identifier 'a'. \ No newline at end of file diff --git a/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.symbols b/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.symbols deleted file mode 100644 index 152307cc669..00000000000 --- a/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.symbols +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions02.ts === - -let x = {} as {a: number; a: number}; ->x : Symbol(x, Decl(duplicatePropertiesInTypeAssertions02.ts, 1, 3)) ->a : Symbol(a, Decl(duplicatePropertiesInTypeAssertions02.ts, 1, 15), Decl(duplicatePropertiesInTypeAssertions02.ts, 1, 25)) ->a : Symbol(a, Decl(duplicatePropertiesInTypeAssertions02.ts, 1, 15), Decl(duplicatePropertiesInTypeAssertions02.ts, 1, 25)) - diff --git a/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.types b/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.types deleted file mode 100644 index 3e3f8cd7e59..00000000000 --- a/tests/baselines/reference/duplicatePropertiesInTypeAssertions02.types +++ /dev/null @@ -1,9 +0,0 @@ -=== tests/cases/conformance/expressions/typeAssertions/duplicatePropertiesInTypeAssertions02.ts === - -let x = {} as {a: number; a: number}; ->x : { a: number; } ->{} as {a: number; a: number} : { a: number; } ->{} : {} ->a : number ->a : number - diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion01.symbols b/tests/baselines/reference/emptyTuplesTypeAssertion01.symbols deleted file mode 100644 index d6f3cd4e9db..00000000000 --- a/tests/baselines/reference/emptyTuplesTypeAssertion01.symbols +++ /dev/null @@ -1,9 +0,0 @@ -=== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.ts === - -let x = <[]>[]; ->x : Symbol(x, Decl(emptyTuplesTypeAssertion01.ts, 1, 3)) - -let y = x[0]; ->y : Symbol(y, Decl(emptyTuplesTypeAssertion01.ts, 2, 3)) ->x : Symbol(x, Decl(emptyTuplesTypeAssertion01.ts, 1, 3)) - diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion01.types b/tests/baselines/reference/emptyTuplesTypeAssertion01.types deleted file mode 100644 index e0ef78c86e7..00000000000 --- a/tests/baselines/reference/emptyTuplesTypeAssertion01.types +++ /dev/null @@ -1,13 +0,0 @@ -=== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion01.ts === - -let x = <[]>[]; ->x : [] -><[]>[] : [] ->[] : undefined[] - -let y = x[0]; ->y : never ->x[0] : never ->x : [] ->0 : number - diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion02.symbols b/tests/baselines/reference/emptyTuplesTypeAssertion02.symbols deleted file mode 100644 index a5eeec95a32..00000000000 --- a/tests/baselines/reference/emptyTuplesTypeAssertion02.symbols +++ /dev/null @@ -1,9 +0,0 @@ -=== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.ts === - -let x = [] as []; ->x : Symbol(x, Decl(emptyTuplesTypeAssertion02.ts, 1, 3)) - -let y = x[0]; ->y : Symbol(y, Decl(emptyTuplesTypeAssertion02.ts, 2, 3)) ->x : Symbol(x, Decl(emptyTuplesTypeAssertion02.ts, 1, 3)) - diff --git a/tests/baselines/reference/emptyTuplesTypeAssertion02.types b/tests/baselines/reference/emptyTuplesTypeAssertion02.types deleted file mode 100644 index 2dc7e823516..00000000000 --- a/tests/baselines/reference/emptyTuplesTypeAssertion02.types +++ /dev/null @@ -1,13 +0,0 @@ -=== tests/cases/conformance/types/tuple/emptyTuples/emptyTuplesTypeAssertion02.ts === - -let x = [] as []; ->x : [] ->[] as [] : [] ->[] : undefined[] - -let y = x[0]; ->y : never ->x[0] : never ->x : [] ->0 : number -