From 33fbce1ff76c8c1577f424263fb91fd22f1e1271 Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Sat, 12 Sep 2015 17:05:12 +0900 Subject: [PATCH 001/103] nodeWillIndentChild from #4609 --- src/services/formatting/formatting.ts | 36 +++++++----------------- src/services/formatting/smartIndenter.ts | 36 +++++++++++++++++------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index fad3ebe6e2b..868683bb6af 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -282,19 +282,19 @@ namespace ts.formatting { */ function getOwnOrInheritedDelta(n: Node, options: FormatCodeOptions, sourceFile: SourceFile): number { let previousLine = Constants.Unknown; - let childKind = SyntaxKind.Unknown; + let child: Node = null; while (n) { let line = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)).line; if (previousLine !== Constants.Unknown && line !== previousLine) { break; } - if (SmartIndenter.shouldIndentChildNode(n.kind, childKind)) { + if (SmartIndenter.shouldIndentChildNode(n, child)) { return options.IndentSize; } previousLine = line; - childKind = n.kind; + child = n; n = n.parent; } return 0; @@ -387,33 +387,17 @@ namespace ts.formatting { let indentation = inheritedIndentation; if (indentation === Constants.Unknown) { - if (isSomeBlock(node.kind)) { - // blocks should be indented in - // - other blocks - // - source file - // - switch\default clauses - if (isSomeBlock(parent.kind) || - parent.kind === SyntaxKind.SourceFile || - parent.kind === SyntaxKind.CaseClause || - parent.kind === SyntaxKind.DefaultClause) { + if (SmartIndenter.shouldInheritParentIndentation(parent, node) || + SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(parent, node, startLine, sourceFile)) { - indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); - } - else { - indentation = parentDynamicIndentation.getIndentation(); - } + indentation = parentDynamicIndentation.getIndentation(); } else { - if (SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(parent, node, startLine, sourceFile)) { - indentation = parentDynamicIndentation.getIndentation(); - } - else { - indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); - } + indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); } } - var delta = SmartIndenter.shouldIndentChildNode(node.kind, SyntaxKind.Unknown) ? options.IndentSize : 0; + var delta = SmartIndenter.shouldIndentChildNode(node, null) ? options.IndentSize : 0; if (effectiveParentStartLine === startLine) { // if node is located on the same line with the parent @@ -495,7 +479,7 @@ namespace ts.formatting { getIndentation: () => indentation, getDelta: () => delta, recomputeIndentation: lineAdded => { - if (node.parent && SmartIndenter.shouldIndentChildNode(node.parent.kind, node.kind)) { + if (node.parent && SmartIndenter.shouldIndentChildNode(node.parent, node)) { if (lineAdded) { indentation += options.IndentSize; } @@ -503,7 +487,7 @@ namespace ts.formatting { indentation -= options.IndentSize; } - if (SmartIndenter.shouldIndentChildNode(node.kind, SyntaxKind.Unknown)) { + if (SmartIndenter.shouldIndentChildNode(node, null)) { delta = options.IndentSize; } else { diff --git a/src/services/formatting/smartIndenter.ts b/src/services/formatting/smartIndenter.ts index 8355fac03f5..ab23f3da939 100644 --- a/src/services/formatting/smartIndenter.ts +++ b/src/services/formatting/smartIndenter.ts @@ -48,7 +48,7 @@ namespace ts.formatting { let indentationDelta: number; while (current) { - if (positionBelongsToNode(current, position, sourceFile) && shouldIndentChildNode(current.kind, previous ? previous.kind : SyntaxKind.Unknown)) { + if (positionBelongsToNode(current, position, sourceFile) && shouldIndentChildNode(current, previous)) { currentStart = getStartLineAndCharacterForNode(current, sourceFile); if (nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile)) { @@ -133,7 +133,7 @@ namespace ts.formatting { } // increase indentation if parent node wants its content to be indented and parent and child nodes don't start on the same line - if (shouldIndentChildNode(parent.kind, current.kind) && !parentAndChildShareLine) { + if (shouldIndentChildNode(parent, current) && !parentAndChildShareLine) { indentationDelta += options.IndentSize; } @@ -446,11 +446,12 @@ namespace ts.formatting { return false; } - export function shouldIndentChildNode(parent: SyntaxKind, child: SyntaxKind): boolean { - if (nodeContentIsAlwaysIndented(parent)) { - return true; - } - switch (parent) { + /** + * Function returns true when a node with conditional indentation rule will indent certain child node. + */ + function nodeWillIndentChild(parent: TextRangeWithKind, child: TextRangeWithKind, indentByDefault: boolean) { + let childKind = child ? child.kind : SyntaxKind.Unknown; + switch (parent.kind) { case SyntaxKind.DoStatement: case SyntaxKind.WhileStatement: case SyntaxKind.ForInStatement: @@ -464,10 +465,25 @@ namespace ts.formatting { case SyntaxKind.Constructor: case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: - return child !== SyntaxKind.Block; - default: - return false; + return childKind !== SyntaxKind.Block; } + // No explicit rule for selected nodes, so result will follow the default value argument. + return indentByDefault; + } + + export function shouldIndentChildNode(parent: TextRangeWithKind, child: TextRangeWithKind): boolean { + if (nodeContentIsAlwaysIndented(parent.kind)) { + return true; + } + return nodeWillIndentChild(parent, child, false); + } + + /** + * Function returns true if a node should not get additional indentation in its parent node. + */ + export function shouldInheritParentIndentation(parent: TextRangeWithKind, child: TextRangeWithKind): boolean { + // Check if + return !nodeWillIndentChild(parent, child, true); } } } \ No newline at end of file From 07fbf8bfd1358a9048c6af3d2742b0decc461ee4 Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Sat, 12 Sep 2015 17:31:12 +0900 Subject: [PATCH 002/103] Fix some comments --- src/services/formatting/smartIndenter.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/services/formatting/smartIndenter.ts b/src/services/formatting/smartIndenter.ts index ab23f3da939..4477ea760bb 100644 --- a/src/services/formatting/smartIndenter.ts +++ b/src/services/formatting/smartIndenter.ts @@ -447,7 +447,7 @@ namespace ts.formatting { } /** - * Function returns true when a node with conditional indentation rule will indent certain child node. + * Function returns true when a node with conditional indentation rule will indent certain child node */ function nodeWillIndentChild(parent: TextRangeWithKind, child: TextRangeWithKind, indentByDefault: boolean) { let childKind = child ? child.kind : SyntaxKind.Unknown; @@ -467,7 +467,7 @@ namespace ts.formatting { case SyntaxKind.SetAccessor: return childKind !== SyntaxKind.Block; } - // No explicit rule for selected nodes, so result will follow the default value argument. + // No explicit rule for selected nodes, so result will follow the default value argument return indentByDefault; } @@ -479,10 +479,11 @@ namespace ts.formatting { } /** - * Function returns true if a node should not get additional indentation in its parent node. + * Function returns true if existing node content indentation should be suppressed for a specific child */ export function shouldInheritParentIndentation(parent: TextRangeWithKind, child: TextRangeWithKind): boolean { - // Check if + // Consider parents without indentation rules can indent their children + // so that they can apply inherited delta value to them return !nodeWillIndentChild(parent, child, true); } } From f2329846cbc52074f9eb0affaecae2e406880dd5 Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Sun, 13 Sep 2015 04:02:18 +0900 Subject: [PATCH 003/103] apply suppression to tokens --- src/services/formatting/formatting.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 868683bb6af..8a713dc032c 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -387,9 +387,7 @@ namespace ts.formatting { let indentation = inheritedIndentation; if (indentation === Constants.Unknown) { - if (SmartIndenter.shouldInheritParentIndentation(parent, node) || - SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(parent, node, startLine, sourceFile)) { - + if (SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(parent, node, startLine, sourceFile)) { indentation = parentDynamicIndentation.getIndentation(); } else { @@ -590,6 +588,10 @@ namespace ts.formatting { return inheritedIndentation; } + if (SmartIndenter.shouldInheritParentIndentation(parent, child)) { + parentDynamicIndentation = getDynamicIndentation(parent, parentStartLine, indentation, 0); + } + if (isToken(child)) { // if child node is a token, it does not impact indentation, proceed it using parent indentation scope rules let tokenInfo = formattingScanner.readTokenInfo(child); From 46c8af10245751fc51880191a559a1ae27706115 Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Sun, 13 Sep 2015 07:47:16 +0900 Subject: [PATCH 004/103] make getDelta call suppressor --- src/services/formatting/formatting.ts | 35 +++++++++++++++------------ 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 8a713dc032c..5d4938498e4 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -54,7 +54,7 @@ namespace ts.formatting { * so bar inherits indentation from foo and bar.delta will be 4 * */ - getDelta(): number; + getDelta(child: TextRangeWithKind): number; /** * Formatter calls this function when rule adds or deletes new lines from the text * so indentation scope can adjust values of indentation and delta. @@ -386,15 +386,6 @@ namespace ts.formatting { effectiveParentStartLine: number): Indentation { let indentation = inheritedIndentation; - if (indentation === Constants.Unknown) { - if (SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(parent, node, startLine, sourceFile)) { - indentation = parentDynamicIndentation.getIndentation(); - } - else { - indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); - } - } - var delta = SmartIndenter.shouldIndentChildNode(node, null) ? options.IndentSize : 0; if (effectiveParentStartLine === startLine) { @@ -404,8 +395,17 @@ namespace ts.formatting { indentation = startLine === lastIndentedLine ? indentationOnLastIndentedLine : parentDynamicIndentation.getIndentation(); - delta = Math.min(options.IndentSize, parentDynamicIndentation.getDelta() + delta); + delta = Math.min(options.IndentSize, parentDynamicIndentation.getDelta(node) + delta); } + else if (indentation === Constants.Unknown) { + if (SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(parent, node, startLine, sourceFile)) { + indentation = parentDynamicIndentation.getIndentation(); + } + else { + indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(node); + } + } + return { indentation, delta @@ -475,7 +475,14 @@ namespace ts.formatting { } }, getIndentation: () => indentation, - getDelta: () => delta, + getDelta: (child: TextRangeWithKind) => { + if (SmartIndenter.shouldInheritParentIndentation(node, child)) { + return 0; + } + else { + return delta; + } + }, recomputeIndentation: lineAdded => { if (node.parent && SmartIndenter.shouldIndentChildNode(node.parent, node)) { if (lineAdded) { @@ -588,10 +595,6 @@ namespace ts.formatting { return inheritedIndentation; } - if (SmartIndenter.shouldInheritParentIndentation(parent, child)) { - parentDynamicIndentation = getDynamicIndentation(parent, parentStartLine, indentation, 0); - } - if (isToken(child)) { // if child node is a token, it does not impact indentation, proceed it using parent indentation scope rules let tokenInfo = formattingScanner.readTokenInfo(child); From 4d1c067d752cd165ce2b69545629621033b93e4c Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Sun, 13 Sep 2015 16:01:32 +0900 Subject: [PATCH 005/103] use undefined instead of null --- src/services/formatting/formatting.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 5d4938498e4..eeebfd1649d 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -282,7 +282,7 @@ namespace ts.formatting { */ function getOwnOrInheritedDelta(n: Node, options: FormatCodeOptions, sourceFile: SourceFile): number { let previousLine = Constants.Unknown; - let child: Node = null; + let child: Node; while (n) { let line = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)).line; if (previousLine !== Constants.Unknown && line !== previousLine) { From b2cfddbe7a30c05ebac112af556974fa16913a9e Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Sun, 13 Sep 2015 23:42:24 +0900 Subject: [PATCH 006/103] re-fix token indentation --- src/services/formatting/formatting.ts | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index eeebfd1649d..9f300f1db7a 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -60,6 +60,11 @@ namespace ts.formatting { * so indentation scope can adjust values of indentation and delta. */ recomputeIndentation(lineAddedByFormatting: boolean): void; + + /** + * Returns DynamicIndentation object that includes modified delta value for specific child node. + */ + getCopyForSpecificChild(child: Node): DynamicIndentation; } interface Indentation { @@ -475,14 +480,7 @@ namespace ts.formatting { } }, getIndentation: () => indentation, - getDelta: (child: TextRangeWithKind) => { - if (SmartIndenter.shouldInheritParentIndentation(node, child)) { - return 0; - } - else { - return delta; - } - }, + getDelta: (child) => (!delta || SmartIndenter.shouldInheritParentIndentation(node, child)) ? 0 : delta, recomputeIndentation: lineAdded => { if (node.parent && SmartIndenter.shouldIndentChildNode(node.parent, node)) { if (lineAdded) { @@ -500,6 +498,13 @@ namespace ts.formatting { } } }, + getCopyForSpecificChild(child) { + if (!delta) { + // delta value is already 0, so do not copy + return this; + } + return getDynamicIndentation(node, nodeStartLine, indentation, (this).getDelta(child)); + } } } @@ -599,7 +604,7 @@ namespace ts.formatting { // if child node is a token, it does not impact indentation, proceed it using parent indentation scope rules let tokenInfo = formattingScanner.readTokenInfo(child); Debug.assert(tokenInfo.token.end === child.end); - consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); + consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation.getCopyForSpecificChild(child)); return inheritedIndentation; } From 3dd7caafbfc0bf2cf15d910c27c585cd8237ae8e Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Tue, 22 Sep 2015 15:07:44 +0900 Subject: [PATCH 007/103] no null --- src/services/formatting/formatting.ts | 4 ++-- src/services/formatting/smartIndenter.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 9f300f1db7a..412daaa8ab0 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -391,7 +391,7 @@ namespace ts.formatting { effectiveParentStartLine: number): Indentation { let indentation = inheritedIndentation; - var delta = SmartIndenter.shouldIndentChildNode(node, null) ? options.IndentSize : 0; + var delta = SmartIndenter.shouldIndentChildNode(node) ? options.IndentSize : 0; if (effectiveParentStartLine === startLine) { // if node is located on the same line with the parent @@ -490,7 +490,7 @@ namespace ts.formatting { indentation -= options.IndentSize; } - if (SmartIndenter.shouldIndentChildNode(node, null)) { + if (SmartIndenter.shouldIndentChildNode(node)) { delta = options.IndentSize; } else { diff --git a/src/services/formatting/smartIndenter.ts b/src/services/formatting/smartIndenter.ts index 4477ea760bb..dfe94b3fdbb 100644 --- a/src/services/formatting/smartIndenter.ts +++ b/src/services/formatting/smartIndenter.ts @@ -471,7 +471,7 @@ namespace ts.formatting { return indentByDefault; } - export function shouldIndentChildNode(parent: TextRangeWithKind, child: TextRangeWithKind): boolean { + export function shouldIndentChildNode(parent: TextRangeWithKind, child?: TextRangeWithKind): boolean { if (nodeContentIsAlwaysIndented(parent.kind)) { return true; } From f9e8d9562d91af7a77454b40d60c28162dac9079 Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Tue, 22 Sep 2015 16:32:24 +0900 Subject: [PATCH 008/103] slight condition change for getDelta --- src/services/formatting/formatting.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 412daaa8ab0..4995fb34b54 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -480,7 +480,7 @@ namespace ts.formatting { } }, getIndentation: () => indentation, - getDelta: (child) => (!delta || SmartIndenter.shouldInheritParentIndentation(node, child)) ? 0 : delta, + getDelta: (child) => (delta && SmartIndenter.shouldInheritParentIndentation(node, child)) ? 0 : delta, recomputeIndentation: lineAdded => { if (node.parent && SmartIndenter.shouldIndentChildNode(node.parent, node)) { if (lineAdded) { From f53f70d79e2ca35f3b653ee90a0b10152931073b Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Tue, 29 Sep 2015 16:09:07 +0900 Subject: [PATCH 009/103] getEffectiveDelta --- src/services/formatting/formatting.ts | 76 ++++++++++++--------------- 1 file changed, 34 insertions(+), 42 deletions(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 4995fb34b54..0bd2a47bb1e 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -31,8 +31,8 @@ namespace ts.formatting { * the first token in line so it should be indented */ interface DynamicIndentation { - getIndentationForToken(tokenLine: number, tokenKind: SyntaxKind): number; - getIndentationForComment(owningToken: SyntaxKind, tokenIndentation: number): number; + getIndentationForToken(tokenLine: number, tokenKind: SyntaxKind, container: Node): number; + getIndentationForComment(owningToken: SyntaxKind, tokenIndentation: number, container: Node): number; /** * Indentation for open and close tokens of the node if it is block or another node that needs special indentation * ... { @@ -60,11 +60,6 @@ namespace ts.formatting { * so indentation scope can adjust values of indentation and delta. */ recomputeIndentation(lineAddedByFormatting: boolean): void; - - /** - * Returns DynamicIndentation object that includes modified delta value for specific child node. - */ - getCopyForSpecificChild(child: Node): DynamicIndentation; } interface Indentation { @@ -330,7 +325,7 @@ namespace ts.formatting { let lastIndentedLine: number; let indentationOnLastIndentedLine: number; - + let edits: TextChange[] = []; formattingScanner.advance(); @@ -359,12 +354,12 @@ namespace ts.formatting { * If list element is in the range - its indentation will be equal * to inherited indentation from its predecessors. */ - function tryComputeIndentationForListItem(startPos: number, - endPos: number, - parentStartLine: number, - range: TextRange, + function tryComputeIndentationForListItem(startPos: number, + endPos: number, + parentStartLine: number, + range: TextRange, inheritedIndentation: number): number { - + if (rangeOverlapsWithStartEnd(range, startPos, endPos)) { if (inheritedIndentation !== Constants.Unknown) { return inheritedIndentation; @@ -381,7 +376,7 @@ namespace ts.formatting { return Constants.Unknown; } - + function computeIndentation( node: TextRangeWithKind, startLine: number, @@ -397,8 +392,8 @@ namespace ts.formatting { // if node is located on the same line with the parent // - inherit indentation from the parent // - push children if either parent of node itself has non-zero delta - indentation = startLine === lastIndentedLine - ? indentationOnLastIndentedLine + indentation = startLine === lastIndentedLine + ? indentationOnLastIndentedLine : parentDynamicIndentation.getIndentation(); delta = Math.min(options.IndentSize, parentDynamicIndentation.getDelta(node) + delta); } @@ -442,7 +437,7 @@ namespace ts.formatting { function getDynamicIndentation(node: Node, nodeStartLine: number, indentation: number, delta: number): DynamicIndentation { return { - getIndentationForComment: (kind, tokenIndentation) => { + getIndentationForComment: (kind, tokenIndentation, container) => { switch (kind) { // preceding comment to the token that closes the indentation scope inherits the indentation from the scope // .. { @@ -451,11 +446,11 @@ namespace ts.formatting { case SyntaxKind.CloseBraceToken: case SyntaxKind.CloseBracketToken: case SyntaxKind.CloseParenToken: - return indentation + delta; + return indentation + getEffectiveDelta(delta, container); } return tokenIndentation !== Constants.Unknown ? tokenIndentation : indentation; }, - getIndentationForToken: (line, kind) => { + getIndentationForToken: (line, kind, container) => { if (nodeStartLine !== line && node.decorators) { if (kind === getFirstNonDecoratorTokenOfNode(node)) { // if this token is the first token following the list of decorators, we do not need to indent @@ -476,11 +471,11 @@ namespace ts.formatting { return indentation; default: // if token line equals to the line of containing node (this is a first token in the node) - use node indentation - return nodeStartLine !== line ? indentation + delta : indentation; + return nodeStartLine !== line ? indentation + getEffectiveDelta(delta, container) : indentation; } }, getIndentation: () => indentation, - getDelta: (child) => (delta && SmartIndenter.shouldInheritParentIndentation(node, child)) ? 0 : delta, + getDelta: (child) => getEffectiveDelta(delta, child), recomputeIndentation: lineAdded => { if (node.parent && SmartIndenter.shouldIndentChildNode(node.parent, node)) { if (lineAdded) { @@ -497,15 +492,12 @@ namespace ts.formatting { delta = 0; } } - }, - getCopyForSpecificChild(child) { - if (!delta) { - // delta value is already 0, so do not copy - return this; - } - return getDynamicIndentation(node, nodeStartLine, indentation, (this).getDelta(child)); } } + + function getEffectiveDelta(delta: number, child: TextRangeWithKind) { + return SmartIndenter.shouldInheritParentIndentation(node, child) ? 0 : delta; + } } function processNode(node: Node, contextNode: Node, nodeStartLine: number, undecoratedNodeStartLine: number, indentation: number, delta: number) { @@ -580,7 +572,7 @@ namespace ts.formatting { if (!rangeOverlapsWithStartEnd(originalRange, child.pos, child.end)) { return inheritedIndentation; } - + if (child.getFullWidth() === 0) { return inheritedIndentation; } @@ -604,7 +596,7 @@ namespace ts.formatting { // if child node is a token, it does not impact indentation, proceed it using parent indentation scope rules let tokenInfo = formattingScanner.readTokenInfo(child); Debug.assert(tokenInfo.token.end === child.end); - consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation.getCopyForSpecificChild(child)); + consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, child); return inheritedIndentation; } @@ -618,8 +610,8 @@ namespace ts.formatting { return inheritedIndentation; } - function processChildNodes(nodes: NodeArray, - parent: Node, + function processChildNodes(nodes: NodeArray, + parent: Node, parentStartLine: number, parentDynamicIndentation: DynamicIndentation): void { @@ -673,7 +665,7 @@ namespace ts.formatting { } } - function consumeTokenAndAdvanceScanner(currentTokenInfo: TokenInfo, parent: Node, dynamicIndentation: DynamicIndentation): void { + function consumeTokenAndAdvanceScanner(currentTokenInfo: TokenInfo, parent: Node, dynamicIndentation: DynamicIndentation, container?: Node): void { Debug.assert(rangeContainsRange(parent, currentTokenInfo.token)); let lastTriviaWasNewLine = formattingScanner.lastTrailingTriviaWasNewLine(); @@ -712,11 +704,11 @@ namespace ts.formatting { if (indentToken) { let tokenIndentation = (isTokenInRange && !rangeContainsError(currentTokenInfo.token)) ? - dynamicIndentation.getIndentationForToken(tokenStart.line, currentTokenInfo.token.kind) : + dynamicIndentation.getIndentationForToken(tokenStart.line, currentTokenInfo.token.kind, container) : Constants.Unknown; if (currentTokenInfo.leadingTrivia) { - let commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind, tokenIndentation); + let commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind, tokenIndentation, container); let indentNextTokenOrTrivia = true; for (let triviaItem of currentTokenInfo.leadingTrivia) { @@ -745,7 +737,7 @@ namespace ts.formatting { // indent token only if is it is in target range and does not overlap with any error ranges if (tokenIndentation !== Constants.Unknown) { insertIndentation(currentTokenInfo.token.pos, tokenIndentation, lineAdded); - + lastIndentedLine = tokenStart.line; indentationOnLastIndentedLine = tokenIndentation; } @@ -766,12 +758,12 @@ namespace ts.formatting { } } - function processRange(range: TextRangeWithKind, - rangeStart: LineAndCharacter, - parent: Node, - contextNode: Node, + function processRange(range: TextRangeWithKind, + rangeStart: LineAndCharacter, + parent: Node, + contextNode: Node, dynamicIndentation: DynamicIndentation): boolean { - + let rangeHasError = rangeContainsError(range); let lineAdded: boolean; if (!rangeHasError && !previousRangeHasError) { @@ -781,7 +773,7 @@ namespace ts.formatting { trimTrailingWhitespacesForLines(originalStart.line, rangeStart.line); } else { - lineAdded = + lineAdded = processPair(range, rangeStart.line, parent, previousRange, previousRangeStartLine, previousParent, contextNode, dynamicIndentation) } } From 9eb85e21731e5516f45b4e00e0fc0127002ad2c6 Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Tue, 29 Sep 2015 19:50:42 +0900 Subject: [PATCH 010/103] remove parens --- src/services/formatting/formatting.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 0bd2a47bb1e..7d559f99464 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -475,7 +475,7 @@ namespace ts.formatting { } }, getIndentation: () => indentation, - getDelta: (child) => getEffectiveDelta(delta, child), + getDelta: child => getEffectiveDelta(delta, child), recomputeIndentation: lineAdded => { if (node.parent && SmartIndenter.shouldIndentChildNode(node.parent, node)) { if (lineAdded) { From 32b1ad36ecd2018c61fc42d133e1235517543d61 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Sun, 4 Oct 2015 22:00:57 -0700 Subject: [PATCH 011/103] do not emit exportsStar function if module does not expose any values --- src/compiler/checker.ts | 30 ++++++++++- src/compiler/emitter.ts | 38 +++++++------ src/compiler/types.ts | 2 + .../reference/es6ExportEqualsInterop.js | 1 - .../exportDeclarationInInternalModule.js | 2 +- .../reference/exportStarForValues.js | 17 ++++++ .../reference/exportStarForValues.symbols | 11 ++++ .../reference/exportStarForValues.types | 11 ++++ .../reference/exportStarForValues10.js | 52 ++++++++++++++++++ .../reference/exportStarForValues10.symbols | 16 ++++++ .../reference/exportStarForValues10.types | 18 +++++++ .../reference/exportStarForValues2.js | 25 +++++++++ .../reference/exportStarForValues2.symbols | 16 ++++++ .../reference/exportStarForValues2.types | 18 +++++++ .../reference/exportStarForValues3.js | 45 ++++++++++++++++ .../reference/exportStarForValues3.symbols | 39 ++++++++++++++ .../reference/exportStarForValues3.types | 43 +++++++++++++++ .../reference/exportStarForValues4.js | 29 ++++++++++ .../reference/exportStarForValues4.symbols | 25 +++++++++ .../reference/exportStarForValues4.types | 27 ++++++++++ .../reference/exportStarForValues5.js | 16 ++++++ .../reference/exportStarForValues5.symbols | 11 ++++ .../reference/exportStarForValues5.types | 11 ++++ .../reference/exportStarForValues6.js | 28 ++++++++++ .../reference/exportStarForValues6.symbols | 11 ++++ .../reference/exportStarForValues6.types | 12 +++++ .../reference/exportStarForValues7.js | 29 ++++++++++ .../reference/exportStarForValues7.symbols | 16 ++++++ .../reference/exportStarForValues7.types | 18 +++++++ .../reference/exportStarForValues8.js | 54 +++++++++++++++++++ .../reference/exportStarForValues8.symbols | 39 ++++++++++++++ .../reference/exportStarForValues8.types | 43 +++++++++++++++ .../reference/exportStarForValues9.js | 37 +++++++++++++ .../reference/exportStarForValues9.symbols | 25 +++++++++ .../reference/exportStarForValues9.types | 27 ++++++++++ .../reference/exportStarForValuesInSystem.js | 28 ++++++++++ .../exportStarForValuesInSystem.symbols | 11 ++++ .../exportStarForValuesInSystem.types | 12 +++++ .../reference/moduleElementsInWrongContext.js | 1 - .../moduleElementsInWrongContext2.js | 1 - .../moduleElementsInWrongContext3.js | 1 - tests/cases/compiler/exportStarForValues.ts | 8 +++ tests/cases/compiler/exportStarForValues10.ts | 12 +++++ tests/cases/compiler/exportStarForValues2.ts | 12 +++++ tests/cases/compiler/exportStarForValues3.ts | 24 +++++++++ tests/cases/compiler/exportStarForValues4.ts | 15 ++++++ tests/cases/compiler/exportStarForValues5.ts | 8 +++ tests/cases/compiler/exportStarForValues6.ts | 8 +++ tests/cases/compiler/exportStarForValues7.ts | 12 +++++ tests/cases/compiler/exportStarForValues8.ts | 24 +++++++++ tests/cases/compiler/exportStarForValues9.ts | 15 ++++++ .../compiler/exportStarForValuesInSystem.ts | 8 +++ 52 files changed, 1020 insertions(+), 22 deletions(-) create mode 100644 tests/baselines/reference/exportStarForValues.js create mode 100644 tests/baselines/reference/exportStarForValues.symbols create mode 100644 tests/baselines/reference/exportStarForValues.types create mode 100644 tests/baselines/reference/exportStarForValues10.js create mode 100644 tests/baselines/reference/exportStarForValues10.symbols create mode 100644 tests/baselines/reference/exportStarForValues10.types create mode 100644 tests/baselines/reference/exportStarForValues2.js create mode 100644 tests/baselines/reference/exportStarForValues2.symbols create mode 100644 tests/baselines/reference/exportStarForValues2.types create mode 100644 tests/baselines/reference/exportStarForValues3.js create mode 100644 tests/baselines/reference/exportStarForValues3.symbols create mode 100644 tests/baselines/reference/exportStarForValues3.types create mode 100644 tests/baselines/reference/exportStarForValues4.js create mode 100644 tests/baselines/reference/exportStarForValues4.symbols create mode 100644 tests/baselines/reference/exportStarForValues4.types create mode 100644 tests/baselines/reference/exportStarForValues5.js create mode 100644 tests/baselines/reference/exportStarForValues5.symbols create mode 100644 tests/baselines/reference/exportStarForValues5.types create mode 100644 tests/baselines/reference/exportStarForValues6.js create mode 100644 tests/baselines/reference/exportStarForValues6.symbols create mode 100644 tests/baselines/reference/exportStarForValues6.types create mode 100644 tests/baselines/reference/exportStarForValues7.js create mode 100644 tests/baselines/reference/exportStarForValues7.symbols create mode 100644 tests/baselines/reference/exportStarForValues7.types create mode 100644 tests/baselines/reference/exportStarForValues8.js create mode 100644 tests/baselines/reference/exportStarForValues8.symbols create mode 100644 tests/baselines/reference/exportStarForValues8.types create mode 100644 tests/baselines/reference/exportStarForValues9.js create mode 100644 tests/baselines/reference/exportStarForValues9.symbols create mode 100644 tests/baselines/reference/exportStarForValues9.types create mode 100644 tests/baselines/reference/exportStarForValuesInSystem.js create mode 100644 tests/baselines/reference/exportStarForValuesInSystem.symbols create mode 100644 tests/baselines/reference/exportStarForValuesInSystem.types create mode 100644 tests/cases/compiler/exportStarForValues.ts create mode 100644 tests/cases/compiler/exportStarForValues10.ts create mode 100644 tests/cases/compiler/exportStarForValues2.ts create mode 100644 tests/cases/compiler/exportStarForValues3.ts create mode 100644 tests/cases/compiler/exportStarForValues4.ts create mode 100644 tests/cases/compiler/exportStarForValues5.ts create mode 100644 tests/cases/compiler/exportStarForValues6.ts create mode 100644 tests/cases/compiler/exportStarForValues7.ts create mode 100644 tests/cases/compiler/exportStarForValues8.ts create mode 100644 tests/cases/compiler/exportStarForValues9.ts create mode 100644 tests/cases/compiler/exportStarForValuesInSystem.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 663825f1e84..18e76f46d72 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -14493,6 +14493,33 @@ namespace ts { // Emitter support + function moduleExportsSomeValue(moduleReferenceExpression: Expression): boolean { + let moduleSymbol = resolveExternalModuleName(moduleReferenceExpression.parent, moduleReferenceExpression); + if (!moduleSymbol) { + // module not found - be conservative + return true; + } + + const hasExportAssignment = getExportAssignmentSymbol(moduleSymbol) !== undefined; + moduleSymbol = resolveExternalModuleSymbol(moduleSymbol); + + const symbolLinks = getSymbolLinks(moduleSymbol); + if (symbolLinks.exportsSomeValue == undefined) { + // for export assignments - check if resolved symbol for RHS is itself a value + // otherwise - check if at least one export is value + symbolLinks.exportsSomeValue = hasExportAssignment + ? !!(moduleSymbol.flags & SymbolFlags.Value) + : forEachValue(getExportsOfModule(moduleSymbol), isValue); + } + + return symbolLinks.exportsSomeValue; + + function isValue(s: Symbol): boolean { + s = resolveSymbol(s); + return s && !!(s.flags & SymbolFlags.Value); + } + } + // When resolved as an expression identifier, if the given node references an exported entity, return the declaration // node of the exported entity's container. Otherwise, return undefined. function getReferencedExportContainer(node: Identifier): SourceFile | ModuleDeclaration | EnumDeclaration { @@ -14823,7 +14850,8 @@ namespace ts { getBlockScopedVariableId, getReferencedValueDeclaration, getTypeReferenceSerializationKind, - isOptionalParameter + isOptionalParameter, + moduleExportsSomeValue }; } diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 11942562dcb..bf670bd2c42 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -406,7 +406,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi let externalImports: (ImportDeclaration | ImportEqualsDeclaration | ExportDeclaration)[]; let exportSpecifiers: Map; let exportEquals: ExportAssignment; - let hasExportStars: boolean; + let hasExportStarsToExportValues: boolean; /** Write emitted output to disk */ let writeEmittedFiles = writeJavaScriptFile; @@ -5892,15 +5892,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi } else { // export * from "foo" - writeLine(); - write("__export("); - if (modulekind !== ModuleKind.AMD) { - emitRequire(getExternalModuleName(node)); + if (hasExportStarsToExportValues && resolver.moduleExportsSomeValue(node.moduleSpecifier)) { + writeLine(); + write("__export("); + if (modulekind !== ModuleKind.AMD) { + emitRequire(getExternalModuleName(node)); + } + else { + write(generatedName); + } + write(");"); } - else { - write(generatedName); - } - write(");"); } emitEnd(node); } @@ -5988,7 +5990,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi externalImports = []; exportSpecifiers = {}; exportEquals = undefined; - hasExportStars = false; + hasExportStarsToExportValues = false; for (let node of sourceFile.statements) { switch (node.kind) { case SyntaxKind.ImportDeclaration: @@ -6011,8 +6013,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi if ((node).moduleSpecifier) { if (!(node).exportClause) { // export * from "mod" - externalImports.push(node); - hasExportStars = true; + if (resolver.moduleExportsSomeValue((node).moduleSpecifier)) { + externalImports.push(node); + hasExportStarsToExportValues = true; + } } else if (resolver.isValueAliasDeclaration(node)) { // export { x, y } from "mod" where at least one export is a value symbol @@ -6038,7 +6042,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi } function emitExportStarHelper() { - if (hasExportStars) { + if (hasExportStarsToExportValues) { writeLine(); write("function __export(m) {"); increaseIndent(); @@ -6110,7 +6114,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi // should always win over entries with similar names that were added via star exports // to support this we store names of local/indirect exported entries in a set. // this set is used to filter names brought by star expors. - if (!hasExportStars) { + if (!hasExportStarsToExportValues) { // local names set is needed only in presence of star exports return undefined; } @@ -6535,6 +6539,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi write("});"); } else { + // collectExternalModuleInfo prefilters star exports to keep only ones that export values + // this means that check 'resolver.moduleExportsSomeValue' is redundant and can be omitted here writeLine(); // export * from 'foo' // emit as: @@ -6796,7 +6802,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi externalImports = undefined; exportSpecifiers = undefined; exportEquals = undefined; - hasExportStars = false; + hasExportStarsToExportValues = false; emitEmitHelpers(node); emitCaptureThisForNodeIfNecessary(node); emitLinesStartingAt(node.statements, startIndex); @@ -6996,7 +7002,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi externalImports = undefined; exportSpecifiers = undefined; exportEquals = undefined; - hasExportStars = false; + hasExportStarsToExportValues = false; emitEmitHelpers(node); emitCaptureThisForNodeIfNecessary(node); emitLinesStartingAt(node.statements, startIndex); diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 5979c4246b1..08dbd22ff7c 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1602,6 +1602,7 @@ namespace ts { getReferencedValueDeclaration(reference: Identifier): Declaration; getTypeReferenceSerializationKind(typeName: EntityName): TypeReferenceSerializationKind; isOptionalParameter(node: ParameterDeclaration): boolean; + moduleExportsSomeValue(moduleReferenceExpression: Expression): boolean; } export const enum SymbolFlags { @@ -1718,6 +1719,7 @@ namespace ts { exportsChecked?: boolean; // True if exports of external module have been checked isNestedRedeclaration?: boolean; // True if symbol is block scoped redeclaration bindingElement?: BindingElement; // Binding element associated with property symbol + exportsSomeValue?: boolean; // true if module exports some value (not just types) } /* @internal */ diff --git a/tests/baselines/reference/es6ExportEqualsInterop.js b/tests/baselines/reference/es6ExportEqualsInterop.js index 747b0b2beb8..3429b71b93c 100644 --- a/tests/baselines/reference/es6ExportEqualsInterop.js +++ b/tests/baselines/reference/es6ExportEqualsInterop.js @@ -289,7 +289,6 @@ exports.a8 = function_module_2.a; var class_module_2 = require("class-module"); exports.a0 = class_module_2.a; // export-star -__export(require("interface")); __export(require("variable")); __export(require("interface-variable")); __export(require("module")); diff --git a/tests/baselines/reference/exportDeclarationInInternalModule.js b/tests/baselines/reference/exportDeclarationInInternalModule.js index 4a1ee9b739f..39c8123a1e7 100644 --- a/tests/baselines/reference/exportDeclarationInInternalModule.js +++ b/tests/baselines/reference/exportDeclarationInInternalModule.js @@ -53,7 +53,7 @@ var Bbb; return SomeType; })(); Bbb.SomeType = SomeType; - __export(require()); // this line causes the nullref + // this line causes the nullref })(Bbb || (Bbb = {})); var a; diff --git a/tests/baselines/reference/exportStarForValues.js b/tests/baselines/reference/exportStarForValues.js new file mode 100644 index 00000000000..bd82373d52a --- /dev/null +++ b/tests/baselines/reference/exportStarForValues.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/exportStarForValues.ts] //// + +//// [file1.ts] + +export interface Foo { x } + +//// [file2.ts] +export * from "file1" +var x; + +//// [file1.js] +define(["require", "exports"], function (require, exports) { +}); +//// [file2.js] +define(["require", "exports"], function (require, exports) { + var x; +}); diff --git a/tests/baselines/reference/exportStarForValues.symbols b/tests/baselines/reference/exportStarForValues.symbols new file mode 100644 index 00000000000..6694afecdc6 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(x, Decl(file1.ts, 1, 22)) + +=== tests/cases/compiler/file2.ts === +export * from "file1" +var x; +>x : Symbol(x, Decl(file2.ts, 1, 3)) + diff --git a/tests/baselines/reference/exportStarForValues.types b/tests/baselines/reference/exportStarForValues.types new file mode 100644 index 00000000000..b326a7e7ff6 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues.types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Foo +>x : any + +=== tests/cases/compiler/file2.ts === +export * from "file1" +var x; +>x : any + diff --git a/tests/baselines/reference/exportStarForValues10.js b/tests/baselines/reference/exportStarForValues10.js new file mode 100644 index 00000000000..781316cb8f9 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues10.js @@ -0,0 +1,52 @@ +//// [tests/cases/compiler/exportStarForValues10.ts] //// + +//// [file0.ts] + +export var v = 1; + +//// [file1.ts] +export interface Foo { x } + +//// [file2.ts] +export * from "file0"; +export * from "file1"; +var x = 1; + +//// [file0.js] +System.register([], function(exports_1) { + var v; + return { + setters:[], + execute: function() { + exports_1("v", v = 1); + } + } +}); +//// [file1.js] +System.register([], function(exports_1) { + return { + setters:[], + execute: function() { + } + } +}); +//// [file2.js] +System.register(["file0"], function(exports_1) { + var x; + function exportStar_1(m) { + var exports = {}; + for(var n in m) { + if (n !== "default") exports[n] = m[n]; + } + exports_1(exports); + } + return { + setters:[ + function (file0_1_1) { + exportStar_1(file0_1_1); + }], + execute: function() { + x = 1; + } + } +}); diff --git a/tests/baselines/reference/exportStarForValues10.symbols b/tests/baselines/reference/exportStarForValues10.symbols new file mode 100644 index 00000000000..2de35864d27 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues10.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/file0.ts === + +export var v = 1; +>v : Symbol(v, Decl(file0.ts, 1, 10)) + +=== tests/cases/compiler/file1.ts === +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(x, Decl(file1.ts, 0, 22)) + +=== tests/cases/compiler/file2.ts === +export * from "file0"; +export * from "file1"; +var x = 1; +>x : Symbol(x, Decl(file2.ts, 2, 3)) + diff --git a/tests/baselines/reference/exportStarForValues10.types b/tests/baselines/reference/exportStarForValues10.types new file mode 100644 index 00000000000..370f02318c1 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues10.types @@ -0,0 +1,18 @@ +=== tests/cases/compiler/file0.ts === + +export var v = 1; +>v : number +>1 : number + +=== tests/cases/compiler/file1.ts === +export interface Foo { x } +>Foo : Foo +>x : any + +=== tests/cases/compiler/file2.ts === +export * from "file0"; +export * from "file1"; +var x = 1; +>x : number +>1 : number + diff --git a/tests/baselines/reference/exportStarForValues2.js b/tests/baselines/reference/exportStarForValues2.js new file mode 100644 index 00000000000..3d6b24ae433 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues2.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/exportStarForValues2.ts] //// + +//// [file1.ts] + +export interface Foo { x } + +//// [file2.ts] +export * from "file1" +var x = 1; + +//// [file3.ts] +export * from "file2" +var x = 1; + +//// [file1.js] +define(["require", "exports"], function (require, exports) { +}); +//// [file2.js] +define(["require", "exports"], function (require, exports) { + var x = 1; +}); +//// [file3.js] +define(["require", "exports"], function (require, exports) { + var x = 1; +}); diff --git a/tests/baselines/reference/exportStarForValues2.symbols b/tests/baselines/reference/exportStarForValues2.symbols new file mode 100644 index 00000000000..0fa739f5431 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues2.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(x, Decl(file1.ts, 1, 22)) + +=== tests/cases/compiler/file2.ts === +export * from "file1" +var x = 1; +>x : Symbol(x, Decl(file2.ts, 1, 3)) + +=== tests/cases/compiler/file3.ts === +export * from "file2" +var x = 1; +>x : Symbol(x, Decl(file3.ts, 1, 3)) + diff --git a/tests/baselines/reference/exportStarForValues2.types b/tests/baselines/reference/exportStarForValues2.types new file mode 100644 index 00000000000..f1de53bd7cf --- /dev/null +++ b/tests/baselines/reference/exportStarForValues2.types @@ -0,0 +1,18 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Foo +>x : any + +=== tests/cases/compiler/file2.ts === +export * from "file1" +var x = 1; +>x : number +>1 : number + +=== tests/cases/compiler/file3.ts === +export * from "file2" +var x = 1; +>x : number +>1 : number + diff --git a/tests/baselines/reference/exportStarForValues3.js b/tests/baselines/reference/exportStarForValues3.js new file mode 100644 index 00000000000..c5136e57eef --- /dev/null +++ b/tests/baselines/reference/exportStarForValues3.js @@ -0,0 +1,45 @@ +//// [tests/cases/compiler/exportStarForValues3.ts] //// + +//// [file1.ts] + +export interface Foo { x } + +//// [file2.ts] +export interface A { x } +export * from "file1" +var x = 1; + +//// [file3.ts] +export interface B { x } +export * from "file1" +var x = 1; + +//// [file4.ts] +export interface C { x } +export * from "file2" +export * from "file3" +var x = 1; + +//// [file5.ts] +export * from "file4" +var x = 1; + +//// [file1.js] +define(["require", "exports"], function (require, exports) { +}); +//// [file2.js] +define(["require", "exports"], function (require, exports) { + var x = 1; +}); +//// [file3.js] +define(["require", "exports"], function (require, exports) { + var x = 1; +}); +//// [file4.js] +define(["require", "exports"], function (require, exports) { + var x = 1; +}); +//// [file5.js] +define(["require", "exports"], function (require, exports) { + var x = 1; +}); diff --git a/tests/baselines/reference/exportStarForValues3.symbols b/tests/baselines/reference/exportStarForValues3.symbols new file mode 100644 index 00000000000..a79aeb36588 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues3.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(x, Decl(file1.ts, 1, 22)) + +=== tests/cases/compiler/file2.ts === +export interface A { x } +>A : Symbol(A, Decl(file2.ts, 0, 0)) +>x : Symbol(x, Decl(file2.ts, 0, 20)) + +export * from "file1" +var x = 1; +>x : Symbol(x, Decl(file2.ts, 2, 3)) + +=== tests/cases/compiler/file3.ts === +export interface B { x } +>B : Symbol(B, Decl(file3.ts, 0, 0)) +>x : Symbol(x, Decl(file3.ts, 0, 20)) + +export * from "file1" +var x = 1; +>x : Symbol(x, Decl(file3.ts, 2, 3)) + +=== tests/cases/compiler/file4.ts === +export interface C { x } +>C : Symbol(C, Decl(file4.ts, 0, 0)) +>x : Symbol(x, Decl(file4.ts, 0, 20)) + +export * from "file2" +export * from "file3" +var x = 1; +>x : Symbol(x, Decl(file4.ts, 3, 3)) + +=== tests/cases/compiler/file5.ts === +export * from "file4" +var x = 1; +>x : Symbol(x, Decl(file5.ts, 1, 3)) + diff --git a/tests/baselines/reference/exportStarForValues3.types b/tests/baselines/reference/exportStarForValues3.types new file mode 100644 index 00000000000..d2ee5ebb1d4 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues3.types @@ -0,0 +1,43 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Foo +>x : any + +=== tests/cases/compiler/file2.ts === +export interface A { x } +>A : A +>x : any + +export * from "file1" +var x = 1; +>x : number +>1 : number + +=== tests/cases/compiler/file3.ts === +export interface B { x } +>B : B +>x : any + +export * from "file1" +var x = 1; +>x : number +>1 : number + +=== tests/cases/compiler/file4.ts === +export interface C { x } +>C : C +>x : any + +export * from "file2" +export * from "file3" +var x = 1; +>x : number +>1 : number + +=== tests/cases/compiler/file5.ts === +export * from "file4" +var x = 1; +>x : number +>1 : number + diff --git a/tests/baselines/reference/exportStarForValues4.js b/tests/baselines/reference/exportStarForValues4.js new file mode 100644 index 00000000000..2e7b84a6c2f --- /dev/null +++ b/tests/baselines/reference/exportStarForValues4.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/exportStarForValues4.ts] //// + +//// [file1.ts] + +export interface Foo { x } + +//// [file2.ts] +export interface A { x } +export * from "file1" +export * from "file3" +var x = 1; + +//// [file3.ts] +export interface B { x } +export * from "file2" +var x = 1; + + +//// [file1.js] +define(["require", "exports"], function (require, exports) { +}); +//// [file3.js] +define(["require", "exports"], function (require, exports) { + var x = 1; +}); +//// [file2.js] +define(["require", "exports"], function (require, exports) { + var x = 1; +}); diff --git a/tests/baselines/reference/exportStarForValues4.symbols b/tests/baselines/reference/exportStarForValues4.symbols new file mode 100644 index 00000000000..465d6ed3237 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues4.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(x, Decl(file1.ts, 1, 22)) + +=== tests/cases/compiler/file2.ts === +export interface A { x } +>A : Symbol(A, Decl(file2.ts, 0, 0)) +>x : Symbol(x, Decl(file2.ts, 0, 20)) + +export * from "file1" +export * from "file3" +var x = 1; +>x : Symbol(x, Decl(file2.ts, 3, 3)) + +=== tests/cases/compiler/file3.ts === +export interface B { x } +>B : Symbol(B, Decl(file3.ts, 0, 0)) +>x : Symbol(x, Decl(file3.ts, 0, 20)) + +export * from "file2" +var x = 1; +>x : Symbol(x, Decl(file3.ts, 2, 3)) + diff --git a/tests/baselines/reference/exportStarForValues4.types b/tests/baselines/reference/exportStarForValues4.types new file mode 100644 index 00000000000..b381f9461e8 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues4.types @@ -0,0 +1,27 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Foo +>x : any + +=== tests/cases/compiler/file2.ts === +export interface A { x } +>A : A +>x : any + +export * from "file1" +export * from "file3" +var x = 1; +>x : number +>1 : number + +=== tests/cases/compiler/file3.ts === +export interface B { x } +>B : B +>x : any + +export * from "file2" +var x = 1; +>x : number +>1 : number + diff --git a/tests/baselines/reference/exportStarForValues5.js b/tests/baselines/reference/exportStarForValues5.js new file mode 100644 index 00000000000..48caf8bdb85 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues5.js @@ -0,0 +1,16 @@ +//// [tests/cases/compiler/exportStarForValues5.ts] //// + +//// [file1.ts] + +export interface Foo { x } + +//// [file2.ts] +export * from "file1" +export var x; + +//// [file1.js] +define(["require", "exports"], function (require, exports) { +}); +//// [file2.js] +define(["require", "exports"], function (require, exports) { +}); diff --git a/tests/baselines/reference/exportStarForValues5.symbols b/tests/baselines/reference/exportStarForValues5.symbols new file mode 100644 index 00000000000..a2950afa73f --- /dev/null +++ b/tests/baselines/reference/exportStarForValues5.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(x, Decl(file1.ts, 1, 22)) + +=== tests/cases/compiler/file2.ts === +export * from "file1" +export var x; +>x : Symbol(x, Decl(file2.ts, 1, 10)) + diff --git a/tests/baselines/reference/exportStarForValues5.types b/tests/baselines/reference/exportStarForValues5.types new file mode 100644 index 00000000000..9edfc88289a --- /dev/null +++ b/tests/baselines/reference/exportStarForValues5.types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Foo +>x : any + +=== tests/cases/compiler/file2.ts === +export * from "file1" +export var x; +>x : any + diff --git a/tests/baselines/reference/exportStarForValues6.js b/tests/baselines/reference/exportStarForValues6.js new file mode 100644 index 00000000000..e393ad3fe7e --- /dev/null +++ b/tests/baselines/reference/exportStarForValues6.js @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/exportStarForValues6.ts] //// + +//// [file1.ts] + +export interface Foo { x } + +//// [file2.ts] +export * from "file1" +export var x = 1; + +//// [file1.js] +System.register([], function(exports_1) { + return { + setters:[], + execute: function() { + } + } +}); +//// [file2.js] +System.register([], function(exports_1) { + var x; + return { + setters:[], + execute: function() { + exports_1("x", x = 1); + } + } +}); diff --git a/tests/baselines/reference/exportStarForValues6.symbols b/tests/baselines/reference/exportStarForValues6.symbols new file mode 100644 index 00000000000..c57baf301dd --- /dev/null +++ b/tests/baselines/reference/exportStarForValues6.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(x, Decl(file1.ts, 1, 22)) + +=== tests/cases/compiler/file2.ts === +export * from "file1" +export var x = 1; +>x : Symbol(x, Decl(file2.ts, 1, 10)) + diff --git a/tests/baselines/reference/exportStarForValues6.types b/tests/baselines/reference/exportStarForValues6.types new file mode 100644 index 00000000000..4fe38a45d02 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues6.types @@ -0,0 +1,12 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Foo +>x : any + +=== tests/cases/compiler/file2.ts === +export * from "file1" +export var x = 1; +>x : number +>1 : number + diff --git a/tests/baselines/reference/exportStarForValues7.js b/tests/baselines/reference/exportStarForValues7.js new file mode 100644 index 00000000000..1e249f45906 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues7.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/exportStarForValues7.ts] //// + +//// [file1.ts] + +export interface Foo { x } + +//// [file2.ts] +export * from "file1" +export var x = 1; + +//// [file3.ts] +export * from "file2" +export var x = 1; + +//// [file1.js] +define(["require", "exports"], function (require, exports) { +}); +//// [file2.js] +define(["require", "exports"], function (require, exports) { + exports.x = 1; +}); +//// [file3.js] +define(["require", "exports", "file2"], function (require, exports, file2_1) { + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + __export(file2_1); + exports.x = 1; +}); diff --git a/tests/baselines/reference/exportStarForValues7.symbols b/tests/baselines/reference/exportStarForValues7.symbols new file mode 100644 index 00000000000..b59f2890047 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues7.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(x, Decl(file1.ts, 1, 22)) + +=== tests/cases/compiler/file2.ts === +export * from "file1" +export var x = 1; +>x : Symbol(x, Decl(file2.ts, 1, 10)) + +=== tests/cases/compiler/file3.ts === +export * from "file2" +export var x = 1; +>x : Symbol(x, Decl(file3.ts, 1, 10)) + diff --git a/tests/baselines/reference/exportStarForValues7.types b/tests/baselines/reference/exportStarForValues7.types new file mode 100644 index 00000000000..d37661320d6 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues7.types @@ -0,0 +1,18 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Foo +>x : any + +=== tests/cases/compiler/file2.ts === +export * from "file1" +export var x = 1; +>x : number +>1 : number + +=== tests/cases/compiler/file3.ts === +export * from "file2" +export var x = 1; +>x : number +>1 : number + diff --git a/tests/baselines/reference/exportStarForValues8.js b/tests/baselines/reference/exportStarForValues8.js new file mode 100644 index 00000000000..aca678ddd17 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues8.js @@ -0,0 +1,54 @@ +//// [tests/cases/compiler/exportStarForValues8.ts] //// + +//// [file1.ts] + +export interface Foo { x } + +//// [file2.ts] +export interface A { x } +export * from "file1" +export var x = 1; + +//// [file3.ts] +export interface B { x } +export * from "file1" +export var x = 1; + +//// [file4.ts] +export interface C { x } +export * from "file2" +export * from "file3" +export var x = 1; + +//// [file5.ts] +export * from "file4" +export var x = 1; + +//// [file1.js] +define(["require", "exports"], function (require, exports) { +}); +//// [file2.js] +define(["require", "exports"], function (require, exports) { + exports.x = 1; +}); +//// [file3.js] +define(["require", "exports"], function (require, exports) { + exports.x = 1; +}); +//// [file4.js] +define(["require", "exports", "file2", "file3"], function (require, exports, file2_1, file3_1) { + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + __export(file2_1); + __export(file3_1); + exports.x = 1; +}); +//// [file5.js] +define(["require", "exports", "file4"], function (require, exports, file4_1) { + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + __export(file4_1); + exports.x = 1; +}); diff --git a/tests/baselines/reference/exportStarForValues8.symbols b/tests/baselines/reference/exportStarForValues8.symbols new file mode 100644 index 00000000000..be958ecabe8 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues8.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(x, Decl(file1.ts, 1, 22)) + +=== tests/cases/compiler/file2.ts === +export interface A { x } +>A : Symbol(A, Decl(file2.ts, 0, 0)) +>x : Symbol(x, Decl(file2.ts, 0, 20)) + +export * from "file1" +export var x = 1; +>x : Symbol(x, Decl(file2.ts, 2, 10)) + +=== tests/cases/compiler/file3.ts === +export interface B { x } +>B : Symbol(B, Decl(file3.ts, 0, 0)) +>x : Symbol(x, Decl(file3.ts, 0, 20)) + +export * from "file1" +export var x = 1; +>x : Symbol(x, Decl(file3.ts, 2, 10)) + +=== tests/cases/compiler/file4.ts === +export interface C { x } +>C : Symbol(C, Decl(file4.ts, 0, 0)) +>x : Symbol(x, Decl(file4.ts, 0, 20)) + +export * from "file2" +export * from "file3" +export var x = 1; +>x : Symbol(x, Decl(file4.ts, 3, 10)) + +=== tests/cases/compiler/file5.ts === +export * from "file4" +export var x = 1; +>x : Symbol(x, Decl(file5.ts, 1, 10)) + diff --git a/tests/baselines/reference/exportStarForValues8.types b/tests/baselines/reference/exportStarForValues8.types new file mode 100644 index 00000000000..9cc1484eecb --- /dev/null +++ b/tests/baselines/reference/exportStarForValues8.types @@ -0,0 +1,43 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Foo +>x : any + +=== tests/cases/compiler/file2.ts === +export interface A { x } +>A : A +>x : any + +export * from "file1" +export var x = 1; +>x : number +>1 : number + +=== tests/cases/compiler/file3.ts === +export interface B { x } +>B : B +>x : any + +export * from "file1" +export var x = 1; +>x : number +>1 : number + +=== tests/cases/compiler/file4.ts === +export interface C { x } +>C : C +>x : any + +export * from "file2" +export * from "file3" +export var x = 1; +>x : number +>1 : number + +=== tests/cases/compiler/file5.ts === +export * from "file4" +export var x = 1; +>x : number +>1 : number + diff --git a/tests/baselines/reference/exportStarForValues9.js b/tests/baselines/reference/exportStarForValues9.js new file mode 100644 index 00000000000..76758d8a2a0 --- /dev/null +++ b/tests/baselines/reference/exportStarForValues9.js @@ -0,0 +1,37 @@ +//// [tests/cases/compiler/exportStarForValues9.ts] //// + +//// [file1.ts] + +export interface Foo { x } + +//// [file2.ts] +export interface A { x } +export * from "file1" +export * from "file3" +export var x = 1; + +//// [file3.ts] +export interface B { x } +export * from "file2" +export var x = 1; + + +//// [file1.js] +define(["require", "exports"], function (require, exports) { +}); +//// [file3.js] +define(["require", "exports", "file2"], function (require, exports, file2_1) { + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + __export(file2_1); + exports.x = 1; +}); +//// [file2.js] +define(["require", "exports", "file3"], function (require, exports, file3_1) { + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + __export(file3_1); + exports.x = 1; +}); diff --git a/tests/baselines/reference/exportStarForValues9.symbols b/tests/baselines/reference/exportStarForValues9.symbols new file mode 100644 index 00000000000..0684c9e7b7c --- /dev/null +++ b/tests/baselines/reference/exportStarForValues9.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(x, Decl(file1.ts, 1, 22)) + +=== tests/cases/compiler/file2.ts === +export interface A { x } +>A : Symbol(A, Decl(file2.ts, 0, 0)) +>x : Symbol(x, Decl(file2.ts, 0, 20)) + +export * from "file1" +export * from "file3" +export var x = 1; +>x : Symbol(x, Decl(file2.ts, 3, 10)) + +=== tests/cases/compiler/file3.ts === +export interface B { x } +>B : Symbol(B, Decl(file3.ts, 0, 0)) +>x : Symbol(x, Decl(file3.ts, 0, 20)) + +export * from "file2" +export var x = 1; +>x : Symbol(x, Decl(file3.ts, 2, 10)) + diff --git a/tests/baselines/reference/exportStarForValues9.types b/tests/baselines/reference/exportStarForValues9.types new file mode 100644 index 00000000000..3cf250ec50b --- /dev/null +++ b/tests/baselines/reference/exportStarForValues9.types @@ -0,0 +1,27 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Foo +>x : any + +=== tests/cases/compiler/file2.ts === +export interface A { x } +>A : A +>x : any + +export * from "file1" +export * from "file3" +export var x = 1; +>x : number +>1 : number + +=== tests/cases/compiler/file3.ts === +export interface B { x } +>B : B +>x : any + +export * from "file2" +export var x = 1; +>x : number +>1 : number + diff --git a/tests/baselines/reference/exportStarForValuesInSystem.js b/tests/baselines/reference/exportStarForValuesInSystem.js new file mode 100644 index 00000000000..29b839731a8 --- /dev/null +++ b/tests/baselines/reference/exportStarForValuesInSystem.js @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/exportStarForValuesInSystem.ts] //// + +//// [file1.ts] + +export interface Foo { x } + +//// [file2.ts] +export * from "file1" +var x = 1; + +//// [file1.js] +System.register([], function(exports_1) { + return { + setters:[], + execute: function() { + } + } +}); +//// [file2.js] +System.register([], function(exports_1) { + var x; + return { + setters:[], + execute: function() { + x = 1; + } + } +}); diff --git a/tests/baselines/reference/exportStarForValuesInSystem.symbols b/tests/baselines/reference/exportStarForValuesInSystem.symbols new file mode 100644 index 00000000000..c9ef9830c60 --- /dev/null +++ b/tests/baselines/reference/exportStarForValuesInSystem.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Symbol(Foo, Decl(file1.ts, 0, 0)) +>x : Symbol(x, Decl(file1.ts, 1, 22)) + +=== tests/cases/compiler/file2.ts === +export * from "file1" +var x = 1; +>x : Symbol(x, Decl(file2.ts, 1, 3)) + diff --git a/tests/baselines/reference/exportStarForValuesInSystem.types b/tests/baselines/reference/exportStarForValuesInSystem.types new file mode 100644 index 00000000000..36d07741e10 --- /dev/null +++ b/tests/baselines/reference/exportStarForValuesInSystem.types @@ -0,0 +1,12 @@ +=== tests/cases/compiler/file1.ts === + +export interface Foo { x } +>Foo : Foo +>x : any + +=== tests/cases/compiler/file2.ts === +export * from "file1" +var x = 1; +>x : number +>1 : number + diff --git a/tests/baselines/reference/moduleElementsInWrongContext.js b/tests/baselines/reference/moduleElementsInWrongContext.js index 635da02bdf2..df4935f9e19 100644 --- a/tests/baselines/reference/moduleElementsInWrongContext.js +++ b/tests/baselines/reference/moduleElementsInWrongContext.js @@ -34,7 +34,6 @@ { var v; function foo() { } - __export(require("ambient")); exports["default"] = v; var C = (function () { function C() { diff --git a/tests/baselines/reference/moduleElementsInWrongContext2.js b/tests/baselines/reference/moduleElementsInWrongContext2.js index fdf1222e549..b923bc7861e 100644 --- a/tests/baselines/reference/moduleElementsInWrongContext2.js +++ b/tests/baselines/reference/moduleElementsInWrongContext2.js @@ -34,7 +34,6 @@ function blah () { function blah() { var v; function foo() { } - __export(require("ambient")); exports["default"] = v; var C = (function () { function C() { diff --git a/tests/baselines/reference/moduleElementsInWrongContext3.js b/tests/baselines/reference/moduleElementsInWrongContext3.js index d464d9d31b1..2fa0b60dce4 100644 --- a/tests/baselines/reference/moduleElementsInWrongContext3.js +++ b/tests/baselines/reference/moduleElementsInWrongContext3.js @@ -37,7 +37,6 @@ var P; { var v; function foo() { } - __export(require("ambient")); P["default"] = v; var C = (function () { function C() { diff --git a/tests/cases/compiler/exportStarForValues.ts b/tests/cases/compiler/exportStarForValues.ts new file mode 100644 index 00000000000..3432548c528 --- /dev/null +++ b/tests/cases/compiler/exportStarForValues.ts @@ -0,0 +1,8 @@ +// @module: amd + +// @filename: file1.ts +export interface Foo { x } + +// @filename: file2.ts +export * from "file1" +var x; \ No newline at end of file diff --git a/tests/cases/compiler/exportStarForValues10.ts b/tests/cases/compiler/exportStarForValues10.ts new file mode 100644 index 00000000000..82cee772b18 --- /dev/null +++ b/tests/cases/compiler/exportStarForValues10.ts @@ -0,0 +1,12 @@ +// @module: system + +// @filename: file0.ts +export var v = 1; + +// @filename: file1.ts +export interface Foo { x } + +// @filename: file2.ts +export * from "file0"; +export * from "file1"; +var x = 1; \ No newline at end of file diff --git a/tests/cases/compiler/exportStarForValues2.ts b/tests/cases/compiler/exportStarForValues2.ts new file mode 100644 index 00000000000..63a880cce0a --- /dev/null +++ b/tests/cases/compiler/exportStarForValues2.ts @@ -0,0 +1,12 @@ +// @module: amd + +// @filename: file1.ts +export interface Foo { x } + +// @filename: file2.ts +export * from "file1" +var x = 1; + +// @filename: file3.ts +export * from "file2" +var x = 1; \ No newline at end of file diff --git a/tests/cases/compiler/exportStarForValues3.ts b/tests/cases/compiler/exportStarForValues3.ts new file mode 100644 index 00000000000..f0c36db0bda --- /dev/null +++ b/tests/cases/compiler/exportStarForValues3.ts @@ -0,0 +1,24 @@ +// @module: amd + +// @filename: file1.ts +export interface Foo { x } + +// @filename: file2.ts +export interface A { x } +export * from "file1" +var x = 1; + +// @filename: file3.ts +export interface B { x } +export * from "file1" +var x = 1; + +// @filename: file4.ts +export interface C { x } +export * from "file2" +export * from "file3" +var x = 1; + +// @filename: file5.ts +export * from "file4" +var x = 1; \ No newline at end of file diff --git a/tests/cases/compiler/exportStarForValues4.ts b/tests/cases/compiler/exportStarForValues4.ts new file mode 100644 index 00000000000..d685ba1c8a3 --- /dev/null +++ b/tests/cases/compiler/exportStarForValues4.ts @@ -0,0 +1,15 @@ +// @module: amd + +// @filename: file1.ts +export interface Foo { x } + +// @filename: file2.ts +export interface A { x } +export * from "file1" +export * from "file3" +var x = 1; + +// @filename: file3.ts +export interface B { x } +export * from "file2" +var x = 1; diff --git a/tests/cases/compiler/exportStarForValues5.ts b/tests/cases/compiler/exportStarForValues5.ts new file mode 100644 index 00000000000..cb716c72002 --- /dev/null +++ b/tests/cases/compiler/exportStarForValues5.ts @@ -0,0 +1,8 @@ +// @module: amd + +// @filename: file1.ts +export interface Foo { x } + +// @filename: file2.ts +export * from "file1" +export var x; \ No newline at end of file diff --git a/tests/cases/compiler/exportStarForValues6.ts b/tests/cases/compiler/exportStarForValues6.ts new file mode 100644 index 00000000000..a623e31f178 --- /dev/null +++ b/tests/cases/compiler/exportStarForValues6.ts @@ -0,0 +1,8 @@ +// @module: system + +// @filename: file1.ts +export interface Foo { x } + +// @filename: file2.ts +export * from "file1" +export var x = 1; \ No newline at end of file diff --git a/tests/cases/compiler/exportStarForValues7.ts b/tests/cases/compiler/exportStarForValues7.ts new file mode 100644 index 00000000000..c1343a44119 --- /dev/null +++ b/tests/cases/compiler/exportStarForValues7.ts @@ -0,0 +1,12 @@ +// @module: amd + +// @filename: file1.ts +export interface Foo { x } + +// @filename: file2.ts +export * from "file1" +export var x = 1; + +// @filename: file3.ts +export * from "file2" +export var x = 1; \ No newline at end of file diff --git a/tests/cases/compiler/exportStarForValues8.ts b/tests/cases/compiler/exportStarForValues8.ts new file mode 100644 index 00000000000..0594f8b0877 --- /dev/null +++ b/tests/cases/compiler/exportStarForValues8.ts @@ -0,0 +1,24 @@ +// @module: amd + +// @filename: file1.ts +export interface Foo { x } + +// @filename: file2.ts +export interface A { x } +export * from "file1" +export var x = 1; + +// @filename: file3.ts +export interface B { x } +export * from "file1" +export var x = 1; + +// @filename: file4.ts +export interface C { x } +export * from "file2" +export * from "file3" +export var x = 1; + +// @filename: file5.ts +export * from "file4" +export var x = 1; \ No newline at end of file diff --git a/tests/cases/compiler/exportStarForValues9.ts b/tests/cases/compiler/exportStarForValues9.ts new file mode 100644 index 00000000000..53ffb1b7954 --- /dev/null +++ b/tests/cases/compiler/exportStarForValues9.ts @@ -0,0 +1,15 @@ +// @module: amd + +// @filename: file1.ts +export interface Foo { x } + +// @filename: file2.ts +export interface A { x } +export * from "file1" +export * from "file3" +export var x = 1; + +// @filename: file3.ts +export interface B { x } +export * from "file2" +export var x = 1; diff --git a/tests/cases/compiler/exportStarForValuesInSystem.ts b/tests/cases/compiler/exportStarForValuesInSystem.ts new file mode 100644 index 00000000000..1f60e8dec6f --- /dev/null +++ b/tests/cases/compiler/exportStarForValuesInSystem.ts @@ -0,0 +1,8 @@ +// @module: system + +// @filename: file1.ts +export interface Foo { x } + +// @filename: file2.ts +export * from "file1" +var x = 1; \ No newline at end of file From 6120f1f3da5ad35973f4d60e0e4c86eb9496d7b0 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Sun, 4 Oct 2015 22:45:08 -0700 Subject: [PATCH 012/103] fix linter issues --- src/compiler/checker.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 18e76f46d72..1cabea864dc 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -14507,8 +14507,8 @@ namespace ts { if (symbolLinks.exportsSomeValue == undefined) { // for export assignments - check if resolved symbol for RHS is itself a value // otherwise - check if at least one export is value - symbolLinks.exportsSomeValue = hasExportAssignment - ? !!(moduleSymbol.flags & SymbolFlags.Value) + symbolLinks.exportsSomeValue = hasExportAssignment + ? !!(moduleSymbol.flags & SymbolFlags.Value) : forEachValue(getExportsOfModule(moduleSymbol), isValue); } @@ -14519,7 +14519,7 @@ namespace ts { return s && !!(s.flags & SymbolFlags.Value); } } - + // When resolved as an expression identifier, if the given node references an exported entity, return the declaration // node of the exported entity's container. Otherwise, return undefined. function getReferencedExportContainer(node: Identifier): SourceFile | ModuleDeclaration | EnumDeclaration { From ff7169530b18a874d396ace114be3e2e4dbfa31c Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 6 Oct 2015 12:49:42 -0700 Subject: [PATCH 013/103] trial of change --- src/compiler/checker.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 40db300d310..ec2a5bfb020 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1020,11 +1020,14 @@ namespace ts { return links.resolvedExports || (links.resolvedExports = getExportsForModule(moduleSymbol)); } - function extendExportSymbols(target: SymbolTable, source: SymbolTable) { + function extendExportSymbols(originalModule: Symbol, target: SymbolTable, source: SymbolTable) { for (let id in source) { if (id !== "default" && !hasProperty(target, id)) { target[id] = source[id]; } + else if (id !== "default" && hasProperty(target, id)) { + diagnostics.add(createFileDiagnostic(getSourceFileOfNode(originalModule.valueDeclaration), 0, 0, Diagnostics.Duplicate_identifier_0, id)); + } } } @@ -1043,7 +1046,7 @@ namespace ts { if (!result) { result = cloneSymbolTable(moduleSymbol.exports); } - extendExportSymbols(result, symbol.exports); + extendExportSymbols(moduleSymbol, result, symbol.exports); } // All export * declarations are collected in an __export symbol by the binder let exportStars = symbol.exports["__export"]; From b9800f09b7e8f398b2f58025175ea42a3d1e522a Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 6 Oct 2015 15:50:35 -0700 Subject: [PATCH 014/103] Handle export * reexport errors smartly --- src/compiler/checker.ts | 52 +++++++++++++------ src/compiler/diagnosticMessages.json | 4 ++ .../reference/exportStar-amd.errors.txt | 8 ++- .../baselines/reference/exportStar.errors.txt | 8 ++- 4 files changed, 55 insertions(+), 17 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ec2a5bfb020..e4423773555 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1020,41 +1020,62 @@ namespace ts { return links.resolvedExports || (links.resolvedExports = getExportsForModule(moduleSymbol)); } - function extendExportSymbols(originalModule: Symbol, target: SymbolTable, source: SymbolTable) { + interface ExportStarDiagnosticsLookupTable { + [id: string]: {specifierText: string, exportsWithDuplicate: ExportDeclaration[]}; + } + + function extendExportSymbols(target: SymbolTable, source: SymbolTable, lookupTable?: ExportStarDiagnosticsLookupTable, exportNode?: ExportDeclaration) { for (let id in source) { if (id !== "default" && !hasProperty(target, id)) { target[id] = source[id]; + if (lookupTable && exportNode) { + lookupTable[id] = { + specifierText: getTextOfNode(exportNode.moduleSpecifier), + exportsWithDuplicate: [] + }; + } } - else if (id !== "default" && hasProperty(target, id)) { - diagnostics.add(createFileDiagnostic(getSourceFileOfNode(originalModule.valueDeclaration), 0, 0, Diagnostics.Duplicate_identifier_0, id)); + else if (lookupTable && exportNode && id !== "default" && hasProperty(target, id)) { + lookupTable[id].exportsWithDuplicate.push(exportNode); } } } function getExportsForModule(moduleSymbol: Symbol): SymbolTable { - let result: SymbolTable; let visitedSymbols: Symbol[] = []; - visit(moduleSymbol); - return result || moduleSymbol.exports; + return visit(moduleSymbol) || moduleSymbol.exports; // The ES6 spec permits export * declarations in a module to circularly reference the module itself. For example, // module 'a' can 'export * from "b"' and 'b' can 'export * from "a"' without error. - function visit(symbol: Symbol) { + function visit(symbol: Symbol): SymbolTable { if (symbol && symbol.flags & SymbolFlags.HasExports && !contains(visitedSymbols, symbol)) { visitedSymbols.push(symbol); - if (symbol !== moduleSymbol) { - if (!result) { - result = cloneSymbolTable(moduleSymbol.exports); - } - extendExportSymbols(moduleSymbol, result, symbol.exports); - } + let symbols: SymbolTable = cloneSymbolTable(symbol.exports); // All export * declarations are collected in an __export symbol by the binder let exportStars = symbol.exports["__export"]; if (exportStars) { + let nestedSymbols: SymbolTable = {}; + let lookupTable: ExportStarDiagnosticsLookupTable = {}; for (let node of exportStars.declarations) { - visit(resolveExternalModuleName(node, (node).moduleSpecifier)); + let resolvedModule = resolveExternalModuleName(node, (node as ExportDeclaration).moduleSpecifier); + let exportedSymbols = visit(resolvedModule); + extendExportSymbols( + nestedSymbols, + exportedSymbols, + lookupTable, + node as ExportDeclaration + ); } + for (let id in lookupTable) { + if (id !== "export=" && lookupTable[id].exportsWithDuplicate.length && !(id in symbols)) { // It's not an error if the file with multiple export *'s with duplicate names exports a member with that name itself + for (let node of lookupTable[id].exportsWithDuplicate) { + diagnostics.add(createDiagnosticForNode(node, Diagnostics.An_export_Asterisk_from_0_declaration_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity, lookupTable[id].specifierText, id)); + } + } + } + extendExportSymbols(symbols, nestedSymbols); } + return symbols; } } } @@ -13701,13 +13722,14 @@ namespace ts { function checkExternalModuleExports(node: SourceFile | ModuleDeclaration) { let moduleSymbol = getSymbolOfNode(node); - let links = getSymbolLinks(moduleSymbol); + let links: SymbolLinks = getSymbolLinks(moduleSymbol); if (!links.exportsChecked) { let exportEqualsSymbol = moduleSymbol.exports["export="]; if (exportEqualsSymbol && hasExportedMembers(moduleSymbol)) { let declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration; error(declaration, Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements); } + getExportsOfModule(moduleSymbol); // Checks for export * conflicts links.exportsChecked = true; } } diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index f6656edb250..0f14ea0b021 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -832,6 +832,10 @@ "category": "Error", "code": 2307 }, + "An 'export * from {0}' declaration has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.": { + "category": "Error", + "code": 2308 + }, "An export assignment cannot be used in a module with other exported elements.": { "category": "Error", "code": 2309 diff --git a/tests/baselines/reference/exportStar-amd.errors.txt b/tests/baselines/reference/exportStar-amd.errors.txt index adab0516103..237290485b0 100644 --- a/tests/baselines/reference/exportStar-amd.errors.txt +++ b/tests/baselines/reference/exportStar-amd.errors.txt @@ -1,4 +1,6 @@ tests/cases/conformance/es6/modules/main.ts(1,8): error TS1192: Module '"tests/cases/conformance/es6/modules/t4"' has no default export. +tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. +tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. ==== tests/cases/conformance/es6/modules/t1.ts (0 errors) ==== @@ -16,10 +18,14 @@ tests/cases/conformance/es6/modules/main.ts(1,8): error TS1192: Module '"tests/c var z = "z"; export { x, y, z }; -==== tests/cases/conformance/es6/modules/t4.ts (0 errors) ==== +==== tests/cases/conformance/es6/modules/t4.ts (2 errors) ==== export * from "./t1"; export * from "./t2"; export * from "./t3"; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. ==== tests/cases/conformance/es6/modules/main.ts (1 errors) ==== import hello, { x, y, z, foo } from "./t4"; diff --git a/tests/baselines/reference/exportStar.errors.txt b/tests/baselines/reference/exportStar.errors.txt index adab0516103..237290485b0 100644 --- a/tests/baselines/reference/exportStar.errors.txt +++ b/tests/baselines/reference/exportStar.errors.txt @@ -1,4 +1,6 @@ tests/cases/conformance/es6/modules/main.ts(1,8): error TS1192: Module '"tests/cases/conformance/es6/modules/t4"' has no default export. +tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. +tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. ==== tests/cases/conformance/es6/modules/t1.ts (0 errors) ==== @@ -16,10 +18,14 @@ tests/cases/conformance/es6/modules/main.ts(1,8): error TS1192: Module '"tests/c var z = "z"; export { x, y, z }; -==== tests/cases/conformance/es6/modules/t4.ts (0 errors) ==== +==== tests/cases/conformance/es6/modules/t4.ts (2 errors) ==== export * from "./t1"; export * from "./t2"; export * from "./t3"; + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. ==== tests/cases/conformance/es6/modules/main.ts (1 errors) ==== import hello, { x, y, z, foo } from "./t4"; From d8aa469a7d26caf4fa2b4504f3ae626abd0a6e72 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 6 Oct 2015 17:59:14 -0700 Subject: [PATCH 015/103] forbid duplicate var exports --- src/compiler/checker.ts | 21 +++- src/compiler/diagnosticMessages.json | 4 + ...lowedWithNamedImport1WithExport.errors.txt | 20 +++- ...llowedWithNamedImportWithExport.errors.txt | 20 +++- .../es6ImportNamedImportWithExport.errors.txt | 32 ++++- .../moduleDuplicateIdentifiers.errors.txt | 44 +++++++ .../reference/moduleDuplicateIdentifiers.js | 58 +++++++++ .../multipleDefaultExports02.errors.txt | 8 +- ...tExternalModuleImportWithExport.errors.txt | 55 +++++++++ ...ientExternalModuleImportWithExport.symbols | 105 ---------------- ...mbientExternalModuleImportWithExport.types | 113 ------------------ ...ternalModuleImportWithoutExport.errors.txt | 55 +++++++++ ...tExternalModuleImportWithoutExport.symbols | 105 ---------------- ...entExternalModuleImportWithoutExport.types | 113 ------------------ .../typeofANonExportedType.errors.txt | 8 +- .../reference/typeofAnExportedType.errors.txt | 8 +- .../compiler/moduleDuplicateIdentifiers.ts | 30 +++++ 17 files changed, 356 insertions(+), 443 deletions(-) create mode 100644 tests/baselines/reference/moduleDuplicateIdentifiers.errors.txt create mode 100644 tests/baselines/reference/moduleDuplicateIdentifiers.js create mode 100644 tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.errors.txt delete mode 100644 tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.symbols delete mode 100644 tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.types create mode 100644 tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.errors.txt delete mode 100644 tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.symbols delete mode 100644 tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.types create mode 100644 tests/cases/compiler/moduleDuplicateIdentifiers.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index e4423773555..1a692572802 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -13729,7 +13729,26 @@ namespace ts { let declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration; error(declaration, Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements); } - getExportsOfModule(moduleSymbol); // Checks for export * conflicts + let exports = getExportsOfModule(moduleSymbol); // Checks for export * conflicts + for (let id in exports) { + if (id === "__export") continue; + if (!(exports[id].flags & SymbolFlags.Namespace || exports[id].flags & SymbolFlags.Interface) && exports[id].declarations.length > 1) { // 15.2.1.1 It is a Syntax Error if the ExportedNames of ModuleItemList contains any duplicate entries. (TS Exceptions: namespaces, function overloads, and interfaces) + let exportedDeclarations: Declaration[] = []; + for (let declaration of exports[id].declarations) { + if (declaration.kind === SyntaxKind.FunctionDeclaration) { + if (!(declaration as FunctionDeclaration).body) { + continue; + } + } + exportedDeclarations.push(declaration); + } + if (exportedDeclarations.length > 1) { + for (let declaration of exportedDeclarations) { + diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Cannot_redeclare_exported_variable_0, id)); + } + } + } + } links.exportsChecked = true; } } diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 0f14ea0b021..51fd7a1fa2e 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -892,6 +892,10 @@ "category": "Error", "code": 2322 }, + "Cannot redeclare exported variable '{0}'.": { + "category": "Error", + "code": 2323 + }, "Property '{0}' is missing in type '{1}'.": { "category": "Error", "code": 2324 diff --git a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport1WithExport.errors.txt b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport1WithExport.errors.txt index 76c424a74d4..97c66a17960 100644 --- a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport1WithExport.errors.txt +++ b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport1WithExport.errors.txt @@ -1,15 +1,21 @@ tests/cases/compiler/client.ts(1,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(2,12): error TS2323: Cannot redeclare exported variable 'x1'. tests/cases/compiler/client.ts(3,1): error TS1191: An import declaration cannot have modifiers. tests/cases/compiler/client.ts(3,34): error TS2305: Module '"tests/cases/compiler/server"' has no exported member 'a'. +tests/cases/compiler/client.ts(4,12): error TS2323: Cannot redeclare exported variable 'x1'. tests/cases/compiler/client.ts(5,1): error TS1191: An import declaration cannot have modifiers. tests/cases/compiler/client.ts(5,34): error TS2305: Module '"tests/cases/compiler/server"' has no exported member 'a'. +tests/cases/compiler/client.ts(6,12): error TS2323: Cannot redeclare exported variable 'x1'. tests/cases/compiler/client.ts(7,1): error TS1191: An import declaration cannot have modifiers. tests/cases/compiler/client.ts(7,34): error TS2305: Module '"tests/cases/compiler/server"' has no exported member 'x'. tests/cases/compiler/client.ts(7,37): error TS2305: Module '"tests/cases/compiler/server"' has no exported member 'a'. +tests/cases/compiler/client.ts(8,12): error TS2323: Cannot redeclare exported variable 'x1'. tests/cases/compiler/client.ts(9,1): error TS1191: An import declaration cannot have modifiers. tests/cases/compiler/client.ts(9,34): error TS2305: Module '"tests/cases/compiler/server"' has no exported member 'x'. +tests/cases/compiler/client.ts(10,12): error TS2323: Cannot redeclare exported variable 'x1'. tests/cases/compiler/client.ts(11,1): error TS1191: An import declaration cannot have modifiers. tests/cases/compiler/client.ts(11,34): error TS2305: Module '"tests/cases/compiler/server"' has no exported member 'm'. +tests/cases/compiler/client.ts(12,12): error TS2323: Cannot redeclare exported variable 'x1'. ==== tests/cases/compiler/server.ts (0 errors) ==== @@ -17,23 +23,29 @@ tests/cases/compiler/client.ts(11,34): error TS2305: Module '"tests/cases/compil var a = 10; export default a; -==== tests/cases/compiler/client.ts (12 errors) ==== +==== tests/cases/compiler/client.ts (18 errors) ==== export import defaultBinding1, { } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var x1: number = defaultBinding1; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'x1'. export import defaultBinding2, { a } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. ~ !!! error TS2305: Module '"tests/cases/compiler/server"' has no exported member 'a'. export var x1: number = defaultBinding2; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'x1'. export import defaultBinding3, { a as b } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. ~ !!! error TS2305: Module '"tests/cases/compiler/server"' has no exported member 'a'. export var x1: number = defaultBinding3; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'x1'. export import defaultBinding4, { x, a as y } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. @@ -42,16 +54,22 @@ tests/cases/compiler/client.ts(11,34): error TS2305: Module '"tests/cases/compil ~ !!! error TS2305: Module '"tests/cases/compiler/server"' has no exported member 'a'. export var x1: number = defaultBinding4; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'x1'. export import defaultBinding5, { x as z, } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. ~ !!! error TS2305: Module '"tests/cases/compiler/server"' has no exported member 'x'. export var x1: number = defaultBinding5; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'x1'. export import defaultBinding6, { m, } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. ~ !!! error TS2305: Module '"tests/cases/compiler/server"' has no exported member 'm'. export var x1: number = defaultBinding6; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'x1'. \ No newline at end of file diff --git a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImportWithExport.errors.txt b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImportWithExport.errors.txt index 83f91787b87..859fe59b47f 100644 --- a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImportWithExport.errors.txt +++ b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImportWithExport.errors.txt @@ -1,9 +1,15 @@ tests/cases/compiler/client.ts(1,1): error TS1191: An import declaration cannot have modifiers. tests/cases/compiler/client.ts(2,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(3,12): error TS2323: Cannot redeclare exported variable 'x1'. tests/cases/compiler/client.ts(4,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(5,12): error TS2323: Cannot redeclare exported variable 'x1'. tests/cases/compiler/client.ts(6,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(7,12): error TS2323: Cannot redeclare exported variable 'x1'. +tests/cases/compiler/client.ts(8,12): error TS2323: Cannot redeclare exported variable 'x1'. tests/cases/compiler/client.ts(9,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(10,12): error TS2323: Cannot redeclare exported variable 'x1'. tests/cases/compiler/client.ts(11,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(12,12): error TS2323: Cannot redeclare exported variable 'x1'. ==== tests/cases/compiler/server.ts (0 errors) ==== @@ -13,7 +19,7 @@ tests/cases/compiler/client.ts(11,1): error TS1191: An import declaration cannot export var m = a; export default {}; -==== tests/cases/compiler/client.ts (6 errors) ==== +==== tests/cases/compiler/client.ts (12 errors) ==== export import defaultBinding1, { } from "server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. @@ -21,21 +27,33 @@ tests/cases/compiler/client.ts(11,1): error TS1191: An import declaration cannot ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var x1: number = a; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'x1'. export import defaultBinding3, { a as b } from "server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var x1: number = b; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'x1'. export import defaultBinding4, { x, a as y } from "server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var x1: number = x; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'x1'. export var x1: number = y; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'x1'. export import defaultBinding5, { x as z, } from "server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var x1: number = z; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'x1'. export import defaultBinding6, { m, } from "server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var x1: number = m; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'x1'. \ No newline at end of file diff --git a/tests/baselines/reference/es6ImportNamedImportWithExport.errors.txt b/tests/baselines/reference/es6ImportNamedImportWithExport.errors.txt index a5a4301683e..3b2d6b0cbd0 100644 --- a/tests/baselines/reference/es6ImportNamedImportWithExport.errors.txt +++ b/tests/baselines/reference/es6ImportNamedImportWithExport.errors.txt @@ -1,11 +1,21 @@ tests/cases/compiler/client.ts(1,1): error TS1191: An import declaration cannot have modifiers. tests/cases/compiler/client.ts(2,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(3,12): error TS2323: Cannot redeclare exported variable 'xxxx'. tests/cases/compiler/client.ts(4,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(5,12): error TS2323: Cannot redeclare exported variable 'xxxx'. tests/cases/compiler/client.ts(6,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(7,12): error TS2323: Cannot redeclare exported variable 'xxxx'. +tests/cases/compiler/client.ts(8,12): error TS2323: Cannot redeclare exported variable 'xxxx'. tests/cases/compiler/client.ts(9,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(10,12): error TS2323: Cannot redeclare exported variable 'xxxx'. tests/cases/compiler/client.ts(11,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(12,12): error TS2323: Cannot redeclare exported variable 'xxxx'. tests/cases/compiler/client.ts(13,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(14,12): error TS2323: Cannot redeclare exported variable 'xxxx'. +tests/cases/compiler/client.ts(15,12): error TS2323: Cannot redeclare exported variable 'xxxx'. tests/cases/compiler/client.ts(16,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/compiler/client.ts(17,12): error TS2323: Cannot redeclare exported variable 'xxxx'. +tests/cases/compiler/client.ts(18,12): error TS2323: Cannot redeclare exported variable 'xxxx'. tests/cases/compiler/client.ts(19,1): error TS1191: An import declaration cannot have modifiers. tests/cases/compiler/client.ts(21,1): error TS1191: An import declaration cannot have modifiers. tests/cases/compiler/client.ts(25,1): error TS1191: An import declaration cannot have modifiers. @@ -23,7 +33,7 @@ tests/cases/compiler/client.ts(26,1): error TS1191: An import declaration cannot export var z2 = 10; export var aaaa = 10; -==== tests/cases/compiler/client.ts (12 errors) ==== +==== tests/cases/compiler/client.ts (22 errors) ==== export import { } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. @@ -31,33 +41,53 @@ tests/cases/compiler/client.ts(26,1): error TS1191: An import declaration cannot ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var xxxx = a; + ~~~~ +!!! error TS2323: Cannot redeclare exported variable 'xxxx'. export import { a as b } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var xxxx = b; + ~~~~ +!!! error TS2323: Cannot redeclare exported variable 'xxxx'. export import { x, a as y } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var xxxx = x; + ~~~~ +!!! error TS2323: Cannot redeclare exported variable 'xxxx'. export var xxxx = y; + ~~~~ +!!! error TS2323: Cannot redeclare exported variable 'xxxx'. export import { x as z, } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var xxxx = z; + ~~~~ +!!! error TS2323: Cannot redeclare exported variable 'xxxx'. export import { m, } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var xxxx = m; + ~~~~ +!!! error TS2323: Cannot redeclare exported variable 'xxxx'. export import { a1, x1 } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var xxxx = a1; + ~~~~ +!!! error TS2323: Cannot redeclare exported variable 'xxxx'. export var xxxx = x1; + ~~~~ +!!! error TS2323: Cannot redeclare exported variable 'xxxx'. export import { a1 as a11, x1 as x11 } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. export var xxxx = a11; + ~~~~ +!!! error TS2323: Cannot redeclare exported variable 'xxxx'. export var xxxx = x11; + ~~~~ +!!! error TS2323: Cannot redeclare exported variable 'xxxx'. export import { z1 } from "./server"; ~~~~~~ !!! error TS1191: An import declaration cannot have modifiers. diff --git a/tests/baselines/reference/moduleDuplicateIdentifiers.errors.txt b/tests/baselines/reference/moduleDuplicateIdentifiers.errors.txt new file mode 100644 index 00000000000..67ab99eee4b --- /dev/null +++ b/tests/baselines/reference/moduleDuplicateIdentifiers.errors.txt @@ -0,0 +1,44 @@ +tests/cases/compiler/moduleDuplicateIdentifiers.ts(1,12): error TS2323: Cannot redeclare exported variable 'Foo'. +tests/cases/compiler/moduleDuplicateIdentifiers.ts(2,12): error TS2323: Cannot redeclare exported variable 'Foo'. +tests/cases/compiler/moduleDuplicateIdentifiers.ts(20,14): error TS2300: Duplicate identifier 'Kettle'. +tests/cases/compiler/moduleDuplicateIdentifiers.ts(24,14): error TS2300: Duplicate identifier 'Kettle'. + + +==== tests/cases/compiler/moduleDuplicateIdentifiers.ts (4 errors) ==== + export var Foo = 2; + ~~~ +!!! error TS2323: Cannot redeclare exported variable 'Foo'. + export var Foo = 42; // Should error + ~~~ +!!! error TS2323: Cannot redeclare exported variable 'Foo'. + + export interface Bar { + _brand1: any; + } + + export interface Bar { + _brand2: any; + } + + export namespace FooBar { + export var member1 = 2; + } + + export namespace FooBar { + export var member2 = 42; + } + + export class Kettle { + ~~~~~~ +!!! error TS2300: Duplicate identifier 'Kettle'. + member1 = 2; + } + + export class Kettle { + ~~~~~~ +!!! error TS2300: Duplicate identifier 'Kettle'. + member2 = 42; + } + + export var Pot = 2; + Pot = 42; // Shouldn't error \ No newline at end of file diff --git a/tests/baselines/reference/moduleDuplicateIdentifiers.js b/tests/baselines/reference/moduleDuplicateIdentifiers.js new file mode 100644 index 00000000000..e428ccd3c81 --- /dev/null +++ b/tests/baselines/reference/moduleDuplicateIdentifiers.js @@ -0,0 +1,58 @@ +//// [moduleDuplicateIdentifiers.ts] +export var Foo = 2; +export var Foo = 42; // Should error + +export interface Bar { + _brand1: any; +} + +export interface Bar { + _brand2: any; +} + +export namespace FooBar { + export var member1 = 2; +} + +export namespace FooBar { + export var member2 = 42; +} + +export class Kettle { + member1 = 2; +} + +export class Kettle { + member2 = 42; +} + +export var Pot = 2; +Pot = 42; // Shouldn't error + +//// [moduleDuplicateIdentifiers.js] +exports.Foo = 2; +exports.Foo = 42; // Should error +var FooBar; +(function (FooBar) { + FooBar.member1 = 2; +})(FooBar = exports.FooBar || (exports.FooBar = {})); +var FooBar; +(function (FooBar) { + FooBar.member2 = 42; +})(FooBar = exports.FooBar || (exports.FooBar = {})); +var Kettle = (function () { + function Kettle() { + this.member1 = 2; + } + return Kettle; +})(); +exports.Kettle = Kettle; +var Kettle = (function () { + function Kettle() { + this.member2 = 42; + } + return Kettle; +})(); +exports.Kettle = Kettle; +exports.Pot = 2; +exports.Pot = 42; // Shouldn't error diff --git a/tests/baselines/reference/multipleDefaultExports02.errors.txt b/tests/baselines/reference/multipleDefaultExports02.errors.txt index 235f8f7c3e3..3f27db47c94 100644 --- a/tests/baselines/reference/multipleDefaultExports02.errors.txt +++ b/tests/baselines/reference/multipleDefaultExports02.errors.txt @@ -1,17 +1,23 @@ +tests/cases/conformance/es6/modules/m1.ts(2,25): error TS2323: Cannot redeclare exported variable 'default'. tests/cases/conformance/es6/modules/m1.ts(2,25): error TS2393: Duplicate function implementation. +tests/cases/conformance/es6/modules/m1.ts(6,25): error TS2323: Cannot redeclare exported variable 'default'. tests/cases/conformance/es6/modules/m1.ts(6,25): error TS2393: Duplicate function implementation. -==== tests/cases/conformance/es6/modules/m1.ts (2 errors) ==== +==== tests/cases/conformance/es6/modules/m1.ts (4 errors) ==== export default function foo() { ~~~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + ~~~ !!! error TS2393: Duplicate function implementation. } export default function bar() { ~~~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + ~~~ !!! error TS2393: Duplicate function implementation. } diff --git a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.errors.txt b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.errors.txt new file mode 100644 index 00000000000..52d6c4c0fff --- /dev/null +++ b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.errors.txt @@ -0,0 +1,55 @@ +tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_core.ts(15,12): error TS2323: Cannot redeclare exported variable 'publicUse_im_public_mi_public'. +tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_core.ts(17,12): error TS2323: Cannot redeclare exported variable 'publicUse_im_public_mi_public'. + + +==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_core.ts (2 errors) ==== + /// + /// + // Privacy errors - importing private elements + export import im_public_mi_private = require("./privacyTopLevelAmbientExternalModuleImportWithExport_require"); + export import im_public_mu_private = require("./privacyTopLevelAmbientExternalModuleImportWithExport_require1"); + export import im_public_mi_public = require("m"); + export import im_public_mu_public = require("m2"); + + // Usage of privacy error imports + var privateUse_im_public_mi_private = new im_public_mi_private.c_public(); + export var publicUse_im_public_mi_private = new im_public_mi_private.c_public(); + var privateUse_im_public_mu_private = new im_public_mu_private.c_public(); + export var publicUse_im_public_mu_private = new im_public_mu_private.c_public(); + var privateUse_im_public_mi_public = new im_public_mi_public.c_private(); + export var publicUse_im_public_mi_public = new im_public_mi_public.c_private(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2323: Cannot redeclare exported variable 'publicUse_im_public_mi_public'. + var privateUse_im_public_mi_public = new im_public_mi_public.c_private(); + export var publicUse_im_public_mi_public = new im_public_mi_public.c_private(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2323: Cannot redeclare exported variable 'publicUse_im_public_mi_public'. + +==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require.ts (0 errors) ==== + // Public elements + export class c_public { + foo: string; + } + +==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require1.ts (0 errors) ==== + export class c_public { + bar: string; + } + +==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts (0 errors) ==== + // private elements + // Export - Error ambient modules allowed only in global + declare module 'm' { + export class c_private { + baz: string; + } + } + + +==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require3.ts (0 errors) ==== + declare module 'm2' { + export class c_private { + bing: string; + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.symbols b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.symbols deleted file mode 100644 index 2dcddbbfa06..00000000000 --- a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.symbols +++ /dev/null @@ -1,105 +0,0 @@ -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_core.ts === -/// -/// -// Privacy errors - importing private elements -export import im_public_mi_private = require("./privacyTopLevelAmbientExternalModuleImportWithExport_require"); ->im_public_mi_private : Symbol(im_public_mi_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 0, 0)) - -export import im_public_mu_private = require("./privacyTopLevelAmbientExternalModuleImportWithExport_require1"); ->im_public_mu_private : Symbol(im_public_mu_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 3, 111)) - -export import im_public_mi_public = require("m"); ->im_public_mi_public : Symbol(im_public_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 4, 112)) - -export import im_public_mu_public = require("m2"); ->im_public_mu_public : Symbol(im_public_mu_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 5, 49)) - -// Usage of privacy error imports -var privateUse_im_public_mi_private = new im_public_mi_private.c_public(); ->privateUse_im_public_mi_private : Symbol(privateUse_im_public_mi_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 9, 3)) ->im_public_mi_private.c_public : Symbol(im_public_mi_private.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require.ts, 0, 0)) ->im_public_mi_private : Symbol(im_public_mi_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 0, 0)) ->c_public : Symbol(im_public_mi_private.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require.ts, 0, 0)) - -export var publicUse_im_public_mi_private = new im_public_mi_private.c_public(); ->publicUse_im_public_mi_private : Symbol(publicUse_im_public_mi_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 10, 10)) ->im_public_mi_private.c_public : Symbol(im_public_mi_private.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require.ts, 0, 0)) ->im_public_mi_private : Symbol(im_public_mi_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 0, 0)) ->c_public : Symbol(im_public_mi_private.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require.ts, 0, 0)) - -var privateUse_im_public_mu_private = new im_public_mu_private.c_public(); ->privateUse_im_public_mu_private : Symbol(privateUse_im_public_mu_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 11, 3)) ->im_public_mu_private.c_public : Symbol(im_public_mu_private.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require1.ts, 0, 0)) ->im_public_mu_private : Symbol(im_public_mu_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 3, 111)) ->c_public : Symbol(im_public_mu_private.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require1.ts, 0, 0)) - -export var publicUse_im_public_mu_private = new im_public_mu_private.c_public(); ->publicUse_im_public_mu_private : Symbol(publicUse_im_public_mu_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 12, 10)) ->im_public_mu_private.c_public : Symbol(im_public_mu_private.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require1.ts, 0, 0)) ->im_public_mu_private : Symbol(im_public_mu_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 3, 111)) ->c_public : Symbol(im_public_mu_private.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require1.ts, 0, 0)) - -var privateUse_im_public_mi_public = new im_public_mi_public.c_private(); ->privateUse_im_public_mi_public : Symbol(privateUse_im_public_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 13, 3), Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 15, 3)) ->im_public_mi_public.c_private : Symbol(im_public_mi_public.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts, 2, 20)) ->im_public_mi_public : Symbol(im_public_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 4, 112)) ->c_private : Symbol(im_public_mi_public.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts, 2, 20)) - -export var publicUse_im_public_mi_public = new im_public_mi_public.c_private(); ->publicUse_im_public_mi_public : Symbol(publicUse_im_public_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 14, 10), Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 16, 10)) ->im_public_mi_public.c_private : Symbol(im_public_mi_public.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts, 2, 20)) ->im_public_mi_public : Symbol(im_public_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 4, 112)) ->c_private : Symbol(im_public_mi_public.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts, 2, 20)) - -var privateUse_im_public_mi_public = new im_public_mi_public.c_private(); ->privateUse_im_public_mi_public : Symbol(privateUse_im_public_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 13, 3), Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 15, 3)) ->im_public_mi_public.c_private : Symbol(im_public_mi_public.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts, 2, 20)) ->im_public_mi_public : Symbol(im_public_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 4, 112)) ->c_private : Symbol(im_public_mi_public.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts, 2, 20)) - -export var publicUse_im_public_mi_public = new im_public_mi_public.c_private(); ->publicUse_im_public_mi_public : Symbol(publicUse_im_public_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 14, 10), Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 16, 10)) ->im_public_mi_public.c_private : Symbol(im_public_mi_public.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts, 2, 20)) ->im_public_mi_public : Symbol(im_public_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_core.ts, 4, 112)) ->c_private : Symbol(im_public_mi_public.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts, 2, 20)) - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require.ts === -// Public elements -export class c_public { ->c_public : Symbol(c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require.ts, 0, 0)) - - foo: string; ->foo : Symbol(foo, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require.ts, 1, 23)) -} - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require1.ts === -export class c_public { ->c_public : Symbol(c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require1.ts, 0, 0)) - - bar: string; ->bar : Symbol(bar, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require1.ts, 0, 23)) -} - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts === -// private elements -// Export - Error ambient modules allowed only in global -declare module 'm' { - export class c_private { ->c_private : Symbol(c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts, 2, 20)) - - baz: string; ->baz : Symbol(baz, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts, 3, 28)) - } -} - - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require3.ts === -declare module 'm2' { - export class c_private { ->c_private : Symbol(c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require3.ts, 0, 21)) - - bing: string; ->bing : Symbol(bing, Decl(privacyTopLevelAmbientExternalModuleImportWithExport_require3.ts, 1, 28)) - } -} - diff --git a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.types b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.types deleted file mode 100644 index 5c082bef5de..00000000000 --- a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.types +++ /dev/null @@ -1,113 +0,0 @@ -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_core.ts === -/// -/// -// Privacy errors - importing private elements -export import im_public_mi_private = require("./privacyTopLevelAmbientExternalModuleImportWithExport_require"); ->im_public_mi_private : typeof im_public_mi_private - -export import im_public_mu_private = require("./privacyTopLevelAmbientExternalModuleImportWithExport_require1"); ->im_public_mu_private : typeof im_public_mu_private - -export import im_public_mi_public = require("m"); ->im_public_mi_public : typeof im_public_mi_public - -export import im_public_mu_public = require("m2"); ->im_public_mu_public : typeof im_public_mu_public - -// Usage of privacy error imports -var privateUse_im_public_mi_private = new im_public_mi_private.c_public(); ->privateUse_im_public_mi_private : im_public_mi_private.c_public ->new im_public_mi_private.c_public() : im_public_mi_private.c_public ->im_public_mi_private.c_public : typeof im_public_mi_private.c_public ->im_public_mi_private : typeof im_public_mi_private ->c_public : typeof im_public_mi_private.c_public - -export var publicUse_im_public_mi_private = new im_public_mi_private.c_public(); ->publicUse_im_public_mi_private : im_public_mi_private.c_public ->new im_public_mi_private.c_public() : im_public_mi_private.c_public ->im_public_mi_private.c_public : typeof im_public_mi_private.c_public ->im_public_mi_private : typeof im_public_mi_private ->c_public : typeof im_public_mi_private.c_public - -var privateUse_im_public_mu_private = new im_public_mu_private.c_public(); ->privateUse_im_public_mu_private : im_public_mu_private.c_public ->new im_public_mu_private.c_public() : im_public_mu_private.c_public ->im_public_mu_private.c_public : typeof im_public_mu_private.c_public ->im_public_mu_private : typeof im_public_mu_private ->c_public : typeof im_public_mu_private.c_public - -export var publicUse_im_public_mu_private = new im_public_mu_private.c_public(); ->publicUse_im_public_mu_private : im_public_mu_private.c_public ->new im_public_mu_private.c_public() : im_public_mu_private.c_public ->im_public_mu_private.c_public : typeof im_public_mu_private.c_public ->im_public_mu_private : typeof im_public_mu_private ->c_public : typeof im_public_mu_private.c_public - -var privateUse_im_public_mi_public = new im_public_mi_public.c_private(); ->privateUse_im_public_mi_public : im_public_mi_public.c_private ->new im_public_mi_public.c_private() : im_public_mi_public.c_private ->im_public_mi_public.c_private : typeof im_public_mi_public.c_private ->im_public_mi_public : typeof im_public_mi_public ->c_private : typeof im_public_mi_public.c_private - -export var publicUse_im_public_mi_public = new im_public_mi_public.c_private(); ->publicUse_im_public_mi_public : im_public_mi_public.c_private ->new im_public_mi_public.c_private() : im_public_mi_public.c_private ->im_public_mi_public.c_private : typeof im_public_mi_public.c_private ->im_public_mi_public : typeof im_public_mi_public ->c_private : typeof im_public_mi_public.c_private - -var privateUse_im_public_mi_public = new im_public_mi_public.c_private(); ->privateUse_im_public_mi_public : im_public_mi_public.c_private ->new im_public_mi_public.c_private() : im_public_mi_public.c_private ->im_public_mi_public.c_private : typeof im_public_mi_public.c_private ->im_public_mi_public : typeof im_public_mi_public ->c_private : typeof im_public_mi_public.c_private - -export var publicUse_im_public_mi_public = new im_public_mi_public.c_private(); ->publicUse_im_public_mi_public : im_public_mi_public.c_private ->new im_public_mi_public.c_private() : im_public_mi_public.c_private ->im_public_mi_public.c_private : typeof im_public_mi_public.c_private ->im_public_mi_public : typeof im_public_mi_public ->c_private : typeof im_public_mi_public.c_private - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require.ts === -// Public elements -export class c_public { ->c_public : c_public - - foo: string; ->foo : string -} - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require1.ts === -export class c_public { ->c_public : c_public - - bar: string; ->bar : string -} - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts === -// private elements -// Export - Error ambient modules allowed only in global -declare module 'm' { - export class c_private { ->c_private : c_private - - baz: string; ->baz : string - } -} - - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require3.ts === -declare module 'm2' { - export class c_private { ->c_private : c_private - - bing: string; ->bing : string - } -} - diff --git a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.errors.txt b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.errors.txt new file mode 100644 index 00000000000..cc81762bce3 --- /dev/null +++ b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.errors.txt @@ -0,0 +1,55 @@ +tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts(15,12): error TS2323: Cannot redeclare exported variable 'publicUse_im_private_mi_public'. +tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts(17,12): error TS2323: Cannot redeclare exported variable 'publicUse_im_private_mi_public'. + + +==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts (2 errors) ==== + /// + /// + // Privacy errors - importing private elements + import im_private_mi_private = require("m"); + import im_private_mu_private = require("m2"); + import im_private_mi_public = require("privacyTopLevelAmbientExternalModuleImportWithoutExport_require"); + import im_private_mu_public = require("privacyTopLevelAmbientExternalModuleImportWithoutExport_require1"); + + // Usage of privacy error imports + var privateUse_im_private_mi_private = new im_private_mi_private.c_private(); + export var publicUse_im_private_mi_private = new im_private_mi_private.c_private(); + var privateUse_im_private_mu_private = new im_private_mu_private.c_private(); + export var publicUse_im_private_mu_private = new im_private_mu_private.c_private(); + var privateUse_im_private_mi_public = new im_private_mi_public.c_public(); + export var publicUse_im_private_mi_public = new im_private_mi_public.c_public(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2323: Cannot redeclare exported variable 'publicUse_im_private_mi_public'. + var privateUse_im_private_mi_public = new im_private_mi_public.c_public(); + export var publicUse_im_private_mi_public = new im_private_mi_public.c_public(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2323: Cannot redeclare exported variable 'publicUse_im_private_mi_public'. + +==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts (0 errors) ==== + + // Public elements + export class c_public { + foo: string; + } + +==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require1.ts (0 errors) ==== + export class c_public { + bar: string; + } + +==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require2.ts (0 errors) ==== + // private elements + // Export - Error ambient modules allowed only in global + declare module 'm' { + export class c_private { + baz: string + } + } + +==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require3.ts (0 errors) ==== + declare module 'm2' { + export class c_private { + bing: string; + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.symbols b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.symbols deleted file mode 100644 index e366538124f..00000000000 --- a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.symbols +++ /dev/null @@ -1,105 +0,0 @@ -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts === -/// -/// -// Privacy errors - importing private elements -import im_private_mi_private = require("m"); ->im_private_mi_private : Symbol(im_private_mi_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 0, 0)) - -import im_private_mu_private = require("m2"); ->im_private_mu_private : Symbol(im_private_mu_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 3, 44)) - -import im_private_mi_public = require("privacyTopLevelAmbientExternalModuleImportWithoutExport_require"); ->im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 4, 45)) - -import im_private_mu_public = require("privacyTopLevelAmbientExternalModuleImportWithoutExport_require1"); ->im_private_mu_public : Symbol(im_private_mu_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 5, 105)) - -// Usage of privacy error imports -var privateUse_im_private_mi_private = new im_private_mi_private.c_private(); ->privateUse_im_private_mi_private : Symbol(privateUse_im_private_mi_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 9, 3)) ->im_private_mi_private.c_private : Symbol(im_private_mi_private.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require2.ts, 2, 20)) ->im_private_mi_private : Symbol(im_private_mi_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 0, 0)) ->c_private : Symbol(im_private_mi_private.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require2.ts, 2, 20)) - -export var publicUse_im_private_mi_private = new im_private_mi_private.c_private(); ->publicUse_im_private_mi_private : Symbol(publicUse_im_private_mi_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 10, 10)) ->im_private_mi_private.c_private : Symbol(im_private_mi_private.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require2.ts, 2, 20)) ->im_private_mi_private : Symbol(im_private_mi_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 0, 0)) ->c_private : Symbol(im_private_mi_private.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require2.ts, 2, 20)) - -var privateUse_im_private_mu_private = new im_private_mu_private.c_private(); ->privateUse_im_private_mu_private : Symbol(privateUse_im_private_mu_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 11, 3)) ->im_private_mu_private.c_private : Symbol(im_private_mu_private.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require3.ts, 0, 21)) ->im_private_mu_private : Symbol(im_private_mu_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 3, 44)) ->c_private : Symbol(im_private_mu_private.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require3.ts, 0, 21)) - -export var publicUse_im_private_mu_private = new im_private_mu_private.c_private(); ->publicUse_im_private_mu_private : Symbol(publicUse_im_private_mu_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 12, 10)) ->im_private_mu_private.c_private : Symbol(im_private_mu_private.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require3.ts, 0, 21)) ->im_private_mu_private : Symbol(im_private_mu_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 3, 44)) ->c_private : Symbol(im_private_mu_private.c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require3.ts, 0, 21)) - -var privateUse_im_private_mi_public = new im_private_mi_public.c_public(); ->privateUse_im_private_mi_public : Symbol(privateUse_im_private_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 13, 3), Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 15, 3)) ->im_private_mi_public.c_public : Symbol(im_private_mi_public.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts, 0, 0)) ->im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 4, 45)) ->c_public : Symbol(im_private_mi_public.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts, 0, 0)) - -export var publicUse_im_private_mi_public = new im_private_mi_public.c_public(); ->publicUse_im_private_mi_public : Symbol(publicUse_im_private_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 14, 10), Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 16, 10)) ->im_private_mi_public.c_public : Symbol(im_private_mi_public.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts, 0, 0)) ->im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 4, 45)) ->c_public : Symbol(im_private_mi_public.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts, 0, 0)) - -var privateUse_im_private_mi_public = new im_private_mi_public.c_public(); ->privateUse_im_private_mi_public : Symbol(privateUse_im_private_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 13, 3), Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 15, 3)) ->im_private_mi_public.c_public : Symbol(im_private_mi_public.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts, 0, 0)) ->im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 4, 45)) ->c_public : Symbol(im_private_mi_public.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts, 0, 0)) - -export var publicUse_im_private_mi_public = new im_private_mi_public.c_public(); ->publicUse_im_private_mi_public : Symbol(publicUse_im_private_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 14, 10), Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 16, 10)) ->im_private_mi_public.c_public : Symbol(im_private_mi_public.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts, 0, 0)) ->im_private_mi_public : Symbol(im_private_mi_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts, 4, 45)) ->c_public : Symbol(im_private_mi_public.c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts, 0, 0)) - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts === - -// Public elements -export class c_public { ->c_public : Symbol(c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts, 0, 0)) - - foo: string; ->foo : Symbol(foo, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts, 2, 23)) -} - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require1.ts === -export class c_public { ->c_public : Symbol(c_public, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require1.ts, 0, 0)) - - bar: string; ->bar : Symbol(bar, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require1.ts, 0, 23)) -} - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require2.ts === -// private elements -// Export - Error ambient modules allowed only in global -declare module 'm' { - export class c_private { ->c_private : Symbol(c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require2.ts, 2, 20)) - - baz: string ->baz : Symbol(baz, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require2.ts, 3, 28)) - } -} - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require3.ts === -declare module 'm2' { - export class c_private { ->c_private : Symbol(c_private, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require3.ts, 0, 21)) - - bing: string; ->bing : Symbol(bing, Decl(privacyTopLevelAmbientExternalModuleImportWithoutExport_require3.ts, 1, 28)) - } -} - diff --git a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.types b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.types deleted file mode 100644 index 437d35fb64a..00000000000 --- a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.types +++ /dev/null @@ -1,113 +0,0 @@ -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts === -/// -/// -// Privacy errors - importing private elements -import im_private_mi_private = require("m"); ->im_private_mi_private : typeof im_private_mi_private - -import im_private_mu_private = require("m2"); ->im_private_mu_private : typeof im_private_mu_private - -import im_private_mi_public = require("privacyTopLevelAmbientExternalModuleImportWithoutExport_require"); ->im_private_mi_public : typeof im_private_mi_public - -import im_private_mu_public = require("privacyTopLevelAmbientExternalModuleImportWithoutExport_require1"); ->im_private_mu_public : typeof im_private_mu_public - -// Usage of privacy error imports -var privateUse_im_private_mi_private = new im_private_mi_private.c_private(); ->privateUse_im_private_mi_private : im_private_mi_private.c_private ->new im_private_mi_private.c_private() : im_private_mi_private.c_private ->im_private_mi_private.c_private : typeof im_private_mi_private.c_private ->im_private_mi_private : typeof im_private_mi_private ->c_private : typeof im_private_mi_private.c_private - -export var publicUse_im_private_mi_private = new im_private_mi_private.c_private(); ->publicUse_im_private_mi_private : im_private_mi_private.c_private ->new im_private_mi_private.c_private() : im_private_mi_private.c_private ->im_private_mi_private.c_private : typeof im_private_mi_private.c_private ->im_private_mi_private : typeof im_private_mi_private ->c_private : typeof im_private_mi_private.c_private - -var privateUse_im_private_mu_private = new im_private_mu_private.c_private(); ->privateUse_im_private_mu_private : im_private_mu_private.c_private ->new im_private_mu_private.c_private() : im_private_mu_private.c_private ->im_private_mu_private.c_private : typeof im_private_mu_private.c_private ->im_private_mu_private : typeof im_private_mu_private ->c_private : typeof im_private_mu_private.c_private - -export var publicUse_im_private_mu_private = new im_private_mu_private.c_private(); ->publicUse_im_private_mu_private : im_private_mu_private.c_private ->new im_private_mu_private.c_private() : im_private_mu_private.c_private ->im_private_mu_private.c_private : typeof im_private_mu_private.c_private ->im_private_mu_private : typeof im_private_mu_private ->c_private : typeof im_private_mu_private.c_private - -var privateUse_im_private_mi_public = new im_private_mi_public.c_public(); ->privateUse_im_private_mi_public : im_private_mi_public.c_public ->new im_private_mi_public.c_public() : im_private_mi_public.c_public ->im_private_mi_public.c_public : typeof im_private_mi_public.c_public ->im_private_mi_public : typeof im_private_mi_public ->c_public : typeof im_private_mi_public.c_public - -export var publicUse_im_private_mi_public = new im_private_mi_public.c_public(); ->publicUse_im_private_mi_public : im_private_mi_public.c_public ->new im_private_mi_public.c_public() : im_private_mi_public.c_public ->im_private_mi_public.c_public : typeof im_private_mi_public.c_public ->im_private_mi_public : typeof im_private_mi_public ->c_public : typeof im_private_mi_public.c_public - -var privateUse_im_private_mi_public = new im_private_mi_public.c_public(); ->privateUse_im_private_mi_public : im_private_mi_public.c_public ->new im_private_mi_public.c_public() : im_private_mi_public.c_public ->im_private_mi_public.c_public : typeof im_private_mi_public.c_public ->im_private_mi_public : typeof im_private_mi_public ->c_public : typeof im_private_mi_public.c_public - -export var publicUse_im_private_mi_public = new im_private_mi_public.c_public(); ->publicUse_im_private_mi_public : im_private_mi_public.c_public ->new im_private_mi_public.c_public() : im_private_mi_public.c_public ->im_private_mi_public.c_public : typeof im_private_mi_public.c_public ->im_private_mi_public : typeof im_private_mi_public ->c_public : typeof im_private_mi_public.c_public - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts === - -// Public elements -export class c_public { ->c_public : c_public - - foo: string; ->foo : string -} - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require1.ts === -export class c_public { ->c_public : c_public - - bar: string; ->bar : string -} - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require2.ts === -// private elements -// Export - Error ambient modules allowed only in global -declare module 'm' { - export class c_private { ->c_private : c_private - - baz: string ->baz : string - } -} - -=== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require3.ts === -declare module 'm2' { - export class c_private { ->c_private : c_private - - bing: string; ->bing : string - } -} - diff --git a/tests/baselines/reference/typeofANonExportedType.errors.txt b/tests/baselines/reference/typeofANonExportedType.errors.txt index d07468f62e1..0fb239f6aee 100644 --- a/tests/baselines/reference/typeofANonExportedType.errors.txt +++ b/tests/baselines/reference/typeofANonExportedType.errors.txt @@ -1,8 +1,10 @@ tests/cases/conformance/types/specifyingTypes/typeQueries/typeofANonExportedType.ts(2,1): error TS1148: Cannot compile modules unless the '--module' flag is provided. +tests/cases/conformance/types/specifyingTypes/typeQueries/typeofANonExportedType.ts(20,12): error TS2323: Cannot redeclare exported variable 'r5'. +tests/cases/conformance/types/specifyingTypes/typeQueries/typeofANonExportedType.ts(21,12): error TS2323: Cannot redeclare exported variable 'r5'. tests/cases/conformance/types/specifyingTypes/typeQueries/typeofANonExportedType.ts(42,12): error TS2502: 'r12' is referenced directly or indirectly in its own type annotation. -==== tests/cases/conformance/types/specifyingTypes/typeQueries/typeofANonExportedType.ts (2 errors) ==== +==== tests/cases/conformance/types/specifyingTypes/typeQueries/typeofANonExportedType.ts (4 errors) ==== var x = 1; export var r1: typeof x; ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -25,7 +27,11 @@ tests/cases/conformance/types/specifyingTypes/typeQueries/typeofANonExportedType export var i: I; var i2: I; export var r5: typeof i; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'r5'. export var r5: typeof i2; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'r5'. module M { export var foo = ''; diff --git a/tests/baselines/reference/typeofAnExportedType.errors.txt b/tests/baselines/reference/typeofAnExportedType.errors.txt index cb6d8c68887..51dd7cf06b6 100644 --- a/tests/baselines/reference/typeofAnExportedType.errors.txt +++ b/tests/baselines/reference/typeofAnExportedType.errors.txt @@ -1,8 +1,10 @@ tests/cases/conformance/types/specifyingTypes/typeQueries/typeofAnExportedType.ts(1,1): error TS1148: Cannot compile modules unless the '--module' flag is provided. +tests/cases/conformance/types/specifyingTypes/typeQueries/typeofAnExportedType.ts(20,12): error TS2323: Cannot redeclare exported variable 'r5'. +tests/cases/conformance/types/specifyingTypes/typeQueries/typeofAnExportedType.ts(21,12): error TS2323: Cannot redeclare exported variable 'r5'. tests/cases/conformance/types/specifyingTypes/typeQueries/typeofAnExportedType.ts(42,12): error TS2502: 'r12' is referenced directly or indirectly in its own type annotation. -==== tests/cases/conformance/types/specifyingTypes/typeQueries/typeofAnExportedType.ts (2 errors) ==== +==== tests/cases/conformance/types/specifyingTypes/typeQueries/typeofAnExportedType.ts (4 errors) ==== export var x = 1; ~~~~~~~~~~~~~~~~~ !!! error TS1148: Cannot compile modules unless the '--module' flag is provided. @@ -25,7 +27,11 @@ tests/cases/conformance/types/specifyingTypes/typeQueries/typeofAnExportedType.t export var i: I; var i2: I; export var r5: typeof i; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'r5'. export var r5: typeof i2; + ~~ +!!! error TS2323: Cannot redeclare exported variable 'r5'. export module M { export var foo = ''; diff --git a/tests/cases/compiler/moduleDuplicateIdentifiers.ts b/tests/cases/compiler/moduleDuplicateIdentifiers.ts new file mode 100644 index 00000000000..283a6d241bf --- /dev/null +++ b/tests/cases/compiler/moduleDuplicateIdentifiers.ts @@ -0,0 +1,30 @@ +// @module: commonjs +export var Foo = 2; +export var Foo = 42; // Should error + +export interface Bar { + _brand1: any; +} + +export interface Bar { + _brand2: any; +} + +export namespace FooBar { + export var member1 = 2; +} + +export namespace FooBar { + export var member2 = 42; +} + +export class Kettle { + member1 = 2; +} + +export class Kettle { + member2 = 42; +} + +export var Pot = 2; +Pot = 42; // Shouldn't error \ No newline at end of file From 0115d688775ccdd18a34ce31ea7997e99a80fac3 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Wed, 7 Oct 2015 10:49:47 -0700 Subject: [PATCH 016/103] PR Feedback, add enums to exceptions --- src/compiler/checker.ts | 18 ++++++++---- .../moduleDuplicateIdentifiers.errors.txt | 19 +++++++++--- .../reference/moduleDuplicateIdentifiers.js | 29 ++++++++++++++++--- .../compiler/moduleDuplicateIdentifiers.ts | 18 +++++++++--- 4 files changed, 67 insertions(+), 17 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 1a692572802..419779c3f2d 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1067,9 +1067,15 @@ namespace ts { ); } for (let id in lookupTable) { - if (id !== "export=" && lookupTable[id].exportsWithDuplicate.length && !(id in symbols)) { // It's not an error if the file with multiple export *'s with duplicate names exports a member with that name itself + // It's not an error if the file with multiple export *'s with duplicate names exports a member with that name itself + if (id !== "export=" && lookupTable[id].exportsWithDuplicate.length && !(id in symbols)) { for (let node of lookupTable[id].exportsWithDuplicate) { - diagnostics.add(createDiagnosticForNode(node, Diagnostics.An_export_Asterisk_from_0_declaration_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity, lookupTable[id].specifierText, id)); + diagnostics.add(createDiagnosticForNode( + node, + Diagnostics.An_export_Asterisk_from_0_declaration_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity, + lookupTable[id].specifierText, + id + )); } } } @@ -13722,7 +13728,7 @@ namespace ts { function checkExternalModuleExports(node: SourceFile | ModuleDeclaration) { let moduleSymbol = getSymbolOfNode(node); - let links: SymbolLinks = getSymbolLinks(moduleSymbol); + let links = getSymbolLinks(moduleSymbol); if (!links.exportsChecked) { let exportEqualsSymbol = moduleSymbol.exports["export="]; if (exportEqualsSymbol && hasExportedMembers(moduleSymbol)) { @@ -13732,9 +13738,11 @@ namespace ts { let exports = getExportsOfModule(moduleSymbol); // Checks for export * conflicts for (let id in exports) { if (id === "__export") continue; - if (!(exports[id].flags & SymbolFlags.Namespace || exports[id].flags & SymbolFlags.Interface) && exports[id].declarations.length > 1) { // 15.2.1.1 It is a Syntax Error if the ExportedNames of ModuleItemList contains any duplicate entries. (TS Exceptions: namespaces, function overloads, and interfaces) + let exportedSymbol = exports[id]; + // 15.2.1.1 It is a Syntax Error if the ExportedNames of ModuleItemList contains any duplicate entries. (TS Exceptions: namespaces, function overloads, enums, and interfaces) + if (!(exportedSymbol.flags & SymbolFlags.Namespace || exportedSymbol.flags & SymbolFlags.Interface || exportedSymbol.flags & SymbolFlags.Enum) && exportedSymbol.declarations.length > 1) { let exportedDeclarations: Declaration[] = []; - for (let declaration of exports[id].declarations) { + for (let declaration of exportedSymbol.declarations) { if (declaration.kind === SyntaxKind.FunctionDeclaration) { if (!(declaration as FunctionDeclaration).body) { continue; diff --git a/tests/baselines/reference/moduleDuplicateIdentifiers.errors.txt b/tests/baselines/reference/moduleDuplicateIdentifiers.errors.txt index 67ab99eee4b..22bd6641a83 100644 --- a/tests/baselines/reference/moduleDuplicateIdentifiers.errors.txt +++ b/tests/baselines/reference/moduleDuplicateIdentifiers.errors.txt @@ -16,7 +16,7 @@ tests/cases/compiler/moduleDuplicateIdentifiers.ts(24,14): error TS2300: Duplica _brand1: any; } - export interface Bar { + export interface Bar { // Shouldn't error _brand2: any; } @@ -24,7 +24,7 @@ tests/cases/compiler/moduleDuplicateIdentifiers.ts(24,14): error TS2300: Duplica export var member1 = 2; } - export namespace FooBar { + export namespace FooBar { // Shouldn't error export var member2 = 42; } @@ -34,11 +34,22 @@ tests/cases/compiler/moduleDuplicateIdentifiers.ts(24,14): error TS2300: Duplica member1 = 2; } - export class Kettle { + export class Kettle { // Should error ~~~~~~ !!! error TS2300: Duplicate identifier 'Kettle'. member2 = 42; } export var Pot = 2; - Pot = 42; // Shouldn't error \ No newline at end of file + Pot = 42; // Shouldn't error + + export enum Utensils { + Spoon, + Fork, + Knife + } + + export enum Utensils { // Shouldn't error + Spork = 3 + } + \ No newline at end of file diff --git a/tests/baselines/reference/moduleDuplicateIdentifiers.js b/tests/baselines/reference/moduleDuplicateIdentifiers.js index e428ccd3c81..e02914bd874 100644 --- a/tests/baselines/reference/moduleDuplicateIdentifiers.js +++ b/tests/baselines/reference/moduleDuplicateIdentifiers.js @@ -6,7 +6,7 @@ export interface Bar { _brand1: any; } -export interface Bar { +export interface Bar { // Shouldn't error _brand2: any; } @@ -14,7 +14,7 @@ export namespace FooBar { export var member1 = 2; } -export namespace FooBar { +export namespace FooBar { // Shouldn't error export var member2 = 42; } @@ -22,12 +22,23 @@ export class Kettle { member1 = 2; } -export class Kettle { +export class Kettle { // Should error member2 = 42; } export var Pot = 2; -Pot = 42; // Shouldn't error +Pot = 42; // Shouldn't error + +export enum Utensils { + Spoon, + Fork, + Knife +} + +export enum Utensils { // Shouldn't error + Spork = 3 +} + //// [moduleDuplicateIdentifiers.js] exports.Foo = 2; @@ -56,3 +67,13 @@ var Kettle = (function () { exports.Kettle = Kettle; exports.Pot = 2; exports.Pot = 42; // Shouldn't error +(function (Utensils) { + Utensils[Utensils["Spoon"] = 0] = "Spoon"; + Utensils[Utensils["Fork"] = 1] = "Fork"; + Utensils[Utensils["Knife"] = 2] = "Knife"; +})(exports.Utensils || (exports.Utensils = {})); +var Utensils = exports.Utensils; +(function (Utensils) { + Utensils[Utensils["Spork"] = 3] = "Spork"; +})(exports.Utensils || (exports.Utensils = {})); +var Utensils = exports.Utensils; diff --git a/tests/cases/compiler/moduleDuplicateIdentifiers.ts b/tests/cases/compiler/moduleDuplicateIdentifiers.ts index 283a6d241bf..47be2bc5dbb 100644 --- a/tests/cases/compiler/moduleDuplicateIdentifiers.ts +++ b/tests/cases/compiler/moduleDuplicateIdentifiers.ts @@ -6,7 +6,7 @@ export interface Bar { _brand1: any; } -export interface Bar { +export interface Bar { // Shouldn't error _brand2: any; } @@ -14,7 +14,7 @@ export namespace FooBar { export var member1 = 2; } -export namespace FooBar { +export namespace FooBar { // Shouldn't error export var member2 = 42; } @@ -22,9 +22,19 @@ export class Kettle { member1 = 2; } -export class Kettle { +export class Kettle { // Should error member2 = 42; } export var Pot = 2; -Pot = 42; // Shouldn't error \ No newline at end of file +Pot = 42; // Shouldn't error + +export enum Utensils { + Spoon, + Fork, + Knife +} + +export enum Utensils { // Shouldn't error + Spork = 3 +} From 63fe64f067624878943325ac4c7f3f1826c2b848 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Thu, 8 Oct 2015 15:31:45 -0700 Subject: [PATCH 017/103] use a map, backticks --- src/compiler/checker.ts | 9 +++++---- src/compiler/diagnosticMessages.json | 2 +- tests/baselines/reference/exportStar-amd.errors.txt | 8 ++++---- tests/baselines/reference/exportStar.errors.txt | 8 ++++---- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 419779c3f2d..1eddcc54d78 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1020,11 +1020,12 @@ namespace ts { return links.resolvedExports || (links.resolvedExports = getExportsForModule(moduleSymbol)); } - interface ExportStarDiagnosticsLookupTable { - [id: string]: {specifierText: string, exportsWithDuplicate: ExportDeclaration[]}; + interface ExportedSymbolDiagnostics { + specifierText: string; + exportsWithDuplicate: ExportDeclaration[]; } - function extendExportSymbols(target: SymbolTable, source: SymbolTable, lookupTable?: ExportStarDiagnosticsLookupTable, exportNode?: ExportDeclaration) { + function extendExportSymbols(target: SymbolTable, source: SymbolTable, lookupTable?: Map, exportNode?: ExportDeclaration) { for (let id in source) { if (id !== "default" && !hasProperty(target, id)) { target[id] = source[id]; @@ -1055,7 +1056,7 @@ namespace ts { let exportStars = symbol.exports["__export"]; if (exportStars) { let nestedSymbols: SymbolTable = {}; - let lookupTable: ExportStarDiagnosticsLookupTable = {}; + let lookupTable: Map = {}; for (let node of exportStars.declarations) { let resolvedModule = resolveExternalModuleName(node, (node as ExportDeclaration).moduleSpecifier); let exportedSymbols = visit(resolvedModule); diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 51fd7a1fa2e..ca2c15a7d96 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -832,7 +832,7 @@ "category": "Error", "code": 2307 }, - "An 'export * from {0}' declaration has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.": { + "An `export * from {0}` declaration has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.": { "category": "Error", "code": 2308 }, diff --git a/tests/baselines/reference/exportStar-amd.errors.txt b/tests/baselines/reference/exportStar-amd.errors.txt index 237290485b0..714890d5a14 100644 --- a/tests/baselines/reference/exportStar-amd.errors.txt +++ b/tests/baselines/reference/exportStar-amd.errors.txt @@ -1,6 +1,6 @@ tests/cases/conformance/es6/modules/main.ts(1,8): error TS1192: Module '"tests/cases/conformance/es6/modules/t4"' has no default export. -tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. -tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. +tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An `export * from "./t1"` declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. +tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An `export * from "./t1"` declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. ==== tests/cases/conformance/es6/modules/t1.ts (0 errors) ==== @@ -23,9 +23,9 @@ tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An 'export * from export * from "./t2"; export * from "./t3"; ~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. +!!! error TS2308: An `export * from "./t1"` declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. ~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. +!!! error TS2308: An `export * from "./t1"` declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. ==== tests/cases/conformance/es6/modules/main.ts (1 errors) ==== import hello, { x, y, z, foo } from "./t4"; diff --git a/tests/baselines/reference/exportStar.errors.txt b/tests/baselines/reference/exportStar.errors.txt index 237290485b0..714890d5a14 100644 --- a/tests/baselines/reference/exportStar.errors.txt +++ b/tests/baselines/reference/exportStar.errors.txt @@ -1,6 +1,6 @@ tests/cases/conformance/es6/modules/main.ts(1,8): error TS1192: Module '"tests/cases/conformance/es6/modules/t4"' has no default export. -tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. -tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. +tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An `export * from "./t1"` declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. +tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An `export * from "./t1"` declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. ==== tests/cases/conformance/es6/modules/t1.ts (0 errors) ==== @@ -23,9 +23,9 @@ tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An 'export * from export * from "./t2"; export * from "./t3"; ~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. +!!! error TS2308: An `export * from "./t1"` declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. ~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2308: An 'export * from "./t1"' declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. +!!! error TS2308: An `export * from "./t1"` declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. ==== tests/cases/conformance/es6/modules/main.ts (1 errors) ==== import hello, { x, y, z, foo } from "./t4"; From c4db5cc6b590bac31d0379b6db0caf3700b76d00 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 27 Oct 2015 12:47:35 -0700 Subject: [PATCH 018/103] Error on redeclarations of undefined --- src/compiler/checker.ts | 20 ++++++++- src/compiler/diagnosticMessages.json | 4 ++ .../undefinedTypeAssignment.errors.txt | 43 +++++++++++++++++++ .../reference/undefinedTypeAssignment.js | 42 ++++++++++++++++++ .../cases/compiler/undefinedTypeAssignment.ts | 19 ++++++++ 5 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/undefinedTypeAssignment.errors.txt create mode 100644 tests/baselines/reference/undefinedTypeAssignment.js create mode 100644 tests/cases/compiler/undefinedTypeAssignment.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 5370e7c4f02..ba0342596c1 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -50,6 +50,7 @@ namespace ts { let emitResolver = createResolver(); let undefinedSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "undefined"); + undefinedSymbol.declarations = []; let argumentsSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "arguments"); let checker: TypeChecker = { @@ -225,6 +226,10 @@ namespace ts { ResolvedReturnType } + const builtinGlobals: SymbolTable = { + [undefinedSymbol.name]: undefinedSymbol + }; + initializeTypeChecker(); return checker; @@ -336,6 +341,13 @@ namespace ts { target[id] = source[id]; } else { + if (target === globals && source !== builtinGlobals) { + if (hasProperty(builtinGlobals, id) && source[id].declarations && source[id].declarations.length) { + // Error on builtin redeclarations + forEach(source[id].declarations, addDeclarationDiagnostic.bind(undefined, id)); + continue; + } + } let symbol = target[id]; if (!(symbol.flags & SymbolFlags.Merged)) { target[id] = symbol = cloneSymbol(symbol); @@ -344,6 +356,10 @@ namespace ts { } } } + + function addDeclarationDiagnostic(id: string, declaration: Declaration) { + diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Declaration_duplicates_builtin_global_identifier_0, id)); + } } function getSymbolLinks(symbol: Symbol): SymbolLinks { @@ -14909,6 +14925,9 @@ namespace ts { bindSourceFile(file); }); + // Setup global builtins + mergeSymbolTable(globals, builtinGlobals); + // Initialize global symbol table forEach(host.getSourceFiles(), file => { if (!isExternalModule(file)) { @@ -14920,7 +14939,6 @@ namespace ts { getSymbolLinks(undefinedSymbol).type = undefinedType; getSymbolLinks(argumentsSymbol).type = getGlobalType("IArguments"); getSymbolLinks(unknownSymbol).type = unknownType; - globals[undefinedSymbol.name] = undefinedSymbol; // Initialize special types globalArrayType = getGlobalType("Array", /*arity*/ 1); globalObjectType = getGlobalType("Object"); diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index b799c2addba..d6e7d8dd592 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1168,6 +1168,10 @@ "category": "Error", "code": 2396 }, + "Declaration duplicates builtin global identifier '{0}'.": { + "category": "Error", + "code": 2397 + }, "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.": { "category": "Error", "code": 2399 diff --git a/tests/baselines/reference/undefinedTypeAssignment.errors.txt b/tests/baselines/reference/undefinedTypeAssignment.errors.txt new file mode 100644 index 00000000000..a14b1191255 --- /dev/null +++ b/tests/baselines/reference/undefinedTypeAssignment.errors.txt @@ -0,0 +1,43 @@ +tests/cases/compiler/a.ts(1,1): error TS2397: Declaration duplicates builtin global identifier 'undefined'. +tests/cases/compiler/a.ts(2,5): error TS2397: Declaration duplicates builtin global identifier 'undefined'. +tests/cases/compiler/a.ts(3,5): error TS2397: Declaration duplicates builtin global identifier 'undefined'. +tests/cases/compiler/b.ts(1,7): error TS2397: Declaration duplicates builtin global identifier 'undefined'. +tests/cases/compiler/b.ts(4,11): error TS2397: Declaration duplicates builtin global identifier 'undefined'. +tests/cases/compiler/b.ts(7,11): error TS2397: Declaration duplicates builtin global identifier 'undefined'. +tests/cases/compiler/b.ts(10,8): error TS2304: Cannot find name 'undefined'. + + +==== tests/cases/compiler/a.ts (3 errors) ==== + type undefined = string; + ~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2397: Declaration duplicates builtin global identifier 'undefined'. + var undefined = void 0; + ~~~~~~~~~ +!!! error TS2397: Declaration duplicates builtin global identifier 'undefined'. + var undefined = null; + ~~~~~~~~~ +!!! error TS2397: Declaration duplicates builtin global identifier 'undefined'. + function p(undefined = 42) { + return undefined; + } +==== tests/cases/compiler/b.ts (4 errors) ==== + class undefined { + ~~~~~~~~~ +!!! error TS2397: Declaration duplicates builtin global identifier 'undefined'. + foo: string; + } + interface undefined { + ~~~~~~~~~ +!!! error TS2397: Declaration duplicates builtin global identifier 'undefined'. + member: number; + } + namespace undefined { + ~~~~~~~~~ +!!! error TS2397: Declaration duplicates builtin global identifier 'undefined'. + export var x = 42; + } + var x: undefined; + ~~~~~~~~~ +!!! error TS2304: Cannot find name 'undefined'. + var x: typeof undefined; + \ No newline at end of file diff --git a/tests/baselines/reference/undefinedTypeAssignment.js b/tests/baselines/reference/undefinedTypeAssignment.js new file mode 100644 index 00000000000..9b4106c18ea --- /dev/null +++ b/tests/baselines/reference/undefinedTypeAssignment.js @@ -0,0 +1,42 @@ +//// [tests/cases/compiler/undefinedTypeAssignment.ts] //// + +//// [a.ts] +type undefined = string; +var undefined = void 0; +var undefined = null; +function p(undefined = 42) { + return undefined; +} +//// [b.ts] +class undefined { + foo: string; +} +interface undefined { + member: number; +} +namespace undefined { + export var x = 42; +} +var x: undefined; +var x: typeof undefined; + + +//// [a.js] +var undefined = void 0; +var undefined = null; +function p(undefined) { + if (undefined === void 0) { undefined = 42; } + return undefined; +} +//// [b.js] +var undefined = (function () { + function undefined() { + } + return undefined; +})(); +var undefined; +(function (undefined) { + undefined.x = 42; +})(undefined || (undefined = {})); +var x; +var x; diff --git a/tests/cases/compiler/undefinedTypeAssignment.ts b/tests/cases/compiler/undefinedTypeAssignment.ts new file mode 100644 index 00000000000..d8a128a49e7 --- /dev/null +++ b/tests/cases/compiler/undefinedTypeAssignment.ts @@ -0,0 +1,19 @@ +// @filename: a.ts +type undefined = string; +var undefined = void 0; +var undefined = null; +function p(undefined = 42) { + return undefined; +} +// @filename: b.ts +class undefined { + foo: string; +} +interface undefined { + member: number; +} +namespace undefined { + export var x = 42; +} +var x: undefined; +var x: typeof undefined; From 0e47c67ee1b78aef0ac7d5ec63a1197e5499d688 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Wed, 28 Oct 2015 17:00:47 -0700 Subject: [PATCH 019/103] update error --- src/compiler/checker.ts | 2 +- src/compiler/diagnosticMessages.json | 2 +- .../undefinedTypeAssignment.errors.txt | 24 +++++++++---------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ba0342596c1..fd86ff97c6a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -358,7 +358,7 @@ namespace ts { } function addDeclarationDiagnostic(id: string, declaration: Declaration) { - diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Declaration_duplicates_builtin_global_identifier_0, id)); + diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0, id)); } } diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index d6e7d8dd592..be0628e93dd 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1168,7 +1168,7 @@ "category": "Error", "code": 2396 }, - "Declaration duplicates builtin global identifier '{0}'.": { + "Declaration name conflicts with built-in global identifier '{0}'.": { "category": "Error", "code": 2397 }, diff --git a/tests/baselines/reference/undefinedTypeAssignment.errors.txt b/tests/baselines/reference/undefinedTypeAssignment.errors.txt index a14b1191255..0b4a8eff874 100644 --- a/tests/baselines/reference/undefinedTypeAssignment.errors.txt +++ b/tests/baselines/reference/undefinedTypeAssignment.errors.txt @@ -1,39 +1,39 @@ -tests/cases/compiler/a.ts(1,1): error TS2397: Declaration duplicates builtin global identifier 'undefined'. -tests/cases/compiler/a.ts(2,5): error TS2397: Declaration duplicates builtin global identifier 'undefined'. -tests/cases/compiler/a.ts(3,5): error TS2397: Declaration duplicates builtin global identifier 'undefined'. -tests/cases/compiler/b.ts(1,7): error TS2397: Declaration duplicates builtin global identifier 'undefined'. -tests/cases/compiler/b.ts(4,11): error TS2397: Declaration duplicates builtin global identifier 'undefined'. -tests/cases/compiler/b.ts(7,11): error TS2397: Declaration duplicates builtin global identifier 'undefined'. +tests/cases/compiler/a.ts(1,1): error TS2397: Declaration name conflicts with built-in global identifier 'undefined'. +tests/cases/compiler/a.ts(2,5): error TS2397: Declaration name conflicts with built-in global identifier 'undefined'. +tests/cases/compiler/a.ts(3,5): error TS2397: Declaration name conflicts with built-in global identifier 'undefined'. +tests/cases/compiler/b.ts(1,7): error TS2397: Declaration name conflicts with built-in global identifier 'undefined'. +tests/cases/compiler/b.ts(4,11): error TS2397: Declaration name conflicts with built-in global identifier 'undefined'. +tests/cases/compiler/b.ts(7,11): error TS2397: Declaration name conflicts with built-in global identifier 'undefined'. tests/cases/compiler/b.ts(10,8): error TS2304: Cannot find name 'undefined'. ==== tests/cases/compiler/a.ts (3 errors) ==== type undefined = string; ~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2397: Declaration duplicates builtin global identifier 'undefined'. +!!! error TS2397: Declaration name conflicts with built-in global identifier 'undefined'. var undefined = void 0; ~~~~~~~~~ -!!! error TS2397: Declaration duplicates builtin global identifier 'undefined'. +!!! error TS2397: Declaration name conflicts with built-in global identifier 'undefined'. var undefined = null; ~~~~~~~~~ -!!! error TS2397: Declaration duplicates builtin global identifier 'undefined'. +!!! error TS2397: Declaration name conflicts with built-in global identifier 'undefined'. function p(undefined = 42) { return undefined; } ==== tests/cases/compiler/b.ts (4 errors) ==== class undefined { ~~~~~~~~~ -!!! error TS2397: Declaration duplicates builtin global identifier 'undefined'. +!!! error TS2397: Declaration name conflicts with built-in global identifier 'undefined'. foo: string; } interface undefined { ~~~~~~~~~ -!!! error TS2397: Declaration duplicates builtin global identifier 'undefined'. +!!! error TS2397: Declaration name conflicts with built-in global identifier 'undefined'. member: number; } namespace undefined { ~~~~~~~~~ -!!! error TS2397: Declaration duplicates builtin global identifier 'undefined'. +!!! error TS2397: Declaration name conflicts with built-in global identifier 'undefined'. export var x = 42; } var x: undefined; From a531610eb91d6497a26919e8629ac19796b36a72 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Mon, 9 Nov 2015 10:46:50 -0800 Subject: [PATCH 020/103] fix merge issue --- src/compiler/emitter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 4c594da1fa5..49d6236805f 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -580,7 +580,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi externalImports = undefined; exportSpecifiers = undefined; exportEquals = undefined; - hasExportStars = undefined; + hasExportStarsToExportValues = undefined; detachedCommentsInfo = undefined; sourceMapData = undefined; isEs6Module = false; From cb152003782114103ff4a3472d62381139e33dfa Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 10 Nov 2015 16:58:10 -0800 Subject: [PATCH 021/103] fix lints --- src/compiler/checker.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 3ba60d9a4a2..929b1f706c0 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -14009,14 +14009,14 @@ namespace ts { const declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration; error(declaration, Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements); } - let exports = getExportsOfModule(moduleSymbol); // Checks for export * conflicts - for (let id in exports) { + const exports = getExportsOfModule(moduleSymbol); // Checks for export * conflicts + for (const id in exports) { if (id === "__export") continue; - let exportedSymbol = exports[id]; + const exportedSymbol = exports[id]; // 15.2.1.1 It is a Syntax Error if the ExportedNames of ModuleItemList contains any duplicate entries. (TS Exceptions: namespaces, function overloads, enums, and interfaces) if (!(exportedSymbol.flags & SymbolFlags.Namespace || exportedSymbol.flags & SymbolFlags.Interface || exportedSymbol.flags & SymbolFlags.Enum) && exportedSymbol.declarations.length > 1) { - let exportedDeclarations: Declaration[] = []; - for (let declaration of exportedSymbol.declarations) { + const exportedDeclarations: Declaration[] = []; + for (const declaration of exportedSymbol.declarations) { if (declaration.kind === SyntaxKind.FunctionDeclaration) { if (!(declaration as FunctionDeclaration).body) { continue; @@ -14025,7 +14025,7 @@ namespace ts { exportedDeclarations.push(declaration); } if (exportedDeclarations.length > 1) { - for (let declaration of exportedDeclarations) { + for (const declaration of exportedDeclarations) { diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Cannot_redeclare_exported_variable_0, id)); } } From 65b90686e79e438a1e26cef48ac67d209e8020f6 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 10 Nov 2015 17:06:00 -0800 Subject: [PATCH 022/103] accept new baselines --- .../reference/multipleDefaultExports04.errors.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/baselines/reference/multipleDefaultExports04.errors.txt b/tests/baselines/reference/multipleDefaultExports04.errors.txt index e67659f6b9f..bf137e3cc17 100644 --- a/tests/baselines/reference/multipleDefaultExports04.errors.txt +++ b/tests/baselines/reference/multipleDefaultExports04.errors.txt @@ -1,15 +1,21 @@ +tests/cases/conformance/es6/modules/multipleDefaultExports04.ts(2,25): error TS2323: Cannot redeclare exported variable 'default'. tests/cases/conformance/es6/modules/multipleDefaultExports04.ts(2,25): error TS2393: Duplicate function implementation. +tests/cases/conformance/es6/modules/multipleDefaultExports04.ts(5,25): error TS2323: Cannot redeclare exported variable 'default'. tests/cases/conformance/es6/modules/multipleDefaultExports04.ts(5,25): error TS2393: Duplicate function implementation. -==== tests/cases/conformance/es6/modules/multipleDefaultExports04.ts (2 errors) ==== +==== tests/cases/conformance/es6/modules/multipleDefaultExports04.ts (4 errors) ==== export default function f() { ~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + ~ !!! error TS2393: Duplicate function implementation. } export default function f() { ~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + ~ !!! error TS2393: Duplicate function implementation. } \ No newline at end of file From b91a5a510096c04d13289333efe7816d24f461e7 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Thu, 19 Nov 2015 13:17:20 -0800 Subject: [PATCH 023/103] factor for loop into filter, minor style changes --- src/compiler/checker.ts | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 929b1f706c0..0b72b8c3db3 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1103,9 +1103,10 @@ namespace ts { ); } for (const id in lookupTable) { + const { exportsWithDuplicate } = lookupTable[id]; // It's not an error if the file with multiple export *'s with duplicate names exports a member with that name itself - if (id !== "export=" && lookupTable[id].exportsWithDuplicate.length && !(id in symbols)) { - for (const node of lookupTable[id].exportsWithDuplicate) { + if (id !== "export=" && exportsWithDuplicate.length && !(id in symbols)) { + for (const node of exportsWithDuplicate) { diagnostics.add(createDiagnosticForNode( node, Diagnostics.An_export_Asterisk_from_0_declaration_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity, @@ -14009,21 +14010,16 @@ namespace ts { const declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration; error(declaration, Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements); } - const exports = getExportsOfModule(moduleSymbol); // Checks for export * conflicts + // Checks for export * conflicts + const exports = getExportsOfModule(moduleSymbol); for (const id in exports) { - if (id === "__export") continue; + if (id === "__export") { + continue; + } const exportedSymbol = exports[id]; // 15.2.1.1 It is a Syntax Error if the ExportedNames of ModuleItemList contains any duplicate entries. (TS Exceptions: namespaces, function overloads, enums, and interfaces) if (!(exportedSymbol.flags & SymbolFlags.Namespace || exportedSymbol.flags & SymbolFlags.Interface || exportedSymbol.flags & SymbolFlags.Enum) && exportedSymbol.declarations.length > 1) { - const exportedDeclarations: Declaration[] = []; - for (const declaration of exportedSymbol.declarations) { - if (declaration.kind === SyntaxKind.FunctionDeclaration) { - if (!(declaration as FunctionDeclaration).body) { - continue; - } - } - exportedDeclarations.push(declaration); - } + const exportedDeclarations: Declaration[] = filter(exportedSymbol.declarations, isNotOverload); if (exportedDeclarations.length > 1) { for (const declaration of exportedDeclarations) { diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Cannot_redeclare_exported_variable_0, id)); @@ -14033,6 +14029,10 @@ namespace ts { } links.exportsChecked = true; } + + function isNotOverload(declaration: Declaration): boolean { + return (declaration.kind !== SyntaxKind.FunctionDeclaration || typeof (declaration as FunctionDeclaration).body !== "undefined"); + } } function checkTypePredicate(node: TypePredicateNode) { From d9c6f3d6c64abe93ee9b3e71e67d72217ce36bc2 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Thu, 19 Nov 2015 13:20:58 -0800 Subject: [PATCH 024/103] invert the conditional I was asked to invert --- src/compiler/checker.ts | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index f6e1da3e9ea..d95d3e07686 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1143,15 +1143,16 @@ namespace ts { for (const id in lookupTable) { const { exportsWithDuplicate } = lookupTable[id]; // It's not an error if the file with multiple export *'s with duplicate names exports a member with that name itself - if (id !== "export=" && exportsWithDuplicate.length && !(id in symbols)) { - for (const node of exportsWithDuplicate) { - diagnostics.add(createDiagnosticForNode( - node, - Diagnostics.An_export_Asterisk_from_0_declaration_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity, - lookupTable[id].specifierText, - id - )); - } + if (id === "export=" || !exportsWithDuplicate.length || id in symbols) { + continue; + } + for (const node of exportsWithDuplicate) { + diagnostics.add(createDiagnosticForNode( + node, + Diagnostics.An_export_Asterisk_from_0_declaration_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity, + lookupTable[id].specifierText, + id + )); } } extendExportSymbols(symbols, nestedSymbols); From d0fc3948b58d006ef003174af7e1c3e7c7b084e1 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Mon, 23 Nov 2015 12:22:08 -0800 Subject: [PATCH 025/103] Correct comments, use destructuring --- src/compiler/checker.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index d95d3e07686..2a853611a43 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1142,7 +1142,7 @@ namespace ts { } for (const id in lookupTable) { const { exportsWithDuplicate } = lookupTable[id]; - // It's not an error if the file with multiple export *'s with duplicate names exports a member with that name itself + // Its not an error if the file with multiple export *'s with duplicate names exports a member with that name itself if (id === "export=" || !exportsWithDuplicate.length || id in symbols) { continue; } @@ -14079,10 +14079,10 @@ namespace ts { if (id === "__export") { continue; } - const exportedSymbol = exports[id]; - // 15.2.1.1 It is a Syntax Error if the ExportedNames of ModuleItemList contains any duplicate entries. (TS Exceptions: namespaces, function overloads, enums, and interfaces) - if (!(exportedSymbol.flags & SymbolFlags.Namespace || exportedSymbol.flags & SymbolFlags.Interface || exportedSymbol.flags & SymbolFlags.Enum) && exportedSymbol.declarations.length > 1) { - const exportedDeclarations: Declaration[] = filter(exportedSymbol.declarations, isNotOverload); + const {declarations, flags} = exports[id]; + // ECMA262: 15.2.1.1 It is a Syntax Error if the ExportedNames of ModuleItemList contains any duplicate entries. (TS Exceptions: namespaces, function overloads, enums, and interfaces) + if (!(flags & (SymbolFlags.Namespace |SymbolFlags.Interface | SymbolFlags.Enum)) && declarations.length > 1) { + const exportedDeclarations: Declaration[] = filter(declarations, isNotOverload); if (exportedDeclarations.length > 1) { for (const declaration of exportedDeclarations) { diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Cannot_redeclare_exported_variable_0, id)); From 6a8e78cdc08ea1c8b4b1b9654638b9517153ef56 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Mon, 23 Nov 2015 12:43:28 -0800 Subject: [PATCH 026/103] fix ES6 emit for namespaces to only emit one export binding --- src/compiler/emitter.ts | 19 +++++++++++-------- .../es6ModuleInternalNamedImports2.js | 1 - 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index bdeac582bbf..83d3e24351e 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -6318,15 +6318,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi const emitVarForModule = !hoistedInDeclarationScope && !isModuleMergedWithES6Class(node); if (emitVarForModule) { - emitStart(node); - if (isES6ExportedDeclaration(node)) { - write("export "); + const isES6ExportedNamespace = isES6ExportedDeclaration(node); + if ((!isES6ExportedNamespace) || !forEach(node.symbol && node.symbol.declarations, declaration => declaration.kind === SyntaxKind.ModuleDeclaration && declaration.pos < node.pos)) { + emitStart(node); + if (isES6ExportedNamespace) { + write("export "); + } + write("var "); + emit(node.name); + write(";"); + emitEnd(node); + writeLine(); } - write("var "); - emit(node.name); - write(";"); - emitEnd(node); - writeLine(); } emitStart(node); diff --git a/tests/baselines/reference/es6ModuleInternalNamedImports2.js b/tests/baselines/reference/es6ModuleInternalNamedImports2.js index 9dee8153e56..98226a1e52b 100644 --- a/tests/baselines/reference/es6ModuleInternalNamedImports2.js +++ b/tests/baselines/reference/es6ModuleInternalNamedImports2.js @@ -58,7 +58,6 @@ export var M; // alias M.M_A = M_M; })(M || (M = {})); -export var M; (function (M) { // Reexports export { M_V as v }; From 60234342d58b06f7a51b6feaa149dc35f9e76ecb Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Mon, 23 Nov 2015 12:44:49 -0800 Subject: [PATCH 027/103] fix whitespace --- src/compiler/checker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 2a853611a43..289265b7572 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -14081,7 +14081,7 @@ namespace ts { } const {declarations, flags} = exports[id]; // ECMA262: 15.2.1.1 It is a Syntax Error if the ExportedNames of ModuleItemList contains any duplicate entries. (TS Exceptions: namespaces, function overloads, enums, and interfaces) - if (!(flags & (SymbolFlags.Namespace |SymbolFlags.Interface | SymbolFlags.Enum)) && declarations.length > 1) { + if (!(flags & (SymbolFlags.Namespace | SymbolFlags.Interface | SymbolFlags.Enum)) && declarations.length > 1) { const exportedDeclarations: Declaration[] = filter(declarations, isNotOverload); if (exportedDeclarations.length > 1) { for (const declaration of exportedDeclarations) { From a9be53093c9de71ebb857a0469a97bac59855d87 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Mon, 23 Nov 2015 12:55:29 -0800 Subject: [PATCH 028/103] change enum emit --- src/compiler/emitter.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 83d3e24351e..f31885dcd03 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -6206,9 +6206,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi if (!shouldHoistDeclarationInSystemJsModule(node)) { // do not emit var if variable was already hoisted - if (!(node.flags & NodeFlags.Export) || isES6ExportedDeclaration(node)) { + + const isES6ExportedEnum = isES6ExportedDeclaration(node); + if (!(node.flags & NodeFlags.Export) || (isES6ExportedEnum && isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, SyntaxKind.ModuleDeclaration))) { emitStart(node); - if (isES6ExportedDeclaration(node)) { + if (isES6ExportedEnum) { write("export "); } write("var "); @@ -6307,6 +6309,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi return languageVersion === ScriptTarget.ES6 && !!(resolver.getNodeCheckFlags(node) & NodeCheckFlags.LexicalModuleMergesWithClass); } + function isFirstDeclarationOfKind(node: Declaration, declarations: Declaration[], kind: SyntaxKind) { + return !forEach(declarations, declaration => declaration.kind === kind && declaration.pos < node.pos); + } + function emitModuleDeclaration(node: ModuleDeclaration) { // Emit only if this module is non-ambient. const shouldEmit = shouldEmitModuleDeclaration(node); @@ -6319,7 +6325,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi if (emitVarForModule) { const isES6ExportedNamespace = isES6ExportedDeclaration(node); - if ((!isES6ExportedNamespace) || !forEach(node.symbol && node.symbol.declarations, declaration => declaration.kind === SyntaxKind.ModuleDeclaration && declaration.pos < node.pos)) { + if ((!isES6ExportedNamespace) || isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, SyntaxKind.ModuleDeclaration)) { emitStart(node); if (isES6ExportedNamespace) { write("export "); From 3b6fa314da2a1cac1dedc4e83a056e7ce8ab334e Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Mon, 23 Nov 2015 13:12:34 -0800 Subject: [PATCH 029/103] new tests --- src/compiler/emitter.ts | 2 +- .../reference/enumExportMergingES6.js | 23 +++++++++++++++++ .../reference/enumExportMergingES6.symbols | 22 ++++++++++++++++ .../reference/enumExportMergingES6.types | 25 +++++++++++++++++++ .../conformance/enums/enumExportMergingES6.ts | 10 ++++++++ 5 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/enumExportMergingES6.js create mode 100644 tests/baselines/reference/enumExportMergingES6.symbols create mode 100644 tests/baselines/reference/enumExportMergingES6.types create mode 100644 tests/cases/conformance/enums/enumExportMergingES6.ts diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index f31885dcd03..64af2c71442 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -6208,7 +6208,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi // do not emit var if variable was already hoisted const isES6ExportedEnum = isES6ExportedDeclaration(node); - if (!(node.flags & NodeFlags.Export) || (isES6ExportedEnum && isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, SyntaxKind.ModuleDeclaration))) { + if ((!(node.flags & NodeFlags.Export)) || (isES6ExportedEnum && isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, SyntaxKind.EnumDeclaration))) { emitStart(node); if (isES6ExportedEnum) { write("export "); diff --git a/tests/baselines/reference/enumExportMergingES6.js b/tests/baselines/reference/enumExportMergingES6.js new file mode 100644 index 00000000000..7a5ea5f2718 --- /dev/null +++ b/tests/baselines/reference/enumExportMergingES6.js @@ -0,0 +1,23 @@ +//// [enumExportMergingES6.ts] +export enum Animals { + Cat = 1 +} +export enum Animals { + Dog = 2 +} +export enum Animals { + CatDog = Cat | Dog +} + + +//// [enumExportMergingES6.js] +export var Animals; +(function (Animals) { + Animals[Animals["Cat"] = 1] = "Cat"; +})(Animals || (Animals = {})); +(function (Animals) { + Animals[Animals["Dog"] = 2] = "Dog"; +})(Animals || (Animals = {})); +(function (Animals) { + Animals[Animals["CatDog"] = 3] = "CatDog"; +})(Animals || (Animals = {})); diff --git a/tests/baselines/reference/enumExportMergingES6.symbols b/tests/baselines/reference/enumExportMergingES6.symbols new file mode 100644 index 00000000000..66fc31c5e18 --- /dev/null +++ b/tests/baselines/reference/enumExportMergingES6.symbols @@ -0,0 +1,22 @@ +=== tests/cases/conformance/enums/enumExportMergingES6.ts === +export enum Animals { +>Animals : Symbol(Animals, Decl(enumExportMergingES6.ts, 0, 0), Decl(enumExportMergingES6.ts, 2, 1), Decl(enumExportMergingES6.ts, 5, 1)) + + Cat = 1 +>Cat : Symbol(Animals.Cat, Decl(enumExportMergingES6.ts, 0, 21)) +} +export enum Animals { +>Animals : Symbol(Animals, Decl(enumExportMergingES6.ts, 0, 0), Decl(enumExportMergingES6.ts, 2, 1), Decl(enumExportMergingES6.ts, 5, 1)) + + Dog = 2 +>Dog : Symbol(Animals.Dog, Decl(enumExportMergingES6.ts, 3, 21)) +} +export enum Animals { +>Animals : Symbol(Animals, Decl(enumExportMergingES6.ts, 0, 0), Decl(enumExportMergingES6.ts, 2, 1), Decl(enumExportMergingES6.ts, 5, 1)) + + CatDog = Cat | Dog +>CatDog : Symbol(Animals.CatDog, Decl(enumExportMergingES6.ts, 6, 21)) +>Cat : Symbol(Animals.Cat, Decl(enumExportMergingES6.ts, 0, 21)) +>Dog : Symbol(Animals.Dog, Decl(enumExportMergingES6.ts, 3, 21)) +} + diff --git a/tests/baselines/reference/enumExportMergingES6.types b/tests/baselines/reference/enumExportMergingES6.types new file mode 100644 index 00000000000..da2fc22cb8a --- /dev/null +++ b/tests/baselines/reference/enumExportMergingES6.types @@ -0,0 +1,25 @@ +=== tests/cases/conformance/enums/enumExportMergingES6.ts === +export enum Animals { +>Animals : Animals + + Cat = 1 +>Cat : Animals +>1 : number +} +export enum Animals { +>Animals : Animals + + Dog = 2 +>Dog : Animals +>2 : number +} +export enum Animals { +>Animals : Animals + + CatDog = Cat | Dog +>CatDog : Animals +>Cat | Dog : number +>Cat : Animals +>Dog : Animals +} + diff --git a/tests/cases/conformance/enums/enumExportMergingES6.ts b/tests/cases/conformance/enums/enumExportMergingES6.ts new file mode 100644 index 00000000000..0a5185ecdd5 --- /dev/null +++ b/tests/cases/conformance/enums/enumExportMergingES6.ts @@ -0,0 +1,10 @@ +// @target: es6 +export enum Animals { + Cat = 1 +} +export enum Animals { + Dog = 2 +} +export enum Animals { + CatDog = Cat | Dog +} From f782c82ba3f1fcb4d80b9e0a1c9440d4f04d6786 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Mon, 23 Nov 2015 17:02:01 -0800 Subject: [PATCH 030/103] Add comments, change error message --- src/compiler/checker.ts | 14 +++++++++----- src/compiler/diagnosticMessages.json | 2 +- .../baselines/reference/exportStar-amd.errors.txt | 8 ++++---- tests/baselines/reference/exportStar.errors.txt | 8 ++++---- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 289265b7572..70b39980882 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1093,12 +1093,16 @@ namespace ts { return links.resolvedExports || (links.resolvedExports = getExportsForModule(moduleSymbol)); } - interface ExportedSymbolDiagnostics { + interface ExportCollisionTracker { specifierText: string; exportsWithDuplicate: ExportDeclaration[]; } - function extendExportSymbols(target: SymbolTable, source: SymbolTable, lookupTable?: Map, exportNode?: ExportDeclaration) { + /** + * Extends one symbol table with abother while collecting information on name collisions for error message generation into the `lookupTable` argument + * Not passing `lookupTable` and `exportNode` disables this collection, and just extends the tables + */ + function extendExportSymbols(target: SymbolTable, source: SymbolTable, lookupTable?: Map, exportNode?: ExportDeclaration) { for (const id in source) { if (id !== "default" && !hasProperty(target, id)) { target[id] = source[id]; @@ -1129,7 +1133,7 @@ namespace ts { const exportStars = symbol.exports["__export"]; if (exportStars) { const nestedSymbols: SymbolTable = {}; - const lookupTable: Map = {}; + const lookupTable: Map = {}; for (const node of exportStars.declarations) { const resolvedModule = resolveExternalModuleName(node, (node as ExportDeclaration).moduleSpecifier); const exportedSymbols = visit(resolvedModule); @@ -1149,7 +1153,7 @@ namespace ts { for (const node of exportsWithDuplicate) { diagnostics.add(createDiagnosticForNode( node, - Diagnostics.An_export_Asterisk_from_0_declaration_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity, + Diagnostics.Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity, lookupTable[id].specifierText, id )); @@ -14094,7 +14098,7 @@ namespace ts { } function isNotOverload(declaration: Declaration): boolean { - return (declaration.kind !== SyntaxKind.FunctionDeclaration || typeof (declaration as FunctionDeclaration).body !== "undefined"); + return declaration.kind !== SyntaxKind.FunctionDeclaration || !!(declaration as FunctionDeclaration).body; } } diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index a0976e6cc6a..b2a63085ae4 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -836,7 +836,7 @@ "category": "Error", "code": 2307 }, - "An `export * from {0}` declaration has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.": { + "Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.": { "category": "Error", "code": 2308 }, diff --git a/tests/baselines/reference/exportStar-amd.errors.txt b/tests/baselines/reference/exportStar-amd.errors.txt index 714890d5a14..edd5c0d51bd 100644 --- a/tests/baselines/reference/exportStar-amd.errors.txt +++ b/tests/baselines/reference/exportStar-amd.errors.txt @@ -1,6 +1,6 @@ tests/cases/conformance/es6/modules/main.ts(1,8): error TS1192: Module '"tests/cases/conformance/es6/modules/t4"' has no default export. -tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An `export * from "./t1"` declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. -tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An `export * from "./t1"` declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. +tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: Module "./t1" has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. +tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: Module "./t1" has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. ==== tests/cases/conformance/es6/modules/t1.ts (0 errors) ==== @@ -23,9 +23,9 @@ tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An `export * from export * from "./t2"; export * from "./t3"; ~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2308: An `export * from "./t1"` declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. +!!! error TS2308: Module "./t1" has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. ~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2308: An `export * from "./t1"` declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. +!!! error TS2308: Module "./t1" has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. ==== tests/cases/conformance/es6/modules/main.ts (1 errors) ==== import hello, { x, y, z, foo } from "./t4"; diff --git a/tests/baselines/reference/exportStar.errors.txt b/tests/baselines/reference/exportStar.errors.txt index 714890d5a14..edd5c0d51bd 100644 --- a/tests/baselines/reference/exportStar.errors.txt +++ b/tests/baselines/reference/exportStar.errors.txt @@ -1,6 +1,6 @@ tests/cases/conformance/es6/modules/main.ts(1,8): error TS1192: Module '"tests/cases/conformance/es6/modules/t4"' has no default export. -tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An `export * from "./t1"` declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. -tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An `export * from "./t1"` declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. +tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: Module "./t1" has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. +tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: Module "./t1" has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. ==== tests/cases/conformance/es6/modules/t1.ts (0 errors) ==== @@ -23,9 +23,9 @@ tests/cases/conformance/es6/modules/t4.ts(3,1): error TS2308: An `export * from export * from "./t2"; export * from "./t3"; ~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2308: An `export * from "./t1"` declaration has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. +!!! error TS2308: Module "./t1" has already exported a member named 'x'. Consider explicitly re-exporting to resolve the ambiguity. ~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2308: An `export * from "./t1"` declaration has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. +!!! error TS2308: Module "./t1" has already exported a member named 'y'. Consider explicitly re-exporting to resolve the ambiguity. ==== tests/cases/conformance/es6/modules/main.ts (1 errors) ==== import hello, { x, y, z, foo } from "./t4"; From c35f7da0fa8c70391e3f23d90f76ee83fd8d69d9 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Tue, 24 Nov 2015 09:34:20 -0800 Subject: [PATCH 031/103] Elaborate interface signature errors Signature errors were not reported before. --- src/compiler/checker.ts | 29 +++++++++++++++++----------- src/compiler/diagnosticMessages.json | 4 ++++ src/compiler/types.ts | 2 +- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 99f60ee15ce..81e1a14bdf6 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1515,9 +1515,9 @@ namespace ts { return result; } - function signatureToString(signature: Signature, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string { + function signatureToString(signature: Signature, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): string { const writer = getSingleLineStringWriter(); - getSymbolDisplayBuilder().buildSignatureDisplay(signature, writer, enclosingDeclaration, flags); + getSymbolDisplayBuilder().buildSignatureDisplay(signature, writer, enclosingDeclaration, flags, kind); const result = writer.string(); releaseStringWriter(writer); @@ -1869,7 +1869,7 @@ namespace ts { if (flags & TypeFormatFlags.InElementType) { writePunctuation(writer, SyntaxKind.OpenParenToken); } - buildSignatureDisplay(resolved.callSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | TypeFormatFlags.WriteArrowStyleSignature, symbolStack); + buildSignatureDisplay(resolved.callSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | TypeFormatFlags.WriteArrowStyleSignature, /*kind*/ undefined, symbolStack); if (flags & TypeFormatFlags.InElementType) { writePunctuation(writer, SyntaxKind.CloseParenToken); } @@ -1881,7 +1881,7 @@ namespace ts { } writeKeyword(writer, SyntaxKind.NewKeyword); writeSpace(writer); - buildSignatureDisplay(resolved.constructSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | TypeFormatFlags.WriteArrowStyleSignature, symbolStack); + buildSignatureDisplay(resolved.constructSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | TypeFormatFlags.WriteArrowStyleSignature, /*kind*/ undefined, symbolStack); if (flags & TypeFormatFlags.InElementType) { writePunctuation(writer, SyntaxKind.CloseParenToken); } @@ -1895,15 +1895,12 @@ namespace ts { writer.writeLine(); writer.increaseIndent(); for (const signature of resolved.callSignatures) { - buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, symbolStack); + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, /*kind*/ undefined, symbolStack); writePunctuation(writer, SyntaxKind.SemicolonToken); writer.writeLine(); } for (const signature of resolved.constructSignatures) { - writeKeyword(writer, SyntaxKind.NewKeyword); - writeSpace(writer); - - buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, symbolStack); + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, SignatureKind.Construct, symbolStack); writePunctuation(writer, SyntaxKind.SemicolonToken); writer.writeLine(); } @@ -1944,7 +1941,7 @@ namespace ts { if (p.flags & SymbolFlags.Optional) { writePunctuation(writer, SyntaxKind.QuestionToken); } - buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, symbolStack); + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, /*kind*/ undefined, symbolStack); writePunctuation(writer, SyntaxKind.SemicolonToken); writer.writeLine(); } @@ -2064,7 +2061,12 @@ namespace ts { buildTypeDisplay(returnType, writer, enclosingDeclaration, flags, symbolStack); } - function buildSignatureDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, symbolStack?: Symbol[]) { + function buildSignatureDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind, symbolStack?: Symbol[]) { + if (kind === SignatureKind.Construct) { + writeKeyword(writer, SyntaxKind.NewKeyword); + writeSpace(writer); + } + if (signature.target && (flags & TypeFormatFlags.WriteTypeArgumentsOfSignature)) { // Instantiated signature, write type arguments instead // This is achieved by passing in the mapper separately @@ -5451,6 +5453,11 @@ namespace ts { localErrors = false; } } + if (reportErrors) { + reportError(Diagnostics.Signature_0_has_no_corresponding_signature_in_1, + signatureToString(t, /*enclosingDeclaration*/ undefined, /*flags*/ undefined, kind), + typeToString(source)); + } return Ternary.False; } } diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 5b70c70ae4b..d0e62b353c6 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1724,6 +1724,10 @@ "category": "Error", "code": 2657 }, + "Signature '{0}' has no corresponding signature in '{1}'": { + "category": "Error", + "code": 2658 + }, "Import declaration '{0}' is using private name '{1}'.": { "category": "Error", "code": 4000 diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 9edd7654b6b..37080d581da 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1740,7 +1740,7 @@ namespace ts { export interface SymbolDisplayBuilder { buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void; - buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; + buildSignatureDisplay(signatures: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): void; buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags): void; From 772f8dd26d8d3bdc56e51f01c75cd569e68a8a1d Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Tue, 24 Nov 2015 09:37:12 -0800 Subject: [PATCH 032/103] Accept baselines --- ...addMoreOverloadsToBaseSignature.errors.txt | 2 + .../arityAndOrderCompatibility01.errors.txt | 20 +- ...teralExpressionContextualTyping.errors.txt | 10 +- .../reference/arrayLiterals3.errors.txt | 28 +- .../asOperatorContextualType.errors.txt | 6 +- .../assignFromBooleanInterface2.errors.txt | 6 +- .../baselines/reference/assignToFn.errors.txt | 2 + ...nmentCompatBetweenTupleAndArray.errors.txt | 10 +- .../reference/assignmentCompatBug5.errors.txt | 16 +- ...ignmentCompatWithCallSignatures.errors.txt | 80 +++--- ...gnmentCompatWithCallSignatures2.errors.txt | 40 +-- ...gnmentCompatWithCallSignatures4.errors.txt | 38 +-- ...ignaturesWithOptionalParameters.errors.txt | 14 + ...allSignaturesWithRestParameters.errors.txt | 90 ++++--- ...ntCompatWithConstructSignatures.errors.txt | 16 ++ ...tCompatWithConstructSignatures2.errors.txt | 8 + ...tCompatWithConstructSignatures4.errors.txt | 82 +++--- ...ignaturesWithOptionalParameters.errors.txt | 10 + ...ignaturesWithOptionalParameters.errors.txt | 12 + .../assignmentCompatWithOverloads.errors.txt | 36 ++- .../assignmentCompatability24.errors.txt | 4 +- .../assignmentCompatability33.errors.txt | 4 +- .../assignmentCompatability34.errors.txt | 4 +- .../assignmentCompatability37.errors.txt | 4 +- .../assignmentCompatability38.errors.txt | 4 +- .../reference/assignmentToObject.errors.txt | 2 + .../assignmentToObjectAndFunction.errors.txt | 6 +- .../asyncFunctionDeclaration15_es6.errors.txt | 20 +- .../reference/booleanAssignment.errors.txt | 18 +- .../callConstructAssignment.errors.txt | 6 +- ...atureAssignabilityInInheritance.errors.txt | 6 +- ...tureAssignabilityInInheritance3.errors.txt | 38 +-- .../reference/castingTuple.errors.txt | 10 +- ...ConstrainedToOtherTypeParameter.errors.txt | 10 +- ...onstrainedToOtherTypeParameter2.errors.txt | 12 +- ...ssignabilityConstructorFunction.errors.txt | 4 +- .../classSideInheritance3.errors.txt | 4 + ...onalOperatorWithoutIdenticalBCT.errors.txt | 18 +- ...atureAssignabilityInInheritance.errors.txt | 6 +- ...tureAssignabilityInInheritance3.errors.txt | 38 +-- .../reference/constructorAsType.errors.txt | 2 + .../contextualTypeWithTuple.errors.txt | 24 +- ...lTypeWithUnionTypeObjectLiteral.errors.txt | 10 +- .../reference/contextualTyping24.errors.txt | 12 +- .../reference/contextualTyping39.errors.txt | 6 +- .../reference/contextualTyping41.errors.txt | 6 +- ...lTypingOfConditionalExpression2.errors.txt | 14 +- ...fGenericFunctionTypedArguments1.errors.txt | 16 +- .../derivedClassTransitivity.errors.txt | 10 +- .../derivedClassTransitivity2.errors.txt | 10 +- .../derivedClassTransitivity3.errors.txt | 10 +- .../derivedClassTransitivity4.errors.txt | 10 +- .../derivedInterfaceCallSignature.errors.txt | 2 + ...tructuringParameterDeclaration2.errors.txt | 32 ++- .../reference/enumAssignability.errors.txt | 6 + .../reference/errorElaboration.errors.txt | 14 +- ...orOnContextuallyTypedReturnType.errors.txt | 6 +- ...AnnotationAndInvalidInitializer.errors.txt | 42 +-- ...endAndImplementTheSameBaseType2.errors.txt | 6 +- ...fixingTypeParametersRepeatedly2.errors.txt | 16 +- tests/baselines/reference/for-of30.errors.txt | 16 +- tests/baselines/reference/for-of31.errors.txt | 24 +- ...functionConstraintSatisfaction2.errors.txt | 24 +- ...tionExpressionContextualTyping2.errors.txt | 6 +- ...ctionSignatureAssignmentCompat1.errors.txt | 10 +- .../reference/generatorTypeCheck25.errors.txt | 46 ++-- .../reference/generatorTypeCheck31.errors.txt | 2 + .../reference/generatorTypeCheck8.errors.txt | 10 +- ...AssignmentCompatWithInterfaces1.errors.txt | 10 +- ...edMethodWithOverloadedArguments.errors.txt | 40 +-- ...lWithConstructorTypedArguments5.errors.txt | 4 + ...lWithGenericSignatureArguments2.errors.txt | 38 +-- ...lWithGenericSignatureArguments3.errors.txt | 10 +- ...oadedConstructorTypedArguments2.errors.txt | 2 + ...erloadedFunctionTypedArguments2.errors.txt | 2 + .../genericCallWithTupleType.errors.txt | 14 +- .../reference/genericCombinators2.errors.txt | 16 +- .../genericSpecializations3.errors.txt | 30 ++- .../genericTypeAssertions2.errors.txt | 10 +- ...cTypeWithNonGenericBaseMisMatch.errors.txt | 40 +-- .../baselines/reference/generics4.errors.txt | 6 +- ...ementGenericWithMismatchedTypes.errors.txt | 16 +- .../reference/incompatibleTypes.errors.txt | 26 +- .../reference/inheritance.errors.txt | 2 + ...eMemberAccessorOverridingMethod.errors.txt | 2 + ...eStaticAccessorOverridingMethod.errors.txt | 2 + ...eStaticPropertyOverridingMethod.errors.txt | 2 + ...nheritedModuleMembersForClodule.errors.txt | 6 +- ...ceMemberAssignsToClassPrototype.errors.txt | 6 +- .../reference/intTypeCheck.errors.txt | 42 ++- .../interfaceAssignmentCompat.errors.txt | 14 +- .../interfaceImplementation1.errors.txt | 2 + .../interfaceImplementation7.errors.txt | 10 +- .../invalidBooleanAssignments.errors.txt | 2 + .../iteratorSpreadInArray9.errors.txt | 24 +- .../reference/lambdaArgCrash.errors.txt | 2 + .../reference/multipleInheritance.errors.txt | 2 + ...MembersOfObjectAssignmentCompat.errors.txt | 18 +- ...embersOfObjectAssignmentCompat2.errors.txt | 30 ++- ...mbersOfFunctionAssignmentCompat.errors.txt | 6 +- ...mbersOfFunctionAssignmentCompat.errors.txt | 6 +- ...ptionalFunctionArgAssignability.errors.txt | 20 +- .../optionalParamAssignmentCompat.errors.txt | 10 +- .../optionalParamTypeComparison.errors.txt | 20 +- .../overloadOnConstInheritance2.errors.txt | 2 + .../overloadOnConstInheritance3.errors.txt | 2 + .../overloadResolutionOverCTLambda.errors.txt | 6 +- ...nWithConstraintCheckingDeferred.errors.txt | 14 +- .../overloadsWithProvisionalErrors.errors.txt | 20 +- .../baselines/reference/parseTypes.errors.txt | 6 + .../reference/parser536727.errors.txt | 12 +- ...serAutomaticSemicolonInsertion1.errors.txt | 4 + .../reference/promiseChaining1.errors.txt | 10 +- .../reference/promiseChaining2.errors.txt | 10 +- .../reference/promisePermutations.errors.txt | 210 +++++++++------ .../reference/promisePermutations2.errors.txt | 210 +++++++++------ .../reference/promisePermutations3.errors.txt | 240 ++++++++++++------ .../reference/propertyAssignment.errors.txt | 6 +- tests/baselines/reference/qualify.errors.txt | 4 + .../recursiveFunctionTypes.errors.txt | 16 +- .../requiredInitializedParameter2.errors.txt | 2 + .../restArgAssignmentCompat.errors.txt | 14 +- ...gnsToConstructorFunctionMembers.errors.txt | 6 +- ...ypesAsTypeParameterConstraint02.errors.txt | 6 +- .../subtypingWithCallSignaturesA.errors.txt | 6 +- ...ignaturesWithOptionalParameters.errors.txt | 4 + ...allSignaturesWithRestParameters.errors.txt | 110 ++++---- ...aturesWithSpecializedSignatures.errors.txt | 6 +- ...ignaturesWithOptionalParameters.errors.txt | 4 + ...aturesWithSpecializedSignatures.errors.txt | 6 +- ...ignaturesWithOptionalParameters.errors.txt | 12 + ...ignaturesWithOptionalParameters.errors.txt | 12 + .../reference/symbolProperty24.errors.txt | 6 +- .../reference/targetTypeVoidFunc.errors.txt | 2 + .../baselines/reference/tupleTypes.errors.txt | 20 +- ...entInferenceConstructSignatures.errors.txt | 30 ++- .../typeArgumentInferenceErrors.errors.txt | 30 ++- ...ntInferenceWithClassExpression2.errors.txt | 10 +- ...rgumentInferenceWithConstraints.errors.txt | 30 ++- .../typeGuardFunctionErrors.errors.txt | 28 +- .../baselines/reference/typeName1.errors.txt | 4 + ...ypeParameterArgumentEquivalence.errors.txt | 20 +- ...peParameterArgumentEquivalence2.errors.txt | 20 +- ...peParameterArgumentEquivalence3.errors.txt | 12 +- ...peParameterArgumentEquivalence4.errors.txt | 12 +- ...peParameterArgumentEquivalence5.errors.txt | 24 +- ...gWithContextSensitiveArguments2.errors.txt | 10 +- ...gWithContextSensitiveArguments3.errors.txt | 10 +- .../typesWithPrivateConstructor.errors.txt | 2 + .../typesWithPublicConstructor.errors.txt | 2 + .../undeclaredModuleError.errors.txt | 6 +- 151 files changed, 1874 insertions(+), 992 deletions(-) diff --git a/tests/baselines/reference/addMoreOverloadsToBaseSignature.errors.txt b/tests/baselines/reference/addMoreOverloadsToBaseSignature.errors.txt index 4b6255688f8..be20b673287 100644 --- a/tests/baselines/reference/addMoreOverloadsToBaseSignature.errors.txt +++ b/tests/baselines/reference/addMoreOverloadsToBaseSignature.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/addMoreOverloadsToBaseSignature.ts(5,11): error TS2430: Interface 'Bar' incorrectly extends interface 'Foo'. Types of property 'f' are incompatible. Type '(key: string) => string' is not assignable to type '() => string'. + Signature '(): string' has no corresponding signature in '(key: string) => string' ==== tests/cases/compiler/addMoreOverloadsToBaseSignature.ts (1 errors) ==== @@ -13,6 +14,7 @@ tests/cases/compiler/addMoreOverloadsToBaseSignature.ts(5,11): error TS2430: Int !!! error TS2430: Interface 'Bar' incorrectly extends interface 'Foo'. !!! error TS2430: Types of property 'f' are incompatible. !!! error TS2430: Type '(key: string) => string' is not assignable to type '() => string'. +!!! error TS2430: Signature '(): string' has no corresponding signature in '(key: string) => string' f(key: string): string; } \ No newline at end of file diff --git a/tests/baselines/reference/arityAndOrderCompatibility01.errors.txt b/tests/baselines/reference/arityAndOrderCompatibility01.errors.txt index d60f0b7d03c..a766bab8a96 100644 --- a/tests/baselines/reference/arityAndOrderCompatibility01.errors.txt +++ b/tests/baselines/reference/arityAndOrderCompatibility01.errors.txt @@ -29,13 +29,15 @@ tests/cases/conformance/types/tuple/arityAndOrderCompatibility01.ts(24,5): error tests/cases/conformance/types/tuple/arityAndOrderCompatibility01.ts(25,5): error TS2322: Type '[string, number]' is not assignable to type '[string]'. Types of property 'pop' are incompatible. Type '() => string | number' is not assignable to type '() => string'. - Type 'string | number' is not assignable to type 'string'. - Type 'number' is not assignable to type 'string'. + Signature '(): string' has no corresponding signature in '() => string | number' + Type 'string | number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/tuple/arityAndOrderCompatibility01.ts(26,5): error TS2322: Type 'StrNum' is not assignable to type '[string]'. Types of property 'pop' are incompatible. Type '() => string | number' is not assignable to type '() => string'. - Type 'string | number' is not assignable to type 'string'. - Type 'number' is not assignable to type 'string'. + Signature '(): string' has no corresponding signature in '() => string | number' + Type 'string | number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/tuple/arityAndOrderCompatibility01.ts(27,5): error TS2322: Type '{ 0: string; 1: number; }' is not assignable to type '[string]'. Property 'length' is missing in type '{ 0: string; 1: number; }'. tests/cases/conformance/types/tuple/arityAndOrderCompatibility01.ts(28,5): error TS2322: Type '[string, number]' is not assignable to type '[number, string]'. @@ -120,15 +122,17 @@ tests/cases/conformance/types/tuple/arityAndOrderCompatibility01.ts(30,5): error !!! error TS2322: Type '[string, number]' is not assignable to type '[string]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => string | number' is not assignable to type '() => string'. -!!! error TS2322: Type 'string | number' is not assignable to type 'string'. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in '() => string | number' +!!! error TS2322: Type 'string | number' is not assignable to type 'string'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var m2: [string] = y; ~~ !!! error TS2322: Type 'StrNum' is not assignable to type '[string]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => string | number' is not assignable to type '() => string'. -!!! error TS2322: Type 'string | number' is not assignable to type 'string'. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in '() => string | number' +!!! error TS2322: Type 'string | number' is not assignable to type 'string'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var m3: [string] = z; ~~ !!! error TS2322: Type '{ 0: string; 1: number; }' is not assignable to type '[string]'. diff --git a/tests/baselines/reference/arrayLiteralExpressionContextualTyping.errors.txt b/tests/baselines/reference/arrayLiteralExpressionContextualTyping.errors.txt index 72ba1411320..b7ea49c7283 100644 --- a/tests/baselines/reference/arrayLiteralExpressionContextualTyping.errors.txt +++ b/tests/baselines/reference/arrayLiteralExpressionContextualTyping.errors.txt @@ -1,8 +1,9 @@ tests/cases/conformance/expressions/contextualTyping/arrayLiteralExpressionContextualTyping.ts(8,5): error TS2322: Type '[number, number, number, string]' is not assignable to type '[number, number, number]'. Types of property 'pop' are incompatible. Type '() => number | string' is not assignable to type '() => number'. - Type 'number | string' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => number | string' + Type 'number | string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/contextualTyping/arrayLiteralExpressionContextualTyping.ts(14,5): error TS2322: Type 'number[]' is not assignable to type '[number, number, number]'. Property '0' is missing in type 'number[]'. @@ -20,8 +21,9 @@ tests/cases/conformance/expressions/contextualTyping/arrayLiteralExpressionConte !!! error TS2322: Type '[number, number, number, string]' is not assignable to type '[number, number, number]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => number | string' is not assignable to type '() => number'. -!!! error TS2322: Type 'number | string' is not assignable to type 'number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '() => number | string' +!!! error TS2322: Type 'number | string' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. // In a contextually typed array literal expression containing one or more spread elements, // an element expression at index N is contextually typed by the numeric index type of the contextual type, if any. diff --git a/tests/baselines/reference/arrayLiterals3.errors.txt b/tests/baselines/reference/arrayLiterals3.errors.txt index 637fb3e3bc4..a3d3611cf55 100644 --- a/tests/baselines/reference/arrayLiterals3.errors.txt +++ b/tests/baselines/reference/arrayLiterals3.errors.txt @@ -6,8 +6,9 @@ tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(11,5): error tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(17,5): error TS2322: Type '[number, number, string, boolean]' is not assignable to type '[number, number]'. Types of property 'pop' are incompatible. Type '() => number | string | boolean' is not assignable to type '() => number'. - Type 'number | string | boolean' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => number | string | boolean' + Type 'number | string | boolean' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(32,5): error TS2322: Type '(number[] | string[])[]' is not assignable to type 'tup'. Property '0' is missing in type '(number[] | string[])[]'. tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(33,5): error TS2322: Type 'number[]' is not assignable to type '[number, number, number]'. @@ -15,10 +16,11 @@ tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(33,5): error tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(34,5): error TS2322: Type '(number | string)[]' is not assignable to type 'myArray'. Types of property 'push' are incompatible. Type '(...items: (number | string)[]) => number' is not assignable to type '(...items: Number[]) => number'. - Types of parameters 'items' and 'items' are incompatible. - Type 'number | string' is not assignable to type 'Number'. - Type 'string' is not assignable to type 'Number'. - Property 'toFixed' is missing in type 'String'. + Signature '(...items: Number[]): number' has no corresponding signature in '(...items: (number | string)[]) => number' + Types of parameters 'items' and 'items' are incompatible. + Type 'number | string' is not assignable to type 'Number'. + Type 'string' is not assignable to type 'Number'. + Property 'toFixed' is missing in type 'String'. ==== tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts (6 errors) ==== @@ -50,8 +52,9 @@ tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(34,5): error !!! error TS2322: Type '[number, number, string, boolean]' is not assignable to type '[number, number]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => number | string | boolean' is not assignable to type '() => number'. -!!! error TS2322: Type 'number | string | boolean' is not assignable to type 'number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '() => number | string | boolean' +!!! error TS2322: Type 'number | string | boolean' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. // The resulting type an array literal expression is determined as follows: // - the resulting type is an array type with an element type that is the union of the types of the @@ -79,8 +82,9 @@ tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(34,5): error !!! error TS2322: Type '(number | string)[]' is not assignable to type 'myArray'. !!! error TS2322: Types of property 'push' are incompatible. !!! error TS2322: Type '(...items: (number | string)[]) => number' is not assignable to type '(...items: Number[]) => number'. -!!! error TS2322: Types of parameters 'items' and 'items' are incompatible. -!!! error TS2322: Type 'number | string' is not assignable to type 'Number'. -!!! error TS2322: Type 'string' is not assignable to type 'Number'. -!!! error TS2322: Property 'toFixed' is missing in type 'String'. +!!! error TS2322: Signature '(...items: Number[]): number' has no corresponding signature in '(...items: (number | string)[]) => number' +!!! error TS2322: Types of parameters 'items' and 'items' are incompatible. +!!! error TS2322: Type 'number | string' is not assignable to type 'Number'. +!!! error TS2322: Type 'string' is not assignable to type 'Number'. +!!! error TS2322: Property 'toFixed' is missing in type 'String'. \ No newline at end of file diff --git a/tests/baselines/reference/asOperatorContextualType.errors.txt b/tests/baselines/reference/asOperatorContextualType.errors.txt index c53b407b5cf..6c52114625b 100644 --- a/tests/baselines/reference/asOperatorContextualType.errors.txt +++ b/tests/baselines/reference/asOperatorContextualType.errors.txt @@ -1,5 +1,6 @@ tests/cases/conformance/expressions/asOperator/asOperatorContextualType.ts(2,9): error TS2352: Neither type '(v: number) => number' nor type '(x: number) => string' is assignable to the other. - Type 'number' is not assignable to type 'string'. + Signature '(x: number): string' has no corresponding signature in '(v: number) => number' + Type 'number' is not assignable to type 'string'. ==== tests/cases/conformance/expressions/asOperator/asOperatorContextualType.ts (1 errors) ==== @@ -7,4 +8,5 @@ tests/cases/conformance/expressions/asOperator/asOperatorContextualType.ts(2,9): var x = (v => v) as (x: number) => string; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2352: Neither type '(v: number) => number' nor type '(x: number) => string' is assignable to the other. -!!! error TS2352: Type 'number' is not assignable to type 'string'. \ No newline at end of file +!!! error TS2352: Signature '(x: number): string' has no corresponding signature in '(v: number) => number' +!!! error TS2352: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/assignFromBooleanInterface2.errors.txt b/tests/baselines/reference/assignFromBooleanInterface2.errors.txt index c03eab60c74..f20050a5b9e 100644 --- a/tests/baselines/reference/assignFromBooleanInterface2.errors.txt +++ b/tests/baselines/reference/assignFromBooleanInterface2.errors.txt @@ -1,7 +1,8 @@ tests/cases/conformance/types/primitives/boolean/assignFromBooleanInterface2.ts(14,1): error TS2322: Type 'NotBoolean' is not assignable to type 'Boolean'. Types of property 'valueOf' are incompatible. Type '() => Object' is not assignable to type '() => boolean'. - Type 'Object' is not assignable to type 'boolean'. + Signature '(): boolean' has no corresponding signature in '() => Object' + Type 'Object' is not assignable to type 'boolean'. tests/cases/conformance/types/primitives/boolean/assignFromBooleanInterface2.ts(19,1): error TS2322: Type 'Boolean' is not assignable to type 'boolean'. tests/cases/conformance/types/primitives/boolean/assignFromBooleanInterface2.ts(20,1): error TS2322: Type 'NotBoolean' is not assignable to type 'boolean'. @@ -25,7 +26,8 @@ tests/cases/conformance/types/primitives/boolean/assignFromBooleanInterface2.ts( !!! error TS2322: Type 'NotBoolean' is not assignable to type 'Boolean'. !!! error TS2322: Types of property 'valueOf' are incompatible. !!! error TS2322: Type '() => Object' is not assignable to type '() => boolean'. -!!! error TS2322: Type 'Object' is not assignable to type 'boolean'. +!!! error TS2322: Signature '(): boolean' has no corresponding signature in '() => Object' +!!! error TS2322: Type 'Object' is not assignable to type 'boolean'. b = a; b = x; diff --git a/tests/baselines/reference/assignToFn.errors.txt b/tests/baselines/reference/assignToFn.errors.txt index 7f2c7855a35..2b2b2a5366f 100644 --- a/tests/baselines/reference/assignToFn.errors.txt +++ b/tests/baselines/reference/assignToFn.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/assignToFn.ts(8,5): error TS2322: Type 'string' is not assignable to type '(n: number) => boolean'. + Signature '(n: number): boolean' has no corresponding signature in 'String' ==== tests/cases/compiler/assignToFn.ts (1 errors) ==== @@ -12,5 +13,6 @@ tests/cases/compiler/assignToFn.ts(8,5): error TS2322: Type 'string' is not assi x.f="hello"; ~~~ !!! error TS2322: Type 'string' is not assignable to type '(n: number) => boolean'. +!!! error TS2322: Signature '(n: number): boolean' has no corresponding signature in 'String' } \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatBetweenTupleAndArray.errors.txt b/tests/baselines/reference/assignmentCompatBetweenTupleAndArray.errors.txt index c7552c3fdb2..16fff660c1d 100644 --- a/tests/baselines/reference/assignmentCompatBetweenTupleAndArray.errors.txt +++ b/tests/baselines/reference/assignmentCompatBetweenTupleAndArray.errors.txt @@ -1,8 +1,9 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatBetweenTupleAndArray.ts(17,1): error TS2322: Type '[number, string]' is not assignable to type 'number[]'. Types of property 'pop' are incompatible. Type '() => number | string' is not assignable to type '() => number'. - Type 'number | string' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => number | string' + Type 'number | string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatBetweenTupleAndArray.ts(18,1): error TS2322: Type '{}[]' is not assignable to type '[{}]'. Property '0' is missing in type '{}[]'. @@ -29,8 +30,9 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type '[number, string]' is not assignable to type 'number[]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => number | string' is not assignable to type '() => number'. -!!! error TS2322: Type 'number | string' is not assignable to type 'number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '() => number | string' +!!! error TS2322: Type 'number | string' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. emptyObjTuple = emptyObjArray; ~~~~~~~~~~~~~ !!! error TS2322: Type '{}[]' is not assignable to type '[{}]'. diff --git a/tests/baselines/reference/assignmentCompatBug5.errors.txt b/tests/baselines/reference/assignmentCompatBug5.errors.txt index 1b5e3d80259..f8b1a1094e2 100644 --- a/tests/baselines/reference/assignmentCompatBug5.errors.txt +++ b/tests/baselines/reference/assignmentCompatBug5.errors.txt @@ -3,10 +3,12 @@ tests/cases/compiler/assignmentCompatBug5.ts(2,8): error TS2345: Argument of typ tests/cases/compiler/assignmentCompatBug5.ts(5,6): error TS2345: Argument of type 'string[]' is not assignable to parameter of type 'number[]'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/assignmentCompatBug5.ts(8,6): error TS2345: Argument of type '(s: string) => void' is not assignable to parameter of type '(n: number) => number'. - Types of parameters 's' and 'n' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(n: number): number' has no corresponding signature in '(s: string) => void' + Types of parameters 's' and 'n' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/assignmentCompatBug5.ts(9,6): error TS2345: Argument of type '(n: number) => void' is not assignable to parameter of type '(n: number) => number'. - Type 'void' is not assignable to type 'number'. + Signature '(n: number): number' has no corresponding signature in '(n: number) => void' + Type 'void' is not assignable to type 'number'. ==== tests/cases/compiler/assignmentCompatBug5.ts (4 errors) ==== @@ -26,11 +28,13 @@ tests/cases/compiler/assignmentCompatBug5.ts(9,6): error TS2345: Argument of typ foo3((s:string) => { }); ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(s: string) => void' is not assignable to parameter of type '(n: number) => number'. -!!! error TS2345: Types of parameters 's' and 'n' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Signature '(n: number): number' has no corresponding signature in '(s: string) => void' +!!! error TS2345: Types of parameters 's' and 'n' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. foo3((n) => { return; }); ~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(n: number) => void' is not assignable to parameter of type '(n: number) => number'. -!!! error TS2345: Type 'void' is not assignable to type 'number'. +!!! error TS2345: Signature '(n: number): number' has no corresponding signature in '(n: number) => void' +!!! error TS2345: Type 'void' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignatures.errors.txt index 6a221ef144e..194b1834a61 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures.errors.txt @@ -1,27 +1,35 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(35,1): error TS2322: Type 'S2' is not assignable to type 'T'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in 'S2' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(36,1): error TS2322: Type '(x: string) => void' is not assignable to type 'T'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => void' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(37,1): error TS2322: Type '(x: string) => number' is not assignable to type 'T'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => number' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(38,1): error TS2322: Type '(x: string) => string' is not assignable to type 'T'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => string' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(39,1): error TS2322: Type 'S2' is not assignable to type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in 'S2' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(40,1): error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => void' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(41,1): error TS2322: Type '(x: string) => number' is not assignable to type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => number' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(42,1): error TS2322: Type '(x: string) => string' is not assignable to type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => string' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts (8 errors) ==== @@ -62,41 +70,49 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme t = s2; ~ !!! error TS2322: Type 'S2' is not assignable to type 'T'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in 'S2' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. t = a3; ~ !!! error TS2322: Type '(x: string) => void' is not assignable to type 'T'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. t = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type 'T'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => number' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. t = function (x: string) { return ''; } ~ !!! error TS2322: Type '(x: string) => string' is not assignable to type 'T'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = s2; ~ !!! error TS2322: Type 'S2' is not assignable to type '(x: number) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in 'S2' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = a3; ~ !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type '(x: number) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => number' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = function (x: string) { return ''; } ~ !!! error TS2322: Type '(x: string) => string' is not assignable to type '(x: number) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures2.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignatures2.errors.txt index e67f0a930c2..fdcc9fe6ec9 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures2.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures2.errors.txt @@ -9,13 +9,15 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(42,1): error TS2322: Type 'S2' is not assignable to type 'T'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => void' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(43,1): error TS2322: Type '{ f(x: string): void; }' is not assignable to type 'T'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => void' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(44,1): error TS2322: Type '(x: string) => number' is not assignable to type 'T'. Property 'f' is missing in type '(x: string) => number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(45,1): error TS2322: Type '(x: string) => string' is not assignable to type 'T'. @@ -23,13 +25,15 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(46,1): error TS2322: Type 'S2' is not assignable to type '{ f(x: number): void; }'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => void' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(47,1): error TS2322: Type '{ f(x: string): void; }' is not assignable to type '{ f(x: number): void; }'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => void' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(48,1): error TS2322: Type '(x: string) => number' is not assignable to type '{ f(x: number): void; }'. Property 'f' is missing in type '(x: string) => number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(49,1): error TS2322: Type '(x: string) => string' is not assignable to type '{ f(x: number): void; }'. @@ -95,15 +99,17 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type 'S2' is not assignable to type 'T'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. t = a3; ~ !!! error TS2322: Type '{ f(x: string): void; }' is not assignable to type 'T'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. t = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type 'T'. @@ -117,15 +123,17 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type 'S2' is not assignable to type '{ f(x: number): void; }'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = a3; ~ !!! error TS2322: Type '{ f(x: string): void; }' is not assignable to type '{ f(x: number): void; }'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type '{ f(x: number): void; }'. diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures4.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignatures4.errors.txt index e00d1eea042..3620fb0e8c3 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures4.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures4.errors.txt @@ -1,13 +1,16 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures4.ts(52,9): error TS2322: Type '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. - Types of parameters 'y' and 'y' are incompatible. - Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. - Types of parameters 'arg2' and 'arg2' are incompatible. - Type '{ foo: number; }' is not assignable to type 'Base'. - Types of property 'foo' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' + Types of parameters 'y' and 'y' are incompatible. + Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. + Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' + Types of parameters 'arg2' and 'arg2' are incompatible. + Type '{ foo: number; }' is not assignable to type 'Base'. + Types of property 'foo' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures4.ts(53,9): error TS2322: Type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' is not assignable to type '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U'. - Types of parameters 'y' and 'y' are incompatible. - Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. + Signature '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U): (r: T) => U' has no corresponding signature in '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' + Types of parameters 'y' and 'y' are incompatible. + Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures4.ts (2 errors) ==== @@ -65,17 +68,20 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a8 = b8; // error, { foo: number } and Base are incompatible ~~ !!! error TS2322: Type '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. -!!! error TS2322: Types of parameters 'arg2' and 'arg2' are incompatible. -!!! error TS2322: Type '{ foo: number; }' is not assignable to type 'Base'. -!!! error TS2322: Types of property 'foo' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. +!!! error TS2322: Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' +!!! error TS2322: Types of parameters 'arg2' and 'arg2' are incompatible. +!!! error TS2322: Type '{ foo: number; }' is not assignable to type 'Base'. +!!! error TS2322: Types of property 'foo' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. b8 = a8; // error, { foo: number } and Base are incompatible ~~ !!! error TS2322: Type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' is not assignable to type '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U'. -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. +!!! error TS2322: Signature '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U): (r: T) => U' has no corresponding signature in '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. var b10: (...x: T[]) => T; diff --git a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.errors.txt index f89bbfa5798..504f6d70799 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.errors.txt @@ -1,10 +1,17 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(16,5): error TS2322: Type '(x: number) => number' is not assignable to type '() => number'. + Signature '(): number' has no corresponding signature in '(x: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(19,5): error TS2322: Type '(x: number) => number' is not assignable to type '() => number'. + Signature '(): number' has no corresponding signature in '(x: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(20,5): error TS2322: Type '(x: number, y?: number) => number' is not assignable to type '() => number'. + Signature '(): number' has no corresponding signature in '(x: number, y?: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(22,5): error TS2322: Type '(x: number, y: number) => number' is not assignable to type '() => number'. + Signature '(): number' has no corresponding signature in '(x: number, y: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(33,5): error TS2322: Type '(x: number, y: number) => number' is not assignable to type '(x?: number) => number'. + Signature '(x?: number): number' has no corresponding signature in '(x: number, y: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(39,5): error TS2322: Type '(x: number, y: number) => number' is not assignable to type '(x: number) => number'. + Signature '(x: number): number' has no corresponding signature in '(x: number, y: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(45,5): error TS2322: Type '(x: number, y: number) => number' is not assignable to type '(x: number) => number'. + Signature '(x: number): number' has no corresponding signature in '(x: number, y: number) => number' ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts (7 errors) ==== @@ -26,18 +33,22 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a = (x: number) => 1; // error, too many required params ~ !!! error TS2322: Type '(x: number) => number' is not assignable to type '() => number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '(x: number) => number' a = b.a; // ok a = b.a2; // ok a = b.a3; // error ~ !!! error TS2322: Type '(x: number) => number' is not assignable to type '() => number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '(x: number) => number' a = b.a4; // error ~ !!! error TS2322: Type '(x: number, y?: number) => number' is not assignable to type '() => number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '(x: number, y?: number) => number' a = b.a5; // ok a = b.a6; // error ~ !!! error TS2322: Type '(x: number, y: number) => number' is not assignable to type '() => number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '(x: number, y: number) => number' var a2: (x?: number) => number; a2 = () => 1; // ok, same number of required params @@ -51,6 +62,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a2 = b.a6; // error ~~ !!! error TS2322: Type '(x: number, y: number) => number' is not assignable to type '(x?: number) => number'. +!!! error TS2322: Signature '(x?: number): number' has no corresponding signature in '(x: number, y: number) => number' var a3: (x: number) => number; a3 = () => 1; // ok, fewer required params @@ -59,6 +71,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a3 = (x: number, y: number) => 1; // error, too many required params ~~ !!! error TS2322: Type '(x: number, y: number) => number' is not assignable to type '(x: number) => number'. +!!! error TS2322: Signature '(x: number): number' has no corresponding signature in '(x: number, y: number) => number' a3 = b.a; // ok a3 = b.a2; // ok a3 = b.a3; // ok @@ -67,6 +80,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a3 = b.a6; // error ~~ !!! error TS2322: Type '(x: number, y: number) => number' is not assignable to type '(x: number) => number'. +!!! error TS2322: Signature '(x: number): number' has no corresponding signature in '(x: number, y: number) => number' var a4: (x: number, y?: number) => number; a4 = () => 1; // ok, fewer required params diff --git a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithRestParameters.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithRestParameters.errors.txt index 8eec8503e70..e785ab663ca 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithRestParameters.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithRestParameters.errors.txt @@ -1,30 +1,39 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(13,5): error TS2322: Type '(...args: string[]) => number' is not assignable to type '(...args: number[]) => number'. - Types of parameters 'args' and 'args' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(...args: number[]): number' has no corresponding signature in '(...args: string[]) => number' + Types of parameters 'args' and 'args' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(17,5): error TS2322: Type '(x?: string) => number' is not assignable to type '(...args: number[]) => number'. - Types of parameters 'x' and 'args' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(...args: number[]): number' has no corresponding signature in '(x?: string) => number' + Types of parameters 'x' and 'args' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(26,5): error TS2322: Type '(x: number, ...args: string[]) => number' is not assignable to type '(x: number, ...z: number[]) => number'. - Types of parameters 'args' and 'z' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' + Types of parameters 'args' and 'z' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(35,5): error TS2322: Type '(x: number, y?: number, z?: number) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number, z?: number) => number' + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(36,5): error TS2322: Type '(x: number, ...z: number[]) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Types of parameters 'z' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...z: number[]) => number' + Types of parameters 'z' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(37,5): error TS2322: Type '(x: string, y?: string, z?: string) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: string, y?: string, z?: string) => number' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(41,5): error TS2322: Type '(x?: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x?: number, y?: number) => number' + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(43,5): error TS2322: Type '(x: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number) => number' + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(45,5): error TS2322: Type '(x: number, ...args: string[]) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Types of parameters 'args' and 'z' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' + Types of parameters 'args' and 'z' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts (9 errors) ==== @@ -43,16 +52,18 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a = (...args: string[]) => 1; // error, type mismatch ~ !!! error TS2322: Type '(...args: string[]) => number' is not assignable to type '(...args: number[]) => number'. -!!! error TS2322: Types of parameters 'args' and 'args' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(...args: number[]): number' has no corresponding signature in '(...args: string[]) => number' +!!! error TS2322: Types of parameters 'args' and 'args' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = (x?: number) => 1; // ok, same number of required params a = (x?: number, y?: number, z?: number) => 1; // ok, same number of required params a = (x: number) => 1; // ok, rest param corresponds to infinite number of params a = (x?: string) => 1; // error, incompatible type ~ !!! error TS2322: Type '(x?: string) => number' is not assignable to type '(...args: number[]) => number'. -!!! error TS2322: Types of parameters 'x' and 'args' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(...args: number[]): number' has no corresponding signature in '(x?: string) => number' +!!! error TS2322: Types of parameters 'x' and 'args' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var a2: (x: number, ...z: number[]) => number; @@ -64,8 +75,9 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a2 = (x: number, ...args: string[]) => 1; // should be type mismatch error ~~ !!! error TS2322: Type '(x: number, ...args: string[]) => number' is not assignable to type '(x: number, ...z: number[]) => number'. -!!! error TS2322: Types of parameters 'args' and 'z' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' +!!! error TS2322: Types of parameters 'args' and 'z' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a2 = (x: number, y: number) => 1; // ok, rest param corresponds to infinite number of params a2 = (x: number, y?: number) => 1; // ok, same number of required params @@ -77,35 +89,41 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a3 = (x: number, y?: number, z?: number) => 1; // error ~~ !!! error TS2322: Type '(x: number, y?: number, z?: number) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number, z?: number) => number' +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. a3 = (x: number, ...z: number[]) => 1; // error ~~ !!! error TS2322: Type '(x: number, ...z: number[]) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2322: Types of parameters 'z' and 'y' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...z: number[]) => number' +!!! error TS2322: Types of parameters 'z' and 'y' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. a3 = (x: string, y?: string, z?: string) => 1; // error ~~ !!! error TS2322: Type '(x: string, y?: string, z?: string) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: string, y?: string, z?: string) => number' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var a4: (x?: number, y?: string, ...z: number[]) => number; a4 = () => 1; // ok, fewer required params a4 = (x?: number, y?: number) => 1; // error, type mismatch ~~ !!! error TS2322: Type '(x?: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x?: number, y?: number) => number' +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. a4 = (x: number) => 1; // ok, all present params match a4 = (x: number, y?: number) => 1; // error, second param has type mismatch ~~ !!! error TS2322: Type '(x: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number) => number' +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. a4 = (x?: number, y?: string) => 1; // ok, same number of required params with matching types a4 = (x: number, ...args: string[]) => 1; // error, rest params have type mismatch ~~ !!! error TS2322: Type '(x: number, ...args: string[]) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2322: Types of parameters 'args' and 'z' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file +!!! error TS2322: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' +!!! error TS2322: Types of parameters 'args' and 'z' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures.errors.txt b/tests/baselines/reference/assignmentCompatWithConstructSignatures.errors.txt index 9c0c0d6a8fd..dfefb83af2f 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures.errors.txt @@ -1,11 +1,19 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(28,1): error TS2322: Type 'S2' is not assignable to type 'T'. + Signature 'new (x: number): void' has no corresponding signature in 'S2' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(29,1): error TS2322: Type '(x: string) => void' is not assignable to type 'T'. + Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(30,1): error TS2322: Type '(x: string) => number' is not assignable to type 'T'. + Signature 'new (x: number): void' has no corresponding signature in '(x: string) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(31,1): error TS2322: Type '(x: string) => string' is not assignable to type 'T'. + Signature 'new (x: number): void' has no corresponding signature in '(x: string) => string' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(32,1): error TS2322: Type 'S2' is not assignable to type 'new (x: number) => void'. + Signature 'new (x: number): void' has no corresponding signature in 'S2' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(33,1): error TS2322: Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. + Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(34,1): error TS2322: Type '(x: string) => number' is not assignable to type 'new (x: number) => void'. + Signature 'new (x: number): void' has no corresponding signature in '(x: string) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(35,1): error TS2322: Type '(x: string) => string' is not assignable to type 'new (x: number) => void'. + Signature 'new (x: number): void' has no corresponding signature in '(x: string) => string' ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts (8 errors) ==== @@ -39,25 +47,33 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme t = s2; ~ !!! error TS2322: Type 'S2' is not assignable to type 'T'. +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in 'S2' t = a3; ~ !!! error TS2322: Type '(x: string) => void' is not assignable to type 'T'. +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' t = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type 'T'. +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => number' t = function (x: string) { return ''; } ~ !!! error TS2322: Type '(x: string) => string' is not assignable to type 'T'. +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => string' a = s2; ~ !!! error TS2322: Type 'S2' is not assignable to type 'new (x: number) => void'. +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in 'S2' a = a3; ~ !!! error TS2322: Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' a = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type 'new (x: number) => void'. +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => number' a = function (x: string) { return ''; } ~ !!! error TS2322: Type '(x: string) => string' is not assignable to type 'new (x: number) => void'. +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => string' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures2.errors.txt b/tests/baselines/reference/assignmentCompatWithConstructSignatures2.errors.txt index 5e8fc6dd3a4..ab181157b6e 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures2.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures2.errors.txt @@ -9,9 +9,11 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(34,1): error TS2322: Type 'S2' is not assignable to type 'T'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. + Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(35,1): error TS2322: Type '{ f(x: string): void; }' is not assignable to type 'T'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. + Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(36,1): error TS2322: Type '(x: string) => number' is not assignable to type 'T'. Property 'f' is missing in type '(x: string) => number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(37,1): error TS2322: Type '(x: string) => string' is not assignable to type 'T'. @@ -19,9 +21,11 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(38,1): error TS2322: Type 'S2' is not assignable to type '{ f: new (x: number) => void; }'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. + Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(39,1): error TS2322: Type '{ f(x: string): void; }' is not assignable to type '{ f: new (x: number) => void; }'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. + Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(40,1): error TS2322: Type '(x: string) => number' is not assignable to type '{ f: new (x: number) => void; }'. Property 'f' is missing in type '(x: string) => number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(41,1): error TS2322: Type '(x: string) => string' is not assignable to type '{ f: new (x: number) => void; }'. @@ -79,11 +83,13 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type 'S2' is not assignable to type 'T'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' t = a3; ~ !!! error TS2322: Type '{ f(x: string): void; }' is not assignable to type 'T'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' t = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type 'T'. @@ -97,11 +103,13 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type 'S2' is not assignable to type '{ f: new (x: number) => void; }'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' a = a3; ~ !!! error TS2322: Type '{ f(x: string): void; }' is not assignable to type '{ f: new (x: number) => void; }'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' a = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type '{ f: new (x: number) => void; }'. diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt index 804e31600e1..3a771411b53 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt @@ -1,25 +1,34 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(52,9): error TS2322: Type 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. - Types of parameters 'y' and 'y' are incompatible. - Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. - Types of parameters 'arg2' and 'arg2' are incompatible. - Type '{ foo: number; }' is not assignable to type 'Base'. - Types of property 'foo' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' + Types of parameters 'y' and 'y' are incompatible. + Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. + Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' + Types of parameters 'arg2' and 'arg2' are incompatible. + Type '{ foo: number; }' is not assignable to type 'Base'. + Types of property 'foo' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(53,9): error TS2322: Type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' is not assignable to type 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U'. - Types of parameters 'y' and 'y' are incompatible. - Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. + Signature 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U): (r: T) => U' has no corresponding signature in 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' + Types of parameters 'y' and 'y' are incompatible. + Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(77,9): error TS2322: Type 'new (x: (a: T) => T) => T[]' is not assignable to type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }'. - Types of parameters 'x' and 'x' are incompatible. - Type '(a: any) => any' is not assignable to type '{ new (a: number): number; new (a?: number): number; }'. + Signature 'new (x: { new (a: number): number; new (a?: number): number; }): number[]' has no corresponding signature in 'new (x: (a: T) => T) => T[]' + Types of parameters 'x' and 'x' are incompatible. + Type '(a: any) => any' is not assignable to type '{ new (a: number): number; new (a?: number): number; }'. + Signature 'new (a: number): number' has no corresponding signature in '(a: any) => any' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(78,9): error TS2322: Type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }' is not assignable to type 'new (x: (a: T) => T) => T[]'. - Types of parameters 'x' and 'x' are incompatible. - Type '{ new (a: number): number; new (a?: number): number; }' is not assignable to type '(a: any) => any'. + Signature 'new (x: (a: T) => T): T[]' has no corresponding signature in '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }' + Types of parameters 'x' and 'x' are incompatible. + Type '{ new (a: number): number; new (a?: number): number; }' is not assignable to type '(a: any) => any'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(81,9): error TS2322: Type 'new (x: (a: T) => T) => any[]' is not assignable to type '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }'. - Types of parameters 'x' and 'x' are incompatible. - Type '(a: any) => any' is not assignable to type '{ new (a: T): T; new (a: T): T; }'. + Signature 'new (x: { new (a: T): T; new (a: T): T; }): any[]' has no corresponding signature in 'new (x: (a: T) => T) => any[]' + Types of parameters 'x' and 'x' are incompatible. + Type '(a: any) => any' is not assignable to type '{ new (a: T): T; new (a: T): T; }'. + Signature 'new (a: T): T' has no corresponding signature in '(a: any) => any' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(82,9): error TS2322: Type '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }' is not assignable to type 'new (x: (a: T) => T) => any[]'. - Types of parameters 'x' and 'x' are incompatible. - Type '{ new (a: T): T; new (a: T): T; }' is not assignable to type '(a: any) => any'. + Signature 'new (x: (a: T) => T): any[]' has no corresponding signature in '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }' + Types of parameters 'x' and 'x' are incompatible. + Type '{ new (a: T): T; new (a: T): T; }' is not assignable to type '(a: any) => any'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts (6 errors) ==== @@ -77,17 +86,20 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a8 = b8; // error, type mismatch ~~ !!! error TS2322: Type 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. -!!! error TS2322: Types of parameters 'arg2' and 'arg2' are incompatible. -!!! error TS2322: Type '{ foo: number; }' is not assignable to type 'Base'. -!!! error TS2322: Types of property 'foo' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. +!!! error TS2322: Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' +!!! error TS2322: Types of parameters 'arg2' and 'arg2' are incompatible. +!!! error TS2322: Type '{ foo: number; }' is not assignable to type 'Base'. +!!! error TS2322: Types of property 'foo' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. b8 = a8; // error ~~ !!! error TS2322: Type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' is not assignable to type 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U'. -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. +!!! error TS2322: Signature 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U): (r: T) => U' has no corresponding signature in 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. var b10: new (...x: T[]) => T; @@ -114,25 +126,31 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a16 = b16; // error ~~~ !!! error TS2322: Type 'new (x: (a: T) => T) => T[]' is not assignable to type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type '(a: any) => any' is not assignable to type '{ new (a: number): number; new (a?: number): number; }'. +!!! error TS2322: Signature 'new (x: { new (a: number): number; new (a?: number): number; }): number[]' has no corresponding signature in 'new (x: (a: T) => T) => T[]' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type '(a: any) => any' is not assignable to type '{ new (a: number): number; new (a?: number): number; }'. +!!! error TS2322: Signature 'new (a: number): number' has no corresponding signature in '(a: any) => any' b16 = a16; // error ~~~ !!! error TS2322: Type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }' is not assignable to type 'new (x: (a: T) => T) => T[]'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type '{ new (a: number): number; new (a?: number): number; }' is not assignable to type '(a: any) => any'. +!!! error TS2322: Signature 'new (x: (a: T) => T): T[]' has no corresponding signature in '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type '{ new (a: number): number; new (a?: number): number; }' is not assignable to type '(a: any) => any'. var b17: new (x: (a: T) => T) => any[]; a17 = b17; // error ~~~ !!! error TS2322: Type 'new (x: (a: T) => T) => any[]' is not assignable to type '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type '(a: any) => any' is not assignable to type '{ new (a: T): T; new (a: T): T; }'. +!!! error TS2322: Signature 'new (x: { new (a: T): T; new (a: T): T; }): any[]' has no corresponding signature in 'new (x: (a: T) => T) => any[]' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type '(a: any) => any' is not assignable to type '{ new (a: T): T; new (a: T): T; }'. +!!! error TS2322: Signature 'new (a: T): T' has no corresponding signature in '(a: any) => any' b17 = a17; // error ~~~ !!! error TS2322: Type '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }' is not assignable to type 'new (x: (a: T) => T) => any[]'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type '{ new (a: T): T; new (a: T): T; }' is not assignable to type '(a: any) => any'. +!!! error TS2322: Signature 'new (x: (a: T) => T): any[]' has no corresponding signature in '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type '{ new (a: T): T; new (a: T): T; }' is not assignable to type '(a: any) => any'. } module WithGenericSignaturesInBaseType { diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/assignmentCompatWithConstructSignaturesWithOptionalParameters.errors.txt index df56af3ee98..4ba4ec9a3c3 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithConstructSignaturesWithOptionalParameters.errors.txt @@ -1,8 +1,13 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts(16,5): error TS2322: Type 'new (x: number) => number' is not assignable to type 'new () => number'. + Signature 'new (): number' has no corresponding signature in 'new (x: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts(17,5): error TS2322: Type 'new (x: number, y?: number) => number' is not assignable to type 'new () => number'. + Signature 'new (): number' has no corresponding signature in 'new (x: number, y?: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts(19,5): error TS2322: Type 'new (x: number, y: number) => number' is not assignable to type 'new () => number'. + Signature 'new (): number' has no corresponding signature in 'new (x: number, y: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts(27,5): error TS2322: Type 'new (x: number, y: number) => number' is not assignable to type 'new (x?: number) => number'. + Signature 'new (x?: number): number' has no corresponding signature in 'new (x: number, y: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts(35,5): error TS2322: Type 'new (x: number, y: number) => number' is not assignable to type 'new (x: number) => number'. + Signature 'new (x: number): number' has no corresponding signature in 'new (x: number, y: number) => number' ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts (5 errors) ==== @@ -24,13 +29,16 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a = b.a3; // error ~ !!! error TS2322: Type 'new (x: number) => number' is not assignable to type 'new () => number'. +!!! error TS2322: Signature 'new (): number' has no corresponding signature in 'new (x: number) => number' a = b.a4; // error ~ !!! error TS2322: Type 'new (x: number, y?: number) => number' is not assignable to type 'new () => number'. +!!! error TS2322: Signature 'new (): number' has no corresponding signature in 'new (x: number, y?: number) => number' a = b.a5; // ok a = b.a6; // error ~ !!! error TS2322: Type 'new (x: number, y: number) => number' is not assignable to type 'new () => number'. +!!! error TS2322: Signature 'new (): number' has no corresponding signature in 'new (x: number, y: number) => number' var a2: new (x?: number) => number; a2 = b.a; // ok @@ -41,6 +49,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a2 = b.a6; // error ~~ !!! error TS2322: Type 'new (x: number, y: number) => number' is not assignable to type 'new (x?: number) => number'. +!!! error TS2322: Signature 'new (x?: number): number' has no corresponding signature in 'new (x: number, y: number) => number' var a3: new (x: number) => number; a3 = b.a; // ok @@ -51,6 +60,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a3 = b.a6; // error ~~ !!! error TS2322: Type 'new (x: number, y: number) => number' is not assignable to type 'new (x: number) => number'. +!!! error TS2322: Signature 'new (x: number): number' has no corresponding signature in 'new (x: number, y: number) => number' var a4: new (x: number, y?: number) => number; a4 = b.a; // ok diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.errors.txt index a18da8fd8f7..229ec114d39 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.errors.txt @@ -1,9 +1,15 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts(14,13): error TS2322: Type '(x: T) => any' is not assignable to type '() => T'. + Signature '(): T' has no corresponding signature in '(x: T) => any' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts(23,13): error TS2322: Type '(x: T, y: T) => any' is not assignable to type '(x: T) => T'. + Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => any' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts(65,9): error TS2322: Type '(x: T) => T' is not assignable to type '() => T'. + Signature '(): T' has no corresponding signature in '(x: T) => T' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts(66,9): error TS2322: Type '(x: T, y?: T) => T' is not assignable to type '() => T'. + Signature '(): T' has no corresponding signature in '(x: T, y?: T) => T' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts(107,13): error TS2322: Type '(x: T) => any' is not assignable to type '() => T'. + Signature '(): T' has no corresponding signature in '(x: T) => any' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts(116,13): error TS2322: Type '(x: T, y: T) => any' is not assignable to type '(x: T) => T'. + Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => any' ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts (6 errors) ==== @@ -23,6 +29,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme this.a = (x: T) => null; // error, too many required params ~~~~~~ !!! error TS2322: Type '(x: T) => any' is not assignable to type '() => T'. +!!! error TS2322: Signature '(): T' has no corresponding signature in '(x: T) => any' this.a2 = () => null; // ok, same T of required params this.a2 = (x?: T) => null; // ok, same T of required params @@ -34,6 +41,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme this.a3 = (x: T, y: T) => null; // error, too many required params ~~~~~~~ !!! error TS2322: Type '(x: T, y: T) => any' is not assignable to type '(x: T) => T'. +!!! error TS2322: Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => any' this.a4 = () => null; // ok, fewer required params this.a4 = (x?: T, y?: T) => null; // ok, fewer required params @@ -78,9 +86,11 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme b.a = t.a3; ~~~ !!! error TS2322: Type '(x: T) => T' is not assignable to type '() => T'. +!!! error TS2322: Signature '(): T' has no corresponding signature in '(x: T) => T' b.a = t.a4; ~~~ !!! error TS2322: Type '(x: T, y?: T) => T' is not assignable to type '() => T'. +!!! error TS2322: Signature '(): T' has no corresponding signature in '(x: T, y?: T) => T' b.a = t.a5; b.a2 = t.a; @@ -124,6 +134,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme this.a = (x: T) => null; // error, too many required params ~~~~~~ !!! error TS2322: Type '(x: T) => any' is not assignable to type '() => T'. +!!! error TS2322: Signature '(): T' has no corresponding signature in '(x: T) => any' this.a2 = () => null; // ok, same T of required params this.a2 = (x?: T) => null; // ok, same T of required params @@ -135,6 +146,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme this.a3 = (x: T, y: T) => null; // error, too many required params ~~~~~~~ !!! error TS2322: Type '(x: T, y: T) => any' is not assignable to type '(x: T) => T'. +!!! error TS2322: Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => any' this.a4 = () => null; // ok, fewer required params this.a4 = (x?: T, y?: T) => null; // ok, fewer required params diff --git a/tests/baselines/reference/assignmentCompatWithOverloads.errors.txt b/tests/baselines/reference/assignmentCompatWithOverloads.errors.txt index 3bea0c46716..1def25bf372 100644 --- a/tests/baselines/reference/assignmentCompatWithOverloads.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithOverloads.errors.txt @@ -1,13 +1,17 @@ tests/cases/compiler/assignmentCompatWithOverloads.ts(17,1): error TS2322: Type '(x: string) => string' is not assignable to type '(s1: string) => number'. - Type 'string' is not assignable to type 'number'. -tests/cases/compiler/assignmentCompatWithOverloads.ts(19,1): error TS2322: Type '(x: number) => number' is not assignable to type '(s1: string) => number'. - Types of parameters 'x' and 's1' are incompatible. - Type 'number' is not assignable to type 'string'. -tests/cases/compiler/assignmentCompatWithOverloads.ts(21,1): error TS2322: Type '{ (x: string): string; (x: number): number; }' is not assignable to type '(s1: string) => number'. - Type 'string' is not assignable to type 'number'. -tests/cases/compiler/assignmentCompatWithOverloads.ts(30,1): error TS2322: Type 'typeof C' is not assignable to type 'new (x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. + Signature '(s1: string): number' has no corresponding signature in '(x: string) => string' Type 'string' is not assignable to type 'number'. +tests/cases/compiler/assignmentCompatWithOverloads.ts(19,1): error TS2322: Type '(x: number) => number' is not assignable to type '(s1: string) => number'. + Signature '(s1: string): number' has no corresponding signature in '(x: number) => number' + Types of parameters 'x' and 's1' are incompatible. + Type 'number' is not assignable to type 'string'. +tests/cases/compiler/assignmentCompatWithOverloads.ts(21,1): error TS2322: Type '{ (x: string): string; (x: number): number; }' is not assignable to type '(s1: string) => number'. + Signature '(s1: string): number' has no corresponding signature in '{ (x: string): string; (x: number): number; }' + Type 'string' is not assignable to type 'number'. +tests/cases/compiler/assignmentCompatWithOverloads.ts(30,1): error TS2322: Type 'typeof C' is not assignable to type 'new (x: number) => void'. + Signature 'new (x: number): void' has no corresponding signature in 'typeof C' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/assignmentCompatWithOverloads.ts (4 errors) ==== @@ -30,18 +34,21 @@ tests/cases/compiler/assignmentCompatWithOverloads.ts(30,1): error TS2322: Type g = f2; // Error ~ !!! error TS2322: Type '(x: string) => string' is not assignable to type '(s1: string) => number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(s1: string): number' has no corresponding signature in '(x: string) => string' +!!! error TS2322: Type 'string' is not assignable to type 'number'. g = f3; // Error ~ !!! error TS2322: Type '(x: number) => number' is not assignable to type '(s1: string) => number'. -!!! error TS2322: Types of parameters 'x' and 's1' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(s1: string): number' has no corresponding signature in '(x: number) => number' +!!! error TS2322: Types of parameters 'x' and 's1' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. g = f4; // Error ~ !!! error TS2322: Type '{ (x: string): string; (x: number): number; }' is not assignable to type '(s1: string) => number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(s1: string): number' has no corresponding signature in '{ (x: string): string; (x: number): number; }' +!!! error TS2322: Type 'string' is not assignable to type 'number'. class C { constructor(x: string); @@ -53,5 +60,6 @@ tests/cases/compiler/assignmentCompatWithOverloads.ts(30,1): error TS2322: Type d = C; // Error ~ !!! error TS2322: Type 'typeof C' is not assignable to type 'new (x: number) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file +!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in 'typeof C' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatability24.errors.txt b/tests/baselines/reference/assignmentCompatability24.errors.txt index 0f4a535d413..69c0bd2b288 100644 --- a/tests/baselines/reference/assignmentCompatability24.errors.txt +++ b/tests/baselines/reference/assignmentCompatability24.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/assignmentCompatability24.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tstring) => Tstring'. + Signature '(a: Tstring): Tstring' has no corresponding signature in 'interfaceWithPublicAndOptional' ==== tests/cases/compiler/assignmentCompatability24.ts (1 errors) ==== @@ -12,4 +13,5 @@ tests/cases/compiler/assignmentCompatability24.ts(9,1): error TS2322: Type 'inte } __test2__.__val__obj = __test1__.__val__obj4 ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tstring) => Tstring'. \ No newline at end of file +!!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tstring) => Tstring'. +!!! error TS2322: Signature '(a: Tstring): Tstring' has no corresponding signature in 'interfaceWithPublicAndOptional' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatability33.errors.txt b/tests/baselines/reference/assignmentCompatability33.errors.txt index e2352625280..50e173b1202 100644 --- a/tests/baselines/reference/assignmentCompatability33.errors.txt +++ b/tests/baselines/reference/assignmentCompatability33.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/assignmentCompatability33.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tstring) => Tstring'. + Signature '(a: Tstring): Tstring' has no corresponding signature in 'interfaceWithPublicAndOptional' ==== tests/cases/compiler/assignmentCompatability33.ts (1 errors) ==== @@ -12,4 +13,5 @@ tests/cases/compiler/assignmentCompatability33.ts(9,1): error TS2322: Type 'inte } __test2__.__val__obj = __test1__.__val__obj4 ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tstring) => Tstring'. \ No newline at end of file +!!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tstring) => Tstring'. +!!! error TS2322: Signature '(a: Tstring): Tstring' has no corresponding signature in 'interfaceWithPublicAndOptional' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatability34.errors.txt b/tests/baselines/reference/assignmentCompatability34.errors.txt index 2dd9cba6470..2f0bca9dff2 100644 --- a/tests/baselines/reference/assignmentCompatability34.errors.txt +++ b/tests/baselines/reference/assignmentCompatability34.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/assignmentCompatability34.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tnumber) => Tnumber'. + Signature '(a: Tnumber): Tnumber' has no corresponding signature in 'interfaceWithPublicAndOptional' ==== tests/cases/compiler/assignmentCompatability34.ts (1 errors) ==== @@ -12,4 +13,5 @@ tests/cases/compiler/assignmentCompatability34.ts(9,1): error TS2322: Type 'inte } __test2__.__val__obj = __test1__.__val__obj4 ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tnumber) => Tnumber'. \ No newline at end of file +!!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tnumber) => Tnumber'. +!!! error TS2322: Signature '(a: Tnumber): Tnumber' has no corresponding signature in 'interfaceWithPublicAndOptional' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatability37.errors.txt b/tests/baselines/reference/assignmentCompatability37.errors.txt index 452b72fe8ff..f965d49a0da 100644 --- a/tests/baselines/reference/assignmentCompatability37.errors.txt +++ b/tests/baselines/reference/assignmentCompatability37.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/assignmentCompatability37.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type 'new (param: Tnumber) => any'. + Signature 'new (param: Tnumber): any' has no corresponding signature in 'interfaceWithPublicAndOptional' ==== tests/cases/compiler/assignmentCompatability37.ts (1 errors) ==== @@ -12,4 +13,5 @@ tests/cases/compiler/assignmentCompatability37.ts(9,1): error TS2322: Type 'inte } __test2__.__val__aa = __test1__.__val__obj4 ~~~~~~~~~~~~~~~~~~~ -!!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type 'new (param: Tnumber) => any'. \ No newline at end of file +!!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type 'new (param: Tnumber) => any'. +!!! error TS2322: Signature 'new (param: Tnumber): any' has no corresponding signature in 'interfaceWithPublicAndOptional' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatability38.errors.txt b/tests/baselines/reference/assignmentCompatability38.errors.txt index 5f7918374c1..1a5540065cc 100644 --- a/tests/baselines/reference/assignmentCompatability38.errors.txt +++ b/tests/baselines/reference/assignmentCompatability38.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/assignmentCompatability38.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type 'new (param: Tstring) => any'. + Signature 'new (param: Tstring): any' has no corresponding signature in 'interfaceWithPublicAndOptional' ==== tests/cases/compiler/assignmentCompatability38.ts (1 errors) ==== @@ -12,4 +13,5 @@ tests/cases/compiler/assignmentCompatability38.ts(9,1): error TS2322: Type 'inte } __test2__.__val__aa = __test1__.__val__obj4 ~~~~~~~~~~~~~~~~~~~ -!!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type 'new (param: Tstring) => any'. \ No newline at end of file +!!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type 'new (param: Tstring) => any'. +!!! error TS2322: Signature 'new (param: Tstring): any' has no corresponding signature in 'interfaceWithPublicAndOptional' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentToObject.errors.txt b/tests/baselines/reference/assignmentToObject.errors.txt index aa1222bd799..796f8430b84 100644 --- a/tests/baselines/reference/assignmentToObject.errors.txt +++ b/tests/baselines/reference/assignmentToObject.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/assignmentToObject.ts(3,5): error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type 'number' is not assignable to type '() => string'. + Signature '(): string' has no corresponding signature in 'Number' ==== tests/cases/compiler/assignmentToObject.ts (1 errors) ==== @@ -11,4 +12,5 @@ tests/cases/compiler/assignmentToObject.ts(3,5): error TS2322: Type '{ toString: !!! error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type 'number' is not assignable to type '() => string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in 'Number' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt b/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt index 2e85ee101f5..881b29bf443 100644 --- a/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt +++ b/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt @@ -1,11 +1,13 @@ tests/cases/compiler/assignmentToObjectAndFunction.ts(1,5): error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type 'number' is not assignable to type '() => string'. + Signature '(): string' has no corresponding signature in 'Number' tests/cases/compiler/assignmentToObjectAndFunction.ts(8,5): error TS2322: Type '{}' is not assignable to type 'Function'. Property 'apply' is missing in type '{}'. tests/cases/compiler/assignmentToObjectAndFunction.ts(29,5): error TS2322: Type 'typeof bad' is not assignable to type 'Function'. Types of property 'apply' are incompatible. Type 'number' is not assignable to type '(thisArg: any, argArray?: any) => any'. + Signature '(thisArg: any, argArray?: any): any' has no corresponding signature in 'Number' ==== tests/cases/compiler/assignmentToObjectAndFunction.ts (3 errors) ==== @@ -14,6 +16,7 @@ tests/cases/compiler/assignmentToObjectAndFunction.ts(29,5): error TS2322: Type !!! error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type 'number' is not assignable to type '() => string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in 'Number' var goodObj: Object = { toString(x?) { return ""; @@ -48,4 +51,5 @@ tests/cases/compiler/assignmentToObjectAndFunction.ts(29,5): error TS2322: Type ~~~~~~~~~~ !!! error TS2322: Type 'typeof bad' is not assignable to type 'Function'. !!! error TS2322: Types of property 'apply' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type '(thisArg: any, argArray?: any) => any'. \ No newline at end of file +!!! error TS2322: Type 'number' is not assignable to type '(thisArg: any, argArray?: any) => any'. +!!! error TS2322: Signature '(thisArg: any, argArray?: any): any' has no corresponding signature in 'Number' \ No newline at end of file diff --git a/tests/baselines/reference/asyncFunctionDeclaration15_es6.errors.txt b/tests/baselines/reference/asyncFunctionDeclaration15_es6.errors.txt index bc1ef24127a..8aa24d79ac0 100644 --- a/tests/baselines/reference/asyncFunctionDeclaration15_es6.errors.txt +++ b/tests/baselines/reference/asyncFunctionDeclaration15_es6.errors.txt @@ -3,10 +3,12 @@ tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration1 tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(8,16): error TS1055: Type 'number' is not a valid async function return type. tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(9,16): error TS1055: Type 'PromiseLike' is not a valid async function return type. tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(10,16): error TS1055: Type 'typeof Thenable' is not a valid async function return type. - Type 'Thenable' is not assignable to type 'PromiseLike'. - Types of property 'then' are incompatible. - Type '() => void' is not assignable to type '{ (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike; (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => void): PromiseLike; }'. - Type 'void' is not assignable to type 'PromiseLike'. + Signature 'new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void): PromiseLike' has no corresponding signature in 'typeof Thenable' + Type 'Thenable' is not assignable to type 'PromiseLike'. + Types of property 'then' are incompatible. + Type '() => void' is not assignable to type '{ (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike; (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => void): PromiseLike; }'. + Signature '(onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike' has no corresponding signature in '() => void' + Type 'void' is not assignable to type 'PromiseLike'. tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(17,16): error TS1059: Return expression in async function does not have a valid callable 'then' member. tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(23,25): error TS1058: Operand for 'await' does not have a valid callable 'then' member. @@ -32,10 +34,12 @@ tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration1 async function fn6(): Thenable { } // error ~~~ !!! error TS1055: Type 'typeof Thenable' is not a valid async function return type. -!!! error TS1055: Type 'Thenable' is not assignable to type 'PromiseLike'. -!!! error TS1055: Types of property 'then' are incompatible. -!!! error TS1055: Type '() => void' is not assignable to type '{ (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike; (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => void): PromiseLike; }'. -!!! error TS1055: Type 'void' is not assignable to type 'PromiseLike'. +!!! error TS1055: Signature 'new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void): PromiseLike' has no corresponding signature in 'typeof Thenable' +!!! error TS1055: Type 'Thenable' is not assignable to type 'PromiseLike'. +!!! error TS1055: Types of property 'then' are incompatible. +!!! error TS1055: Type '() => void' is not assignable to type '{ (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike; (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => void): PromiseLike; }'. +!!! error TS1055: Signature '(onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike' has no corresponding signature in '() => void' +!!! error TS1055: Type 'void' is not assignable to type 'PromiseLike'. async function fn7() { return; } // valid: Promise async function fn8() { return 1; } // valid: Promise async function fn9() { return null; } // valid: Promise diff --git a/tests/baselines/reference/booleanAssignment.errors.txt b/tests/baselines/reference/booleanAssignment.errors.txt index 454bd7ef707..b16cca5c1bb 100644 --- a/tests/baselines/reference/booleanAssignment.errors.txt +++ b/tests/baselines/reference/booleanAssignment.errors.txt @@ -1,15 +1,18 @@ tests/cases/compiler/booleanAssignment.ts(2,1): error TS2322: Type 'number' is not assignable to type 'Boolean'. Types of property 'valueOf' are incompatible. Type '() => number' is not assignable to type '() => boolean'. - Type 'number' is not assignable to type 'boolean'. + Signature '(): boolean' has no corresponding signature in '() => number' + Type 'number' is not assignable to type 'boolean'. tests/cases/compiler/booleanAssignment.ts(3,1): error TS2322: Type 'string' is not assignable to type 'Boolean'. Types of property 'valueOf' are incompatible. Type '() => string' is not assignable to type '() => boolean'. - Type 'string' is not assignable to type 'boolean'. + Signature '(): boolean' has no corresponding signature in '() => string' + Type 'string' is not assignable to type 'boolean'. tests/cases/compiler/booleanAssignment.ts(4,1): error TS2322: Type '{}' is not assignable to type 'Boolean'. Types of property 'valueOf' are incompatible. Type '() => Object' is not assignable to type '() => boolean'. - Type 'Object' is not assignable to type 'boolean'. + Signature '(): boolean' has no corresponding signature in '() => Object' + Type 'Object' is not assignable to type 'boolean'. ==== tests/cases/compiler/booleanAssignment.ts (3 errors) ==== @@ -19,19 +22,22 @@ tests/cases/compiler/booleanAssignment.ts(4,1): error TS2322: Type '{}' is not a !!! error TS2322: Type 'number' is not assignable to type 'Boolean'. !!! error TS2322: Types of property 'valueOf' are incompatible. !!! error TS2322: Type '() => number' is not assignable to type '() => boolean'. -!!! error TS2322: Type 'number' is not assignable to type 'boolean'. +!!! error TS2322: Signature '(): boolean' has no corresponding signature in '() => number' +!!! error TS2322: Type 'number' is not assignable to type 'boolean'. b = "a"; // Error ~ !!! error TS2322: Type 'string' is not assignable to type 'Boolean'. !!! error TS2322: Types of property 'valueOf' are incompatible. !!! error TS2322: Type '() => string' is not assignable to type '() => boolean'. -!!! error TS2322: Type 'string' is not assignable to type 'boolean'. +!!! error TS2322: Signature '(): boolean' has no corresponding signature in '() => string' +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. b = {}; // Error ~ !!! error TS2322: Type '{}' is not assignable to type 'Boolean'. !!! error TS2322: Types of property 'valueOf' are incompatible. !!! error TS2322: Type '() => Object' is not assignable to type '() => boolean'. -!!! error TS2322: Type 'Object' is not assignable to type 'boolean'. +!!! error TS2322: Signature '(): boolean' has no corresponding signature in '() => Object' +!!! error TS2322: Type 'Object' is not assignable to type 'boolean'. var o = {}; o = b; // OK diff --git a/tests/baselines/reference/callConstructAssignment.errors.txt b/tests/baselines/reference/callConstructAssignment.errors.txt index 42949cf585d..e52d8b1f063 100644 --- a/tests/baselines/reference/callConstructAssignment.errors.txt +++ b/tests/baselines/reference/callConstructAssignment.errors.txt @@ -1,5 +1,7 @@ tests/cases/compiler/callConstructAssignment.ts(7,1): error TS2322: Type 'new () => any' is not assignable to type '() => void'. + Signature '(): void' has no corresponding signature in 'new () => any' tests/cases/compiler/callConstructAssignment.ts(8,1): error TS2322: Type '() => void' is not assignable to type 'new () => any'. + Signature 'new (): any' has no corresponding signature in '() => void' ==== tests/cases/compiler/callConstructAssignment.ts (2 errors) ==== @@ -12,6 +14,8 @@ tests/cases/compiler/callConstructAssignment.ts(8,1): error TS2322: Type '() => foo = bar; // error ~~~ !!! error TS2322: Type 'new () => any' is not assignable to type '() => void'. +!!! error TS2322: Signature '(): void' has no corresponding signature in 'new () => any' bar = foo; // error ~~~ -!!! error TS2322: Type '() => void' is not assignable to type 'new () => any'. \ No newline at end of file +!!! error TS2322: Type '() => void' is not assignable to type 'new () => any'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in '() => void' \ No newline at end of file diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance.errors.txt b/tests/baselines/reference/callSignatureAssignabilityInInheritance.errors.txt index d6efdd66868..3e66787b54d 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance.errors.txt +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance.errors.txt @@ -1,7 +1,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance.ts(57,15): error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type '(x: number) => string' is not assignable to type '(x: number) => number'. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): number' has no corresponding signature in '(x: number) => string' + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance.ts (1 errors) ==== @@ -66,7 +67,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSign !!! error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x: number) => string' is not assignable to type '(x: number) => number'. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Signature '(x: number): number' has no corresponding signature in '(x: number) => string' +!!! error TS2430: Type 'string' is not assignable to type 'number'. // N's a: (x: number) => string; // error because base returns non-void; } diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance3.errors.txt b/tests/baselines/reference/callSignatureAssignabilityInInheritance3.errors.txt index 7e9d75b1b41..b3bdb17ea71 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance3.errors.txt +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance3.errors.txt @@ -1,17 +1,20 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance3.ts(51,19): error TS2430: Interface 'I2' incorrectly extends interface 'A'. Types of property 'a2' are incompatible. Type '(x: T) => U[]' is not assignable to type '(x: number) => string[]'. - Types of parameters 'x' and 'x' are incompatible. - Type 'T' is not assignable to type 'number'. + Signature '(x: number): string[]' has no corresponding signature in '(x: T) => U[]' + Types of parameters 'x' and 'x' are incompatible. + Type 'T' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance3.ts(60,19): error TS2430: Interface 'I4' incorrectly extends interface 'A'. Types of property 'a8' are incompatible. Type '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. - Types of parameters 'y' and 'y' are incompatible. - Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. - Types of parameters 'arg2' and 'arg2' are incompatible. - Type '{ foo: number; }' is not assignable to type 'Base'. - Types of property 'foo' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' + Types of parameters 'y' and 'y' are incompatible. + Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. + Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' + Types of parameters 'arg2' and 'arg2' are incompatible. + Type '{ foo: number; }' is not assignable to type 'Base'. + Types of property 'foo' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance3.ts (2 errors) ==== @@ -70,8 +73,9 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSign !!! error TS2430: Interface 'I2' incorrectly extends interface 'A'. !!! error TS2430: Types of property 'a2' are incompatible. !!! error TS2430: Type '(x: T) => U[]' is not assignable to type '(x: number) => string[]'. -!!! error TS2430: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2430: Type 'T' is not assignable to type 'number'. +!!! error TS2430: Signature '(x: number): string[]' has no corresponding signature in '(x: T) => U[]' +!!! error TS2430: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2430: Type 'T' is not assignable to type 'number'. a2: (x: T) => U[]; // error, no contextual signature instantiation since I2.a2 is not generic } @@ -85,12 +89,14 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSign !!! error TS2430: Interface 'I4' incorrectly extends interface 'A'. !!! error TS2430: Types of property 'a8' are incompatible. !!! error TS2430: Type '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. -!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2430: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. -!!! error TS2430: Types of parameters 'arg2' and 'arg2' are incompatible. -!!! error TS2430: Type '{ foo: number; }' is not assignable to type 'Base'. -!!! error TS2430: Types of property 'foo' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Signature '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' +!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2430: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. +!!! error TS2430: Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' +!!! error TS2430: Types of parameters 'arg2' and 'arg2' are incompatible. +!!! error TS2430: Type '{ foo: number; }' is not assignable to type 'Base'. +!!! error TS2430: Types of property 'foo' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a8: (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U; // error, type mismatch } diff --git a/tests/baselines/reference/castingTuple.errors.txt b/tests/baselines/reference/castingTuple.errors.txt index 62a36c9c156..cdf40eeeff6 100644 --- a/tests/baselines/reference/castingTuple.errors.txt +++ b/tests/baselines/reference/castingTuple.errors.txt @@ -13,8 +13,9 @@ tests/cases/conformance/types/tuple/castingTuple.ts(30,5): error TS2403: Subsequ tests/cases/conformance/types/tuple/castingTuple.ts(30,14): error TS2352: Neither type '[number, string]' nor type 'number[]' is assignable to the other. Types of property 'pop' are incompatible. Type '() => number | string' is not assignable to type '() => number'. - Type 'number | string' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => number | string' + Type 'number | string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/tuple/castingTuple.ts(31,1): error TS2304: Cannot find name 't4'. @@ -70,8 +71,9 @@ tests/cases/conformance/types/tuple/castingTuple.ts(31,1): error TS2304: Cannot !!! error TS2352: Neither type '[number, string]' nor type 'number[]' is assignable to the other. !!! error TS2352: Types of property 'pop' are incompatible. !!! error TS2352: Type '() => number | string' is not assignable to type '() => number'. -!!! error TS2352: Type 'number | string' is not assignable to type 'number'. -!!! error TS2352: Type 'string' is not assignable to type 'number'. +!!! error TS2352: Signature '(): number' has no corresponding signature in '() => number | string' +!!! error TS2352: Type 'number | string' is not assignable to type 'number'. +!!! error TS2352: Type 'string' is not assignable to type 'number'. t4[2] = 10; ~~ !!! error TS2304: Cannot find name 't4'. diff --git a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.errors.txt b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.errors.txt index 181bfcc907d..579f6c47138 100644 --- a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.errors.txt +++ b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts(19,59): error TS2345: Argument of type '(c: C) => B' is not assignable to parameter of type '(x: C) => C'. - Type 'B' is not assignable to type 'C'. - Property 'z' is missing in type 'B'. + Signature '(x: C): C' has no corresponding signature in '(c: C) => B' + Type 'B' is not assignable to type 'C'. + Property 'z' is missing in type 'B'. ==== tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts (1 errors) ==== @@ -25,5 +26,6 @@ tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParamete (new Chain(new A)).then(a => new B).then(b => new C).then(c => new B).then(b => new A); ~~~~~~~~~~ !!! error TS2345: Argument of type '(c: C) => B' is not assignable to parameter of type '(x: C) => C'. -!!! error TS2345: Type 'B' is not assignable to type 'C'. -!!! error TS2345: Property 'z' is missing in type 'B'. \ No newline at end of file +!!! error TS2345: Signature '(x: C): C' has no corresponding signature in '(c: C) => B' +!!! error TS2345: Type 'B' is not assignable to type 'C'. +!!! error TS2345: Property 'z' is missing in type 'B'. \ No newline at end of file diff --git a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.errors.txt b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.errors.txt index 8f5924586df..1de7ead6e04 100644 --- a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.errors.txt +++ b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.errors.txt @@ -1,7 +1,9 @@ tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(7,43): error TS2345: Argument of type '(ss: S) => T' is not assignable to parameter of type '(x: S) => S'. - Type 'T' is not assignable to type 'S'. + Signature '(x: S): S' has no corresponding signature in '(ss: S) => T' + Type 'T' is not assignable to type 'S'. tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(10,29): error TS2345: Argument of type '(ss: S) => T' is not assignable to parameter of type '(x: S) => S'. - Type 'T' is not assignable to type 'S'. + Signature '(x: S): S' has no corresponding signature in '(ss: S) => T' + Type 'T' is not assignable to type 'S'. tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(32,9): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(36,9): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(37,9): error TS2322: Type 'string' is not assignable to type 'number'. @@ -17,13 +19,15 @@ tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParamete (new Chain(t)).then(tt => s).then(ss => t); ~~~~~~~ !!! error TS2345: Argument of type '(ss: S) => T' is not assignable to parameter of type '(x: S) => S'. -!!! error TS2345: Type 'T' is not assignable to type 'S'. +!!! error TS2345: Signature '(x: S): S' has no corresponding signature in '(ss: S) => T' +!!! error TS2345: Type 'T' is not assignable to type 'S'. // But error to try to climb up the chain (new Chain(s)).then(ss => t); ~~~~~~~ !!! error TS2345: Argument of type '(ss: S) => T' is not assignable to parameter of type '(x: S) => S'. -!!! error TS2345: Type 'T' is not assignable to type 'S'. +!!! error TS2345: Signature '(x: S): S' has no corresponding signature in '(ss: S) => T' +!!! error TS2345: Type 'T' is not assignable to type 'S'. // Staying at T or S should be fine (new Chain(t)).then(tt => t).then(tt => t).then(tt => t); diff --git a/tests/baselines/reference/classAbstractAssignabilityConstructorFunction.errors.txt b/tests/baselines/reference/classAbstractAssignabilityConstructorFunction.errors.txt index c6c242396d8..5cb9a2e7f08 100644 --- a/tests/baselines/reference/classAbstractAssignabilityConstructorFunction.errors.txt +++ b/tests/baselines/reference/classAbstractAssignabilityConstructorFunction.errors.txt @@ -1,6 +1,7 @@ tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAssignabilityConstructorFunction.ts(7,1): error TS2322: Type 'typeof A' is not assignable to type 'new () => A'. Cannot assign an abstract constructor type to a non-abstract constructor type. tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAssignabilityConstructorFunction.ts(8,1): error TS2322: Type 'string' is not assignable to type 'new () => A'. + Signature 'new (): A' has no corresponding signature in 'String' ==== tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAssignabilityConstructorFunction.ts (2 errors) ==== @@ -16,4 +17,5 @@ tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbst !!! error TS2322: Cannot assign an abstract constructor type to a non-abstract constructor type. AAA = "asdf"; ~~~ -!!! error TS2322: Type 'string' is not assignable to type 'new () => A'. \ No newline at end of file +!!! error TS2322: Type 'string' is not assignable to type 'new () => A'. +!!! error TS2322: Signature 'new (): A' has no corresponding signature in 'String' \ No newline at end of file diff --git a/tests/baselines/reference/classSideInheritance3.errors.txt b/tests/baselines/reference/classSideInheritance3.errors.txt index c845defa5b8..4d6a5a9b018 100644 --- a/tests/baselines/reference/classSideInheritance3.errors.txt +++ b/tests/baselines/reference/classSideInheritance3.errors.txt @@ -1,5 +1,7 @@ tests/cases/compiler/classSideInheritance3.ts(16,5): error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. + Signature 'new (x: string): A' has no corresponding signature in 'typeof B' tests/cases/compiler/classSideInheritance3.ts(17,5): error TS2322: Type 'typeof B' is not assignable to type 'new (x: string) => A'. + Signature 'new (x: string): A' has no corresponding signature in 'typeof B' ==== tests/cases/compiler/classSideInheritance3.ts (2 errors) ==== @@ -21,7 +23,9 @@ tests/cases/compiler/classSideInheritance3.ts(17,5): error TS2322: Type 'typeof var r1: typeof A = B; // error ~~ !!! error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. +!!! error TS2322: Signature 'new (x: string): A' has no corresponding signature in 'typeof B' var r2: new (x: string) => A = B; // error ~~ !!! error TS2322: Type 'typeof B' is not assignable to type 'new (x: string) => A'. +!!! error TS2322: Signature 'new (x: string): A' has no corresponding signature in 'typeof B' var r3: typeof A = C; // ok \ No newline at end of file diff --git a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt index 2fa13333058..867a044420d 100644 --- a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt +++ b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt @@ -6,13 +6,16 @@ tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithou Property 'propertyB' is missing in type 'A'. tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(19,5): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => number'. Type '(n: X) => string' is not assignable to type '(t: X) => number'. - Type 'string' is not assignable to type 'number'. + Signature '(t: X): number' has no corresponding signature in '(n: X) => string' + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(20,5): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => string'. Type '(m: X) => number' is not assignable to type '(t: X) => string'. - Type 'number' is not assignable to type 'string'. + Signature '(t: X): string' has no corresponding signature in '(m: X) => number' + Type 'number' is not assignable to type 'string'. tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(21,5): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => boolean'. Type '(m: X) => number' is not assignable to type '(t: X) => boolean'. - Type 'number' is not assignable to type 'boolean'. + Signature '(t: X): boolean' has no corresponding signature in '(m: X) => number' + Type 'number' is not assignable to type 'boolean'. ==== tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts (5 errors) ==== @@ -46,16 +49,19 @@ tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithou ~~~~~~~ !!! error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => number'. !!! error TS2322: Type '(n: X) => string' is not assignable to type '(t: X) => number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(t: X): number' has no corresponding signature in '(n: X) => string' +!!! error TS2322: Type 'string' is not assignable to type 'number'. var result5: (t: X) => string = true ? (m) => m.propertyX1 : (n) => n.propertyX2; ~~~~~~~ !!! error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => string'. !!! error TS2322: Type '(m: X) => number' is not assignable to type '(t: X) => string'. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(t: X): string' has no corresponding signature in '(m: X) => number' +!!! error TS2322: Type 'number' is not assignable to type 'string'. var result6: (t: X) => boolean = true ? (m) => m.propertyX1 : (n) => n.propertyX2; ~~~~~~~ !!! error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => boolean'. !!! error TS2322: Type '(m: X) => number' is not assignable to type '(t: X) => boolean'. -!!! error TS2322: Type 'number' is not assignable to type 'boolean'. +!!! error TS2322: Signature '(t: X): boolean' has no corresponding signature in '(m: X) => number' +!!! error TS2322: Type 'number' is not assignable to type 'boolean'. var result61: (t: X) => number| string = true ? (m) => m.propertyX1 : (n) => n.propertyX2; \ No newline at end of file diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance.errors.txt b/tests/baselines/reference/constructSignatureAssignabilityInInheritance.errors.txt index 51278fc3f44..178239b729e 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance.errors.txt +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance.errors.txt @@ -1,7 +1,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance.ts(61,15): error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type 'new (x: number) => string' is not assignable to type 'new (x: number) => number'. - Type 'string' is not assignable to type 'number'. + Signature 'new (x: number): number' has no corresponding signature in 'new (x: number) => string' + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance.ts (1 errors) ==== @@ -70,7 +71,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/construc !!! error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type 'new (x: number) => string' is not assignable to type 'new (x: number) => number'. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Signature 'new (x: number): number' has no corresponding signature in 'new (x: number) => string' +!!! error TS2430: Type 'string' is not assignable to type 'number'. // N's a: new (x: number) => string; // error because base returns non-void; } diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.errors.txt b/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.errors.txt index 8d6273804f7..5125fc27301 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.errors.txt +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.errors.txt @@ -1,17 +1,20 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance3.ts(41,19): error TS2430: Interface 'I2' incorrectly extends interface 'A'. Types of property 'a2' are incompatible. Type 'new (x: T) => U[]' is not assignable to type 'new (x: number) => string[]'. - Types of parameters 'x' and 'x' are incompatible. - Type 'T' is not assignable to type 'number'. + Signature 'new (x: number): string[]' has no corresponding signature in 'new (x: T) => U[]' + Types of parameters 'x' and 'x' are incompatible. + Type 'T' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance3.ts(50,19): error TS2430: Interface 'I4' incorrectly extends interface 'A'. Types of property 'a8' are incompatible. Type 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. - Types of parameters 'y' and 'y' are incompatible. - Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. - Types of parameters 'arg2' and 'arg2' are incompatible. - Type '{ foo: number; }' is not assignable to type 'Base'. - Types of property 'foo' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' + Types of parameters 'y' and 'y' are incompatible. + Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. + Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' + Types of parameters 'arg2' and 'arg2' are incompatible. + Type '{ foo: number; }' is not assignable to type 'Base'. + Types of property 'foo' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance3.ts (2 errors) ==== @@ -60,8 +63,9 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/construc !!! error TS2430: Interface 'I2' incorrectly extends interface 'A'. !!! error TS2430: Types of property 'a2' are incompatible. !!! error TS2430: Type 'new (x: T) => U[]' is not assignable to type 'new (x: number) => string[]'. -!!! error TS2430: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2430: Type 'T' is not assignable to type 'number'. +!!! error TS2430: Signature 'new (x: number): string[]' has no corresponding signature in 'new (x: T) => U[]' +!!! error TS2430: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2430: Type 'T' is not assignable to type 'number'. a2: new (x: T) => U[]; // error, no contextual signature instantiation since I2.a2 is not generic } @@ -75,12 +79,14 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/construc !!! error TS2430: Interface 'I4' incorrectly extends interface 'A'. !!! error TS2430: Types of property 'a8' are incompatible. !!! error TS2430: Type 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. -!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2430: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. -!!! error TS2430: Types of parameters 'arg2' and 'arg2' are incompatible. -!!! error TS2430: Type '{ foo: number; }' is not assignable to type 'Base'. -!!! error TS2430: Types of property 'foo' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Signature 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' +!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2430: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. +!!! error TS2430: Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' +!!! error TS2430: Types of parameters 'arg2' and 'arg2' are incompatible. +!!! error TS2430: Type '{ foo: number; }' is not assignable to type 'Base'. +!!! error TS2430: Types of property 'foo' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a8: new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U; // error, type mismatch } diff --git a/tests/baselines/reference/constructorAsType.errors.txt b/tests/baselines/reference/constructorAsType.errors.txt index b0d30295cde..3bf3dc688ed 100644 --- a/tests/baselines/reference/constructorAsType.errors.txt +++ b/tests/baselines/reference/constructorAsType.errors.txt @@ -1,10 +1,12 @@ tests/cases/compiler/constructorAsType.ts(1,5): error TS2322: Type '() => { name: string; }' is not assignable to type 'new () => { name: string; }'. + Signature 'new (): { name: string; }' has no corresponding signature in '() => { name: string; }' ==== tests/cases/compiler/constructorAsType.ts (1 errors) ==== var Person:new () => {name: string;} = function () {return {name:"joe"};}; ~~~~~~ !!! error TS2322: Type '() => { name: string; }' is not assignable to type 'new () => { name: string; }'. +!!! error TS2322: Signature 'new (): { name: string; }' has no corresponding signature in '() => { name: string; }' var Person2:{new() : {name:string;};}; diff --git a/tests/baselines/reference/contextualTypeWithTuple.errors.txt b/tests/baselines/reference/contextualTypeWithTuple.errors.txt index e447ed62b39..249e96c8829 100644 --- a/tests/baselines/reference/contextualTypeWithTuple.errors.txt +++ b/tests/baselines/reference/contextualTypeWithTuple.errors.txt @@ -1,9 +1,10 @@ tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(3,5): error TS2322: Type '[number, string, boolean]' is not assignable to type '[number, string]'. Types of property 'pop' are incompatible. Type '() => number | string | boolean' is not assignable to type '() => number | string'. - Type 'number | string | boolean' is not assignable to type 'number | string'. - Type 'boolean' is not assignable to type 'number | string'. - Type 'boolean' is not assignable to type 'string'. + Signature '(): number | string' has no corresponding signature in '() => number | string | boolean' + Type 'number | string | boolean' is not assignable to type 'number | string'. + Type 'boolean' is not assignable to type 'number | string'. + Type 'boolean' is not assignable to type 'string'. tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(15,1): error TS2322: Type '[number, string, boolean]' is not assignable to type '[number, string]'. tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(18,1): error TS2322: Type '[{}, number]' is not assignable to type '[{ a: string; }, number]'. Types of property '0' are incompatible. @@ -14,8 +15,9 @@ tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(19,1): error TS23 tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(20,5): error TS2322: Type '[string, string, number]' is not assignable to type '[string, string]'. Types of property 'pop' are incompatible. Type '() => string | number' is not assignable to type '() => string'. - Type 'string | number' is not assignable to type 'string'. - Type 'number' is not assignable to type 'string'. + Signature '(): string' has no corresponding signature in '() => string | number' + Type 'string | number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(24,1): error TS2322: Type '[C, string | number]' is not assignable to type '[C, string | number, D]'. Property '2' is missing in type '[C, string | number]'. tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(25,1): error TS2322: Type '[number, string | number]' is not assignable to type '[number, string]'. @@ -32,9 +34,10 @@ tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(25,1): error TS23 !!! error TS2322: Type '[number, string, boolean]' is not assignable to type '[number, string]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => number | string | boolean' is not assignable to type '() => number | string'. -!!! error TS2322: Type 'number | string | boolean' is not assignable to type 'number | string'. -!!! error TS2322: Type 'boolean' is not assignable to type 'number | string'. -!!! error TS2322: Type 'boolean' is not assignable to type 'string'. +!!! error TS2322: Signature '(): number | string' has no corresponding signature in '() => number | string | boolean' +!!! error TS2322: Type 'number | string | boolean' is not assignable to type 'number | string'. +!!! error TS2322: Type 'boolean' is not assignable to type 'number | string'. +!!! error TS2322: Type 'boolean' is not assignable to type 'string'. var numStrBoolTuple: [number, string, boolean] = [5, "foo", true]; var objNumTuple: [{ a: string }, number] = [{ a: "world" }, 5]; var strTupleTuple: [string, [number, {}]] = ["bar", [5, { x: 1, y: 1 }]]; @@ -66,8 +69,9 @@ tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(25,1): error TS23 !!! error TS2322: Type '[string, string, number]' is not assignable to type '[string, string]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => string | number' is not assignable to type '() => string'. -!!! error TS2322: Type 'string | number' is not assignable to type 'string'. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in '() => string | number' +!!! error TS2322: Type 'string | number' is not assignable to type 'string'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. unionTuple = unionTuple1; unionTuple = unionTuple2; diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.errors.txt b/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.errors.txt index 8be323f9af4..1e0865de8db 100644 --- a/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.errors.txt +++ b/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.errors.txt @@ -27,8 +27,9 @@ tests/cases/conformance/types/union/contextualTypeWithUnionTypeObjectLiteral.ts( Type '{ commonMethodDifferentReturnType: (a: string, b: number) => string | number; }' is not assignable to type 'I21'. Types of property 'commonMethodDifferentReturnType' are incompatible. Type '(a: string, b: number) => string | number' is not assignable to type '(a: string, b: number) => number'. - Type 'string | number' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. + Signature '(a: string, b: number): number' has no corresponding signature in '(a: string, b: number) => string | number' + Type 'string | number' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/union/contextualTypeWithUnionTypeObjectLiteral.ts (6 errors) ==== @@ -124,7 +125,8 @@ tests/cases/conformance/types/union/contextualTypeWithUnionTypeObjectLiteral.ts( !!! error TS2322: Type '{ commonMethodDifferentReturnType: (a: string, b: number) => string | number; }' is not assignable to type 'I21'. !!! error TS2322: Types of property 'commonMethodDifferentReturnType' are incompatible. !!! error TS2322: Type '(a: string, b: number) => string | number' is not assignable to type '(a: string, b: number) => number'. -!!! error TS2322: Type 'string | number' is not assignable to type 'number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(a: string, b: number): number' has no corresponding signature in '(a: string, b: number) => string | number' +!!! error TS2322: Type 'string | number' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. commonMethodDifferentReturnType: (a, b) => strOrNumber, }; \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping24.errors.txt b/tests/baselines/reference/contextualTyping24.errors.txt index a172600e1c5..1d1fd191944 100644 --- a/tests/baselines/reference/contextualTyping24.errors.txt +++ b/tests/baselines/reference/contextualTyping24.errors.txt @@ -1,11 +1,15 @@ tests/cases/compiler/contextualTyping24.ts(1,55): error TS2322: Type '(a: string) => number' is not assignable to type '(a: { (): number; (i: number): number; }) => number'. - Types of parameters 'a' and 'a' are incompatible. - Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. + Signature '(a: { (): number; (i: number): number; }): number' has no corresponding signature in '(a: string) => number' + Types of parameters 'a' and 'a' are incompatible. + Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. + Signature '(): number' has no corresponding signature in 'String' ==== tests/cases/compiler/contextualTyping24.ts (1 errors) ==== var foo:(a:{():number; (i:number):number; })=>number; foo = function(a:string){return 5}; ~~~ !!! error TS2322: Type '(a: string) => number' is not assignable to type '(a: { (): number; (i: number): number; }) => number'. -!!! error TS2322: Types of parameters 'a' and 'a' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. \ No newline at end of file +!!! error TS2322: Signature '(a: { (): number; (i: number): number; }): number' has no corresponding signature in '(a: string) => number' +!!! error TS2322: Types of parameters 'a' and 'a' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. +!!! error TS2322: Signature '(): number' has no corresponding signature in 'String' \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping39.errors.txt b/tests/baselines/reference/contextualTyping39.errors.txt index e43624fbead..3cf5e5aa9ff 100644 --- a/tests/baselines/reference/contextualTyping39.errors.txt +++ b/tests/baselines/reference/contextualTyping39.errors.txt @@ -1,9 +1,11 @@ tests/cases/compiler/contextualTyping39.ts(1,11): error TS2352: Neither type '() => string' nor type '() => number' is assignable to the other. - Type 'string' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => string' + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/contextualTyping39.ts (1 errors) ==== var foo = <{ (): number; }> function() { return "err"; }; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2352: Neither type '() => string' nor type '() => number' is assignable to the other. -!!! error TS2352: Type 'string' is not assignable to type 'number'. \ No newline at end of file +!!! error TS2352: Signature '(): number' has no corresponding signature in '() => string' +!!! error TS2352: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping41.errors.txt b/tests/baselines/reference/contextualTyping41.errors.txt index 1ed6da1b782..a3e33f26ddd 100644 --- a/tests/baselines/reference/contextualTyping41.errors.txt +++ b/tests/baselines/reference/contextualTyping41.errors.txt @@ -1,9 +1,11 @@ tests/cases/compiler/contextualTyping41.ts(1,11): error TS2352: Neither type '() => string' nor type '{ (): number; (i: number): number; }' is assignable to the other. - Type 'string' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => string' + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/contextualTyping41.ts (1 errors) ==== var foo = <{():number; (i:number):number; }> (function(){return "err";}); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2352: Neither type '() => string' nor type '{ (): number; (i: number): number; }' is assignable to the other. -!!! error TS2352: Type 'string' is not assignable to type 'number'. \ No newline at end of file +!!! error TS2352: Signature '(): number' has no corresponding signature in '() => string' +!!! error TS2352: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTypingOfConditionalExpression2.errors.txt b/tests/baselines/reference/contextualTypingOfConditionalExpression2.errors.txt index 08fe22c08e0..6fbf1b12967 100644 --- a/tests/baselines/reference/contextualTypingOfConditionalExpression2.errors.txt +++ b/tests/baselines/reference/contextualTypingOfConditionalExpression2.errors.txt @@ -1,8 +1,9 @@ tests/cases/compiler/contextualTypingOfConditionalExpression2.ts(11,5): error TS2322: Type '((a: C) => number) | ((b: number) => void)' is not assignable to type '(a: A) => void'. Type '(b: number) => void' is not assignable to type '(a: A) => void'. - Types of parameters 'b' and 'a' are incompatible. - Type 'number' is not assignable to type 'A'. - Property 'foo' is missing in type 'Number'. + Signature '(a: A): void' has no corresponding signature in '(b: number) => void' + Types of parameters 'b' and 'a' are incompatible. + Type 'number' is not assignable to type 'A'. + Property 'foo' is missing in type 'Number'. ==== tests/cases/compiler/contextualTypingOfConditionalExpression2.ts (1 errors) ==== @@ -20,7 +21,8 @@ tests/cases/compiler/contextualTypingOfConditionalExpression2.ts(11,5): error TS ~~ !!! error TS2322: Type '((a: C) => number) | ((b: number) => void)' is not assignable to type '(a: A) => void'. !!! error TS2322: Type '(b: number) => void' is not assignable to type '(a: A) => void'. -!!! error TS2322: Types of parameters 'b' and 'a' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'A'. -!!! error TS2322: Property 'foo' is missing in type 'Number'. +!!! error TS2322: Signature '(a: A): void' has no corresponding signature in '(b: number) => void' +!!! error TS2322: Types of parameters 'b' and 'a' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'A'. +!!! error TS2322: Property 'foo' is missing in type 'Number'. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.errors.txt b/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.errors.txt index a11f0009016..530993a7e23 100644 --- a/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.errors.txt +++ b/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.errors.txt @@ -1,8 +1,10 @@ tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts(16,32): error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => Date'. - Type 'string' is not assignable to type 'Date'. - Property 'toDateString' is missing in type 'String'. + Signature '(x: number): Date' has no corresponding signature in '(x: number) => string' + Type 'string' is not assignable to type 'Date'. + Property 'toDateString' is missing in type 'String'. tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts(17,32): error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => Date'. - Type 'string' is not assignable to type 'Date'. + Signature '(x: number): Date' has no corresponding signature in '(x: number) => string' + Type 'string' is not assignable to type 'Date'. ==== tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts (2 errors) ==== @@ -24,10 +26,12 @@ tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts(17,32): var r5 = _.forEach(c2, f); ~ !!! error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => Date'. -!!! error TS2345: Type 'string' is not assignable to type 'Date'. -!!! error TS2345: Property 'toDateString' is missing in type 'String'. +!!! error TS2345: Signature '(x: number): Date' has no corresponding signature in '(x: number) => string' +!!! error TS2345: Type 'string' is not assignable to type 'Date'. +!!! error TS2345: Property 'toDateString' is missing in type 'String'. var r6 = _.forEach(c2, (x) => { return x.toFixed() }); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => Date'. -!!! error TS2345: Type 'string' is not assignable to type 'Date'. +!!! error TS2345: Signature '(x: number): Date' has no corresponding signature in '(x: number) => string' +!!! error TS2345: Type 'string' is not assignable to type 'Date'. \ No newline at end of file diff --git a/tests/baselines/reference/derivedClassTransitivity.errors.txt b/tests/baselines/reference/derivedClassTransitivity.errors.txt index c6b620beb18..5f47163f13f 100644 --- a/tests/baselines/reference/derivedClassTransitivity.errors.txt +++ b/tests/baselines/reference/derivedClassTransitivity.errors.txt @@ -1,8 +1,9 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity.ts(18,1): error TS2322: Type 'E' is not assignable to type 'C'. Types of property 'foo' are incompatible. Type '(x?: string) => void' is not assignable to type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x?: string) => void' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity.ts (1 errors) ==== @@ -28,7 +29,8 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTra !!! error TS2322: Type 'E' is not assignable to type 'C'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x?: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x?: string) => void' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var r = c.foo(1); var r2 = e.foo(''); \ No newline at end of file diff --git a/tests/baselines/reference/derivedClassTransitivity2.errors.txt b/tests/baselines/reference/derivedClassTransitivity2.errors.txt index a8d2003c876..16aa54ef101 100644 --- a/tests/baselines/reference/derivedClassTransitivity2.errors.txt +++ b/tests/baselines/reference/derivedClassTransitivity2.errors.txt @@ -1,8 +1,9 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity2.ts(18,1): error TS2322: Type 'E' is not assignable to type 'C'. Types of property 'foo' are incompatible. Type '(x: number, y?: string) => void' is not assignable to type '(x: number, y: number) => void'. - Types of parameters 'y' and 'y' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number, y: number): void' has no corresponding signature in '(x: number, y?: string) => void' + Types of parameters 'y' and 'y' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity2.ts (1 errors) ==== @@ -28,7 +29,8 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTra !!! error TS2322: Type 'E' is not assignable to type 'C'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x: number, y?: string) => void' is not assignable to type '(x: number, y: number) => void'. -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number, y: number): void' has no corresponding signature in '(x: number, y?: string) => void' +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var r = c.foo(1, 1); var r2 = e.foo(1, ''); \ No newline at end of file diff --git a/tests/baselines/reference/derivedClassTransitivity3.errors.txt b/tests/baselines/reference/derivedClassTransitivity3.errors.txt index 9d301255dfd..837c6db67c4 100644 --- a/tests/baselines/reference/derivedClassTransitivity3.errors.txt +++ b/tests/baselines/reference/derivedClassTransitivity3.errors.txt @@ -1,8 +1,9 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity3.ts(18,1): error TS2322: Type 'E' is not assignable to type 'C'. Types of property 'foo' are incompatible. Type '(x: string, y?: number) => void' is not assignable to type '(x: string, y: string) => void'. - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x: string, y: string): void' has no corresponding signature in '(x: string, y?: number) => void' + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity3.ts (1 errors) ==== @@ -28,7 +29,8 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTra !!! error TS2322: Type 'E' is not assignable to type 'C'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x: string, y?: number) => void' is not assignable to type '(x: string, y: string) => void'. -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(x: string, y: string): void' has no corresponding signature in '(x: string, y?: number) => void' +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var r = c.foo('', ''); var r2 = e.foo('', 1); \ No newline at end of file diff --git a/tests/baselines/reference/derivedClassTransitivity4.errors.txt b/tests/baselines/reference/derivedClassTransitivity4.errors.txt index c1a80e0a1d7..47d1d767fbd 100644 --- a/tests/baselines/reference/derivedClassTransitivity4.errors.txt +++ b/tests/baselines/reference/derivedClassTransitivity4.errors.txt @@ -1,8 +1,9 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity4.ts(18,1): error TS2322: Type 'E' is not assignable to type 'C'. Types of property 'foo' are incompatible. Type '(x?: string) => void' is not assignable to type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x?: string) => void' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity4.ts(19,9): error TS2445: Property 'foo' is protected and only accessible within class 'C' and its subclasses. @@ -29,8 +30,9 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTra !!! error TS2322: Type 'E' is not assignable to type 'C'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x?: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x?: string) => void' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var r = c.foo(1); ~~~~~ !!! error TS2445: Property 'foo' is protected and only accessible within class 'C' and its subclasses. diff --git a/tests/baselines/reference/derivedInterfaceCallSignature.errors.txt b/tests/baselines/reference/derivedInterfaceCallSignature.errors.txt index ae8fbe2ff5d..6f088a12a9a 100644 --- a/tests/baselines/reference/derivedInterfaceCallSignature.errors.txt +++ b/tests/baselines/reference/derivedInterfaceCallSignature.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/derivedInterfaceCallSignature.ts(11,11): error TS2430: Interface 'D3SvgArea' incorrectly extends interface 'D3SvgPath'. Types of property 'x' are incompatible. Type '(x: (data: any, index?: number) => number) => D3SvgArea' is not assignable to type '() => (data: any, index?: number) => number'. + Signature '(): (data: any, index?: number) => number' has no corresponding signature in '(x: (data: any, index?: number) => number) => D3SvgArea' ==== tests/cases/compiler/derivedInterfaceCallSignature.ts (1 errors) ==== @@ -19,6 +20,7 @@ tests/cases/compiler/derivedInterfaceCallSignature.ts(11,11): error TS2430: Inte !!! error TS2430: Interface 'D3SvgArea' incorrectly extends interface 'D3SvgPath'. !!! error TS2430: Types of property 'x' are incompatible. !!! error TS2430: Type '(x: (data: any, index?: number) => number) => D3SvgArea' is not assignable to type '() => (data: any, index?: number) => number'. +!!! error TS2430: Signature '(): (data: any, index?: number) => number' has no corresponding signature in '(x: (data: any, index?: number) => number) => D3SvgArea' x(x: (data: any, index?: number) => number): D3SvgArea; y(y: (data: any, index?: number) => number): D3SvgArea; y0(): (data: any, index?: number) => number; diff --git a/tests/baselines/reference/destructuringParameterDeclaration2.errors.txt b/tests/baselines/reference/destructuringParameterDeclaration2.errors.txt index c8037255a32..a3311319960 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration2.errors.txt +++ b/tests/baselines/reference/destructuringParameterDeclaration2.errors.txt @@ -5,10 +5,11 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts( tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(8,4): error TS2345: Argument of type '[number, number, string[][], string]' is not assignable to parameter of type '[number, number, string[][]]'. Types of property 'pop' are incompatible. Type '() => number | string[][] | string' is not assignable to type '() => number | string[][]'. - Type 'number | string[][] | string' is not assignable to type 'number | string[][]'. - Type 'string' is not assignable to type 'number | string[][]'. - Type 'string' is not assignable to type 'string[][]'. - Property 'push' is missing in type 'String'. + Signature '(): number | string[][]' has no corresponding signature in '() => number | string[][] | string' + Type 'number | string[][] | string' is not assignable to type 'number | string[][]'. + Type 'string' is not assignable to type 'number | string[][]'. + Type 'string' is not assignable to type 'string[][]'. + Property 'push' is missing in type 'String'. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(16,8): error TS2371: A parameter initializer is only allowed in a function or constructor implementation. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(16,16): error TS2371: A parameter initializer is only allowed in a function or constructor implementation. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(23,14): error TS2345: Argument of type '{ x: string; y: boolean; }' is not assignable to parameter of type '{ x: number; y: any; }'. @@ -47,9 +48,10 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts( tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(55,7): error TS2420: Class 'C4' incorrectly implements interface 'F2'. Types of property 'd4' are incompatible. Type '({x, y, c}: { x: any; y: any; c: any; }) => void' is not assignable to type '({x, y, z}?: { x: any; y: any; z: any; }) => any'. - Types of parameters '__0' and '__0' are incompatible. - Type '{ x: any; y: any; c: any; }' is not assignable to type '{ x: any; y: any; z: any; }'. - Property 'z' is missing in type '{ x: any; y: any; c: any; }'. + Signature '({x, y, z}?: { x: any; y: any; z: any; }): any' has no corresponding signature in '({x, y, c}: { x: any; y: any; c: any; }) => void' + Types of parameters '__0' and '__0' are incompatible. + Type '{ x: any; y: any; c: any; }' is not assignable to type '{ x: any; y: any; z: any; }'. + Property 'z' is missing in type '{ x: any; y: any; c: any; }'. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(56,8): error TS2463: A binding pattern parameter cannot be optional in an implementation signature. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(65,18): error TS2300: Duplicate identifier 'number'. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(65,26): error TS2300: Duplicate identifier 'number'. @@ -75,10 +77,11 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts( !!! error TS2345: Argument of type '[number, number, string[][], string]' is not assignable to parameter of type '[number, number, string[][]]'. !!! error TS2345: Types of property 'pop' are incompatible. !!! error TS2345: Type '() => number | string[][] | string' is not assignable to type '() => number | string[][]'. -!!! error TS2345: Type 'number | string[][] | string' is not assignable to type 'number | string[][]'. -!!! error TS2345: Type 'string' is not assignable to type 'number | string[][]'. -!!! error TS2345: Type 'string' is not assignable to type 'string[][]'. -!!! error TS2345: Property 'push' is missing in type 'String'. +!!! error TS2345: Signature '(): number | string[][]' has no corresponding signature in '() => number | string[][] | string' +!!! error TS2345: Type 'number | string[][] | string' is not assignable to type 'number | string[][]'. +!!! error TS2345: Type 'string' is not assignable to type 'number | string[][]'. +!!! error TS2345: Type 'string' is not assignable to type 'string[][]'. +!!! error TS2345: Property 'push' is missing in type 'String'. // If the declaration includes an initializer expression (which is permitted only @@ -179,9 +182,10 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts( !!! error TS2420: Class 'C4' incorrectly implements interface 'F2'. !!! error TS2420: Types of property 'd4' are incompatible. !!! error TS2420: Type '({x, y, c}: { x: any; y: any; c: any; }) => void' is not assignable to type '({x, y, z}?: { x: any; y: any; z: any; }) => any'. -!!! error TS2420: Types of parameters '__0' and '__0' are incompatible. -!!! error TS2420: Type '{ x: any; y: any; c: any; }' is not assignable to type '{ x: any; y: any; z: any; }'. -!!! error TS2420: Property 'z' is missing in type '{ x: any; y: any; c: any; }'. +!!! error TS2420: Signature '({x, y, z}?: { x: any; y: any; z: any; }): any' has no corresponding signature in '({x, y, c}: { x: any; y: any; c: any; }) => void' +!!! error TS2420: Types of parameters '__0' and '__0' are incompatible. +!!! error TS2420: Type '{ x: any; y: any; c: any; }' is not assignable to type '{ x: any; y: any; z: any; }'. +!!! error TS2420: Property 'z' is missing in type '{ x: any; y: any; c: any; }'. d3([a, b, c]?) { } // Error, binding pattern can't be optional in implementation signature ~~~~~~~~~~ !!! error TS2463: A binding pattern parameter cannot be optional in an implementation signature. diff --git a/tests/baselines/reference/enumAssignability.errors.txt b/tests/baselines/reference/enumAssignability.errors.txt index 4a060ac3456..55e28ed97d9 100644 --- a/tests/baselines/reference/enumAssignability.errors.txt +++ b/tests/baselines/reference/enumAssignability.errors.txt @@ -6,9 +6,11 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi Property 'toDateString' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(33,9): error TS2322: Type 'E' is not assignable to type 'void'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(36,9): error TS2322: Type 'E' is not assignable to type '() => {}'. + Signature '(): {}' has no corresponding signature in 'Number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(37,9): error TS2322: Type 'E' is not assignable to type 'Function'. Property 'apply' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(38,9): error TS2322: Type 'E' is not assignable to type '(x: number) => string'. + Signature '(x: number): string' has no corresponding signature in 'Number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(39,5): error TS2322: Type 'E' is not assignable to type 'C'. Property 'foo' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(40,5): error TS2322: Type 'E' is not assignable to type 'I'. @@ -18,6 +20,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(42,9): error TS2322: Type 'E' is not assignable to type '{ foo: string; }'. Property 'foo' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(43,9): error TS2322: Type 'E' is not assignable to type '(x: T) => T'. + Signature '(x: T): T' has no corresponding signature in 'Number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(45,9): error TS2322: Type 'E' is not assignable to type 'String'. Property 'charAt' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(47,21): error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list. @@ -80,6 +83,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi var j: () => {} = e; ~ !!! error TS2322: Type 'E' is not assignable to type '() => {}'. +!!! error TS2322: Signature '(): {}' has no corresponding signature in 'Number' var k: Function = e; ~ !!! error TS2322: Type 'E' is not assignable to type 'Function'. @@ -87,6 +91,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi var l: (x: number) => string = e; ~ !!! error TS2322: Type 'E' is not assignable to type '(x: number) => string'. +!!! error TS2322: Signature '(x: number): string' has no corresponding signature in 'Number' ac = e; ~~ !!! error TS2322: Type 'E' is not assignable to type 'C'. @@ -106,6 +111,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi var o: (x: T) => T = e; ~ !!! error TS2322: Type 'E' is not assignable to type '(x: T) => T'. +!!! error TS2322: Signature '(x: T): T' has no corresponding signature in 'Number' var p: Number = e; var q: String = e; ~ diff --git a/tests/baselines/reference/errorElaboration.errors.txt b/tests/baselines/reference/errorElaboration.errors.txt index 94742d7d98b..42903f7fa04 100644 --- a/tests/baselines/reference/errorElaboration.errors.txt +++ b/tests/baselines/reference/errorElaboration.errors.txt @@ -1,7 +1,8 @@ tests/cases/compiler/errorElaboration.ts(12,5): error TS2345: Argument of type '() => Container>' is not assignable to parameter of type '() => Container>'. - Type 'Container>' is not assignable to type 'Container>'. - Type 'Ref' is not assignable to type 'Ref'. - Type 'string' is not assignable to type 'number'. + Signature '(): Container>' has no corresponding signature in '() => Container>' + Type 'Container>' is not assignable to type 'Container>'. + Type 'Ref' is not assignable to type 'Ref'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/errorElaboration.ts (1 errors) ==== @@ -19,7 +20,8 @@ tests/cases/compiler/errorElaboration.ts(12,5): error TS2345: Argument of type ' foo(a); ~ !!! error TS2345: Argument of type '() => Container>' is not assignable to parameter of type '() => Container>'. -!!! error TS2345: Type 'Container>' is not assignable to type 'Container>'. -!!! error TS2345: Type 'Ref' is not assignable to type 'Ref'. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Signature '(): Container>' has no corresponding signature in '() => Container>' +!!! error TS2345: Type 'Container>' is not assignable to type 'Container>'. +!!! error TS2345: Type 'Ref' is not assignable to type 'Ref'. +!!! error TS2345: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/errorOnContextuallyTypedReturnType.errors.txt b/tests/baselines/reference/errorOnContextuallyTypedReturnType.errors.txt index 403e79b8742..8fbd4052bf9 100644 --- a/tests/baselines/reference/errorOnContextuallyTypedReturnType.errors.txt +++ b/tests/baselines/reference/errorOnContextuallyTypedReturnType.errors.txt @@ -1,5 +1,6 @@ tests/cases/compiler/errorOnContextuallyTypedReturnType.ts(1,5): error TS2322: Type '() => void' is not assignable to type '() => boolean'. - Type 'void' is not assignable to type 'boolean'. + Signature '(): boolean' has no corresponding signature in '() => void' + Type 'void' is not assignable to type 'boolean'. tests/cases/compiler/errorOnContextuallyTypedReturnType.ts(2,37): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. @@ -7,7 +8,8 @@ tests/cases/compiler/errorOnContextuallyTypedReturnType.ts(2,37): error TS2355: var n1: () => boolean = function () { }; // expect an error here ~~ !!! error TS2322: Type '() => void' is not assignable to type '() => boolean'. -!!! error TS2322: Type 'void' is not assignable to type 'boolean'. +!!! error TS2322: Signature '(): boolean' has no corresponding signature in '() => void' +!!! error TS2322: Type 'void' is not assignable to type 'boolean'. var n2: () => boolean = function ():boolean { }; // expect an error here ~~~~~~~ !!! error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. diff --git a/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt b/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt index 12478442472..6cacd56eb17 100644 --- a/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt +++ b/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt @@ -16,21 +16,26 @@ tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAnd Types of property 'id' are incompatible. Type 'number' is not assignable to type 'string'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(46,5): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. - Types of parameters 'x' and 'x' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x: string): number' has no corresponding signature in '(x: number) => boolean' + Types of parameters 'x' and 'x' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(47,5): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. - Types of parameters 'x' and 'x' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x: string): number' has no corresponding signature in '(x: number) => boolean' + Types of parameters 'x' and 'x' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(48,5): error TS2322: Type '(x: string) => string' is not assignable to type '(x: string) => number'. - Type 'string' is not assignable to type 'number'. + Signature '(x: string): number' has no corresponding signature in '(x: string) => string' + Type 'string' is not assignable to type 'number'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(50,5): error TS2322: Type 'typeof N' is not assignable to type 'typeof M'. Types of property 'A' are incompatible. Type 'typeof N.A' is not assignable to type 'typeof M.A'. - Type 'N.A' is not assignable to type 'M.A'. - Property 'name' is missing in type 'A'. + Signature 'new (): A' has no corresponding signature in 'typeof A' + Type 'N.A' is not assignable to type 'M.A'. + Property 'name' is missing in type 'A'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(51,5): error TS2322: Type 'N.A' is not assignable to type 'M.A'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(52,5): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: number) => string'. - Type 'boolean' is not assignable to type 'string'. + Signature '(x: number): string' has no corresponding signature in '(x: number) => boolean' + Type 'boolean' is not assignable to type 'string'. ==== tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts (15 errors) ==== @@ -108,31 +113,36 @@ tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAnd var aFunction: typeof F = F2; ~~~~~~~~~ !!! error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(x: string): number' has no corresponding signature in '(x: number) => boolean' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var anOtherFunction: (x: string) => number = F2; ~~~~~~~~~~~~~~~ !!! error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(x: string): number' has no corresponding signature in '(x: number) => boolean' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var aLambda: typeof F = (x) => 'a string'; ~~~~~~~ !!! error TS2322: Type '(x: string) => string' is not assignable to type '(x: string) => number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: string): number' has no corresponding signature in '(x: string) => string' +!!! error TS2322: Type 'string' is not assignable to type 'number'. var aModule: typeof M = N; ~~~~~~~ !!! error TS2322: Type 'typeof N' is not assignable to type 'typeof M'. !!! error TS2322: Types of property 'A' are incompatible. !!! error TS2322: Type 'typeof N.A' is not assignable to type 'typeof M.A'. -!!! error TS2322: Type 'N.A' is not assignable to type 'M.A'. -!!! error TS2322: Property 'name' is missing in type 'A'. +!!! error TS2322: Signature 'new (): A' has no corresponding signature in 'typeof A' +!!! error TS2322: Type 'N.A' is not assignable to type 'M.A'. +!!! error TS2322: Property 'name' is missing in type 'A'. var aClassInModule: M.A = new N.A(); ~~~~~~~~~~~~~~ !!! error TS2322: Type 'N.A' is not assignable to type 'M.A'. var aFunctionInModule: typeof M.F2 = F2; ~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: number) => string'. -!!! error TS2322: Type 'boolean' is not assignable to type 'string'. +!!! error TS2322: Signature '(x: number): string' has no corresponding signature in '(x: number) => boolean' +!!! error TS2322: Type 'boolean' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/extendAndImplementTheSameBaseType2.errors.txt b/tests/baselines/reference/extendAndImplementTheSameBaseType2.errors.txt index a44c95377dc..448851640cd 100644 --- a/tests/baselines/reference/extendAndImplementTheSameBaseType2.errors.txt +++ b/tests/baselines/reference/extendAndImplementTheSameBaseType2.errors.txt @@ -1,7 +1,8 @@ tests/cases/compiler/extendAndImplementTheSameBaseType2.ts(7,7): error TS2420: Class 'D' incorrectly implements interface 'C'. Types of property 'bar' are incompatible. Type '() => string' is not assignable to type '() => number'. - Type 'string' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => string' + Type 'string' is not assignable to type 'number'. tests/cases/compiler/extendAndImplementTheSameBaseType2.ts(12,5): error TS2322: Type 'number' is not assignable to type 'string'. tests/cases/compiler/extendAndImplementTheSameBaseType2.ts(16,5): error TS2322: Type 'string' is not assignable to type 'number'. @@ -18,7 +19,8 @@ tests/cases/compiler/extendAndImplementTheSameBaseType2.ts(16,5): error TS2322: !!! error TS2420: Class 'D' incorrectly implements interface 'C'. !!! error TS2420: Types of property 'bar' are incompatible. !!! error TS2420: Type '() => string' is not assignable to type '() => number'. -!!! error TS2420: Type 'string' is not assignable to type 'number'. +!!! error TS2420: Signature '(): number' has no corresponding signature in '() => string' +!!! error TS2420: Type 'string' is not assignable to type 'number'. baz() { } } diff --git a/tests/baselines/reference/fixingTypeParametersRepeatedly2.errors.txt b/tests/baselines/reference/fixingTypeParametersRepeatedly2.errors.txt index e56b58a268d..ca0c6bb9dca 100644 --- a/tests/baselines/reference/fixingTypeParametersRepeatedly2.errors.txt +++ b/tests/baselines/reference/fixingTypeParametersRepeatedly2.errors.txt @@ -1,8 +1,10 @@ tests/cases/compiler/fixingTypeParametersRepeatedly2.ts(11,27): error TS2345: Argument of type '(d: Derived) => Base' is not assignable to parameter of type '(p: Derived) => Derived'. - Type 'Base' is not assignable to type 'Derived'. - Property 'toBase' is missing in type 'Base'. + Signature '(p: Derived): Derived' has no corresponding signature in '(d: Derived) => Base' + Type 'Base' is not assignable to type 'Derived'. + Property 'toBase' is missing in type 'Base'. tests/cases/compiler/fixingTypeParametersRepeatedly2.ts(17,27): error TS2345: Argument of type '(d: Derived) => Base' is not assignable to parameter of type '(p: Derived) => Derived'. - Type 'Base' is not assignable to type 'Derived'. + Signature '(p: Derived): Derived' has no corresponding signature in '(d: Derived) => Base' + Type 'Base' is not assignable to type 'Derived'. ==== tests/cases/compiler/fixingTypeParametersRepeatedly2.ts (2 errors) ==== @@ -19,8 +21,9 @@ tests/cases/compiler/fixingTypeParametersRepeatedly2.ts(17,27): error TS2345: Ar var result = foo(derived, d => d.toBase()); ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(d: Derived) => Base' is not assignable to parameter of type '(p: Derived) => Derived'. -!!! error TS2345: Type 'Base' is not assignable to type 'Derived'. -!!! error TS2345: Property 'toBase' is missing in type 'Base'. +!!! error TS2345: Signature '(p: Derived): Derived' has no corresponding signature in '(d: Derived) => Base' +!!! error TS2345: Type 'Base' is not assignable to type 'Derived'. +!!! error TS2345: Property 'toBase' is missing in type 'Base'. // bar should type check just like foo. // The same error should be observed in both cases. @@ -29,4 +32,5 @@ tests/cases/compiler/fixingTypeParametersRepeatedly2.ts(17,27): error TS2345: Ar var result = bar(derived, d => d.toBase()); ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(d: Derived) => Base' is not assignable to parameter of type '(p: Derived) => Derived'. -!!! error TS2345: Type 'Base' is not assignable to type 'Derived'. \ No newline at end of file +!!! error TS2345: Signature '(p: Derived): Derived' has no corresponding signature in '(d: Derived) => Base' +!!! error TS2345: Type 'Base' is not assignable to type 'Derived'. \ No newline at end of file diff --git a/tests/baselines/reference/for-of30.errors.txt b/tests/baselines/reference/for-of30.errors.txt index 6434b5294d5..85c04fffdd0 100644 --- a/tests/baselines/reference/for-of30.errors.txt +++ b/tests/baselines/reference/for-of30.errors.txt @@ -1,9 +1,11 @@ tests/cases/conformance/es6/for-ofStatements/for-of30.ts(1,15): error TS2322: Type 'StringIterator' is not assignable to type 'Iterable'. Types of property '[Symbol.iterator]' are incompatible. Type '() => StringIterator' is not assignable to type '() => Iterator'. - Type 'StringIterator' is not assignable to type 'Iterator'. - Types of property 'return' are incompatible. - Type 'number' is not assignable to type '(value?: any) => IteratorResult'. + Signature '(): Iterator' has no corresponding signature in '() => StringIterator' + Type 'StringIterator' is not assignable to type 'Iterator'. + Types of property 'return' are incompatible. + Type 'number' is not assignable to type '(value?: any) => IteratorResult'. + Signature '(value?: any): IteratorResult' has no corresponding signature in 'Number' ==== tests/cases/conformance/es6/for-ofStatements/for-of30.ts (1 errors) ==== @@ -12,9 +14,11 @@ tests/cases/conformance/es6/for-ofStatements/for-of30.ts(1,15): error TS2322: Ty !!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterable'. !!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. !!! error TS2322: Type '() => StringIterator' is not assignable to type '() => Iterator'. -!!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterator'. -!!! error TS2322: Types of property 'return' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type '(value?: any) => IteratorResult'. +!!! error TS2322: Signature '(): Iterator' has no corresponding signature in '() => StringIterator' +!!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterator'. +!!! error TS2322: Types of property 'return' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type '(value?: any) => IteratorResult'. +!!! error TS2322: Signature '(value?: any): IteratorResult' has no corresponding signature in 'Number' class StringIterator { next() { diff --git a/tests/baselines/reference/for-of31.errors.txt b/tests/baselines/reference/for-of31.errors.txt index 6d5f6e816be..111235d2f57 100644 --- a/tests/baselines/reference/for-of31.errors.txt +++ b/tests/baselines/reference/for-of31.errors.txt @@ -1,11 +1,13 @@ tests/cases/conformance/es6/for-ofStatements/for-of31.ts(1,15): error TS2322: Type 'StringIterator' is not assignable to type 'Iterable'. Types of property '[Symbol.iterator]' are incompatible. Type '() => StringIterator' is not assignable to type '() => Iterator'. - Type 'StringIterator' is not assignable to type 'Iterator'. - Types of property 'next' are incompatible. - Type '() => { value: string; }' is not assignable to type '(value?: any) => IteratorResult'. - Type '{ value: string; }' is not assignable to type 'IteratorResult'. - Property 'done' is missing in type '{ value: string; }'. + Signature '(): Iterator' has no corresponding signature in '() => StringIterator' + Type 'StringIterator' is not assignable to type 'Iterator'. + Types of property 'next' are incompatible. + Type '() => { value: string; }' is not assignable to type '(value?: any) => IteratorResult'. + Signature '(value?: any): IteratorResult' has no corresponding signature in '() => { value: string; }' + Type '{ value: string; }' is not assignable to type 'IteratorResult'. + Property 'done' is missing in type '{ value: string; }'. ==== tests/cases/conformance/es6/for-ofStatements/for-of31.ts (1 errors) ==== @@ -14,11 +16,13 @@ tests/cases/conformance/es6/for-ofStatements/for-of31.ts(1,15): error TS2322: Ty !!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterable'. !!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. !!! error TS2322: Type '() => StringIterator' is not assignable to type '() => Iterator'. -!!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterator'. -!!! error TS2322: Types of property 'next' are incompatible. -!!! error TS2322: Type '() => { value: string; }' is not assignable to type '(value?: any) => IteratorResult'. -!!! error TS2322: Type '{ value: string; }' is not assignable to type 'IteratorResult'. -!!! error TS2322: Property 'done' is missing in type '{ value: string; }'. +!!! error TS2322: Signature '(): Iterator' has no corresponding signature in '() => StringIterator' +!!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterator'. +!!! error TS2322: Types of property 'next' are incompatible. +!!! error TS2322: Type '() => { value: string; }' is not assignable to type '(value?: any) => IteratorResult'. +!!! error TS2322: Signature '(value?: any): IteratorResult' has no corresponding signature in '() => { value: string; }' +!!! error TS2322: Type '{ value: string; }' is not assignable to type 'IteratorResult'. +!!! error TS2322: Property 'done' is missing in type '{ value: string; }'. class StringIterator { next() { diff --git a/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt b/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt index 871368da9fe..baf2af9794b 100644 --- a/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt +++ b/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt @@ -3,15 +3,23 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(6,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(7,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(23,14): error TS2345: Argument of type 'Function' is not assignable to parameter of type '(x: string) => string'. + Signature '(x: string): string' has no corresponding signature in 'Function' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(24,15): error TS2345: Argument of type '(x: string[]) => string[]' is not assignable to parameter of type '(x: string) => string'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string[]' is not assignable to type 'string'. + Signature '(x: string): string' has no corresponding signature in '(x: string[]) => string[]' + Types of parameters 'x' and 'x' are incompatible. + Type 'string[]' is not assignable to type 'string'. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(25,15): error TS2345: Argument of type 'typeof C' is not assignable to parameter of type '(x: string) => string'. + Signature '(x: string): string' has no corresponding signature in 'typeof C' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(26,15): error TS2345: Argument of type 'new (x: string) => string' is not assignable to parameter of type '(x: string) => string'. + Signature '(x: string): string' has no corresponding signature in 'new (x: string) => string' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(28,16): error TS2345: Argument of type '(x: U, y: V) => U' is not assignable to parameter of type '(x: string) => string'. + Signature '(x: string): string' has no corresponding signature in '(x: U, y: V) => U' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(29,16): error TS2345: Argument of type 'typeof C2' is not assignable to parameter of type '(x: string) => string'. + Signature '(x: string): string' has no corresponding signature in 'typeof C2' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(30,16): error TS2345: Argument of type 'new (x: T) => T' is not assignable to parameter of type '(x: string) => string'. + Signature '(x: string): string' has no corresponding signature in 'new (x: T) => T' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(34,16): error TS2345: Argument of type 'F2' is not assignable to parameter of type '(x: string) => string'. + Signature '(x: string): string' has no corresponding signature in 'F2' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(36,38): error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(37,10): error TS2345: Argument of type 'T' is not assignable to parameter of type '(x: string) => string'. Type '() => void' is not assignable to type '(x: string) => string'. @@ -51,33 +59,41 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain var r = foo2(new Function()); ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type 'Function' is not assignable to parameter of type '(x: string) => string'. +!!! error TS2345: Signature '(x: string): string' has no corresponding signature in 'Function' var r2 = foo2((x: string[]) => x); ~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string[]) => string[]' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string[]' is not assignable to type 'string'. +!!! error TS2345: Signature '(x: string): string' has no corresponding signature in '(x: string[]) => string[]' +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string[]' is not assignable to type 'string'. var r6 = foo2(C); ~ !!! error TS2345: Argument of type 'typeof C' is not assignable to parameter of type '(x: string) => string'. +!!! error TS2345: Signature '(x: string): string' has no corresponding signature in 'typeof C' var r7 = foo2(b); ~ !!! error TS2345: Argument of type 'new (x: string) => string' is not assignable to parameter of type '(x: string) => string'. +!!! error TS2345: Signature '(x: string): string' has no corresponding signature in 'new (x: string) => string' var r8 = foo2((x: U) => x); // no error expected var r11 = foo2((x: U, y: V) => x); ~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: U, y: V) => U' is not assignable to parameter of type '(x: string) => string'. +!!! error TS2345: Signature '(x: string): string' has no corresponding signature in '(x: U, y: V) => U' var r13 = foo2(C2); ~~ !!! error TS2345: Argument of type 'typeof C2' is not assignable to parameter of type '(x: string) => string'. +!!! error TS2345: Signature '(x: string): string' has no corresponding signature in 'typeof C2' var r14 = foo2(b2); ~~ !!! error TS2345: Argument of type 'new (x: T) => T' is not assignable to parameter of type '(x: string) => string'. +!!! error TS2345: Signature '(x: string): string' has no corresponding signature in 'new (x: T) => T' interface F2 extends Function { foo: string; } var f2: F2; var r16 = foo2(f2); ~~ !!! error TS2345: Argument of type 'F2' is not assignable to parameter of type '(x: string) => string'. +!!! error TS2345: Signature '(x: string): string' has no corresponding signature in 'F2' function fff(x: T, y: U) { ~~~~~~~~~~~ diff --git a/tests/baselines/reference/functionExpressionContextualTyping2.errors.txt b/tests/baselines/reference/functionExpressionContextualTyping2.errors.txt index 6a3a7998f09..6ac40bcf2d9 100644 --- a/tests/baselines/reference/functionExpressionContextualTyping2.errors.txt +++ b/tests/baselines/reference/functionExpressionContextualTyping2.errors.txt @@ -1,6 +1,7 @@ tests/cases/conformance/expressions/contextualTyping/functionExpressionContextualTyping2.ts(11,1): error TS2322: Type '(foo: number, bar: string) => boolean' is not assignable to type '((n: number, s: string) => number) | ((n: number, s: string) => string)'. Type '(foo: number, bar: string) => boolean' is not assignable to type '(n: number, s: string) => string'. - Type 'boolean' is not assignable to type 'string'. + Signature '(n: number, s: string): string' has no corresponding signature in '(foo: number, bar: string) => boolean' + Type 'boolean' is not assignable to type 'string'. ==== tests/cases/conformance/expressions/contextualTyping/functionExpressionContextualTyping2.ts (1 errors) ==== @@ -18,4 +19,5 @@ tests/cases/conformance/expressions/contextualTyping/functionExpressionContextua ~~ !!! error TS2322: Type '(foo: number, bar: string) => boolean' is not assignable to type '((n: number, s: string) => number) | ((n: number, s: string) => string)'. !!! error TS2322: Type '(foo: number, bar: string) => boolean' is not assignable to type '(n: number, s: string) => string'. -!!! error TS2322: Type 'boolean' is not assignable to type 'string'. \ No newline at end of file +!!! error TS2322: Signature '(n: number, s: string): string' has no corresponding signature in '(foo: number, bar: string) => boolean' +!!! error TS2322: Type 'boolean' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/functionSignatureAssignmentCompat1.errors.txt b/tests/baselines/reference/functionSignatureAssignmentCompat1.errors.txt index 86c4728dda2..86f89e94b04 100644 --- a/tests/baselines/reference/functionSignatureAssignmentCompat1.errors.txt +++ b/tests/baselines/reference/functionSignatureAssignmentCompat1.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/functionSignatureAssignmentCompat1.ts(10,5): error TS2322: Type '(delimiter?: string) => ParserFunc' is not assignable to type 'ParserFunc'. - Types of parameters 'delimiter' and 'eventEmitter' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(eventEmitter: number, buffer: string): void' has no corresponding signature in '(delimiter?: string) => ParserFunc' + Types of parameters 'delimiter' and 'eventEmitter' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/functionSignatureAssignmentCompat1.ts (1 errors) ==== @@ -16,6 +17,7 @@ tests/cases/compiler/functionSignatureAssignmentCompat1.ts(10,5): error TS2322: var d: ParserFunc = parsers.readline; // not ok ~ !!! error TS2322: Type '(delimiter?: string) => ParserFunc' is not assignable to type 'ParserFunc'. -!!! error TS2322: Types of parameters 'delimiter' and 'eventEmitter' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(eventEmitter: number, buffer: string): void' has no corresponding signature in '(delimiter?: string) => ParserFunc' +!!! error TS2322: Types of parameters 'delimiter' and 'eventEmitter' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var e: ParserFunc = parsers.readline(); // ok \ No newline at end of file diff --git a/tests/baselines/reference/generatorTypeCheck25.errors.txt b/tests/baselines/reference/generatorTypeCheck25.errors.txt index 8d414c7c471..65aa94001b5 100644 --- a/tests/baselines/reference/generatorTypeCheck25.errors.txt +++ b/tests/baselines/reference/generatorTypeCheck25.errors.txt @@ -1,14 +1,17 @@ tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck25.ts(4,5): error TS2322: Type '() => IterableIterator' is not assignable to type '() => Iterable'. - Type 'IterableIterator' is not assignable to type 'Iterable'. - Types of property '[Symbol.iterator]' are incompatible. - Type '() => IterableIterator' is not assignable to type '() => Iterator'. - Type 'IterableIterator' is not assignable to type 'Iterator'. - Types of property 'next' are incompatible. - Type '(value?: any) => IteratorResult' is not assignable to type '(value?: any) => IteratorResult'. - Type 'IteratorResult' is not assignable to type 'IteratorResult'. - Type 'Bar | Baz' is not assignable to type 'Foo'. - Type 'Baz' is not assignable to type 'Foo'. - Property 'x' is missing in type 'Baz'. + Signature '(): Iterable' has no corresponding signature in '() => IterableIterator' + Type 'IterableIterator' is not assignable to type 'Iterable'. + Types of property '[Symbol.iterator]' are incompatible. + Type '() => IterableIterator' is not assignable to type '() => Iterator'. + Signature '(): Iterator' has no corresponding signature in '() => IterableIterator' + Type 'IterableIterator' is not assignable to type 'Iterator'. + Types of property 'next' are incompatible. + Type '(value?: any) => IteratorResult' is not assignable to type '(value?: any) => IteratorResult'. + Signature '(value?: any): IteratorResult' has no corresponding signature in '(value?: any) => IteratorResult' + Type 'IteratorResult' is not assignable to type 'IteratorResult'. + Type 'Bar | Baz' is not assignable to type 'Foo'. + Type 'Baz' is not assignable to type 'Foo'. + Property 'x' is missing in type 'Baz'. ==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck25.ts (1 errors) ==== @@ -18,16 +21,19 @@ tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck25.ts(4,5): error var g3: () => Iterable = function* () { ~~ !!! error TS2322: Type '() => IterableIterator' is not assignable to type '() => Iterable'. -!!! error TS2322: Type 'IterableIterator' is not assignable to type 'Iterable'. -!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. -!!! error TS2322: Type '() => IterableIterator' is not assignable to type '() => Iterator'. -!!! error TS2322: Type 'IterableIterator' is not assignable to type 'Iterator'. -!!! error TS2322: Types of property 'next' are incompatible. -!!! error TS2322: Type '(value?: any) => IteratorResult' is not assignable to type '(value?: any) => IteratorResult'. -!!! error TS2322: Type 'IteratorResult' is not assignable to type 'IteratorResult'. -!!! error TS2322: Type 'Bar | Baz' is not assignable to type 'Foo'. -!!! error TS2322: Type 'Baz' is not assignable to type 'Foo'. -!!! error TS2322: Property 'x' is missing in type 'Baz'. +!!! error TS2322: Signature '(): Iterable' has no corresponding signature in '() => IterableIterator' +!!! error TS2322: Type 'IterableIterator' is not assignable to type 'Iterable'. +!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. +!!! error TS2322: Type '() => IterableIterator' is not assignable to type '() => Iterator'. +!!! error TS2322: Signature '(): Iterator' has no corresponding signature in '() => IterableIterator' +!!! error TS2322: Type 'IterableIterator' is not assignable to type 'Iterator'. +!!! error TS2322: Types of property 'next' are incompatible. +!!! error TS2322: Type '(value?: any) => IteratorResult' is not assignable to type '(value?: any) => IteratorResult'. +!!! error TS2322: Signature '(value?: any): IteratorResult' has no corresponding signature in '(value?: any) => IteratorResult' +!!! error TS2322: Type 'IteratorResult' is not assignable to type 'IteratorResult'. +!!! error TS2322: Type 'Bar | Baz' is not assignable to type 'Foo'. +!!! error TS2322: Type 'Baz' is not assignable to type 'Foo'. +!!! error TS2322: Property 'x' is missing in type 'Baz'. yield; yield new Bar; yield new Baz; diff --git a/tests/baselines/reference/generatorTypeCheck31.errors.txt b/tests/baselines/reference/generatorTypeCheck31.errors.txt index a0336b464a4..9b77bb178c9 100644 --- a/tests/baselines/reference/generatorTypeCheck31.errors.txt +++ b/tests/baselines/reference/generatorTypeCheck31.errors.txt @@ -1,4 +1,5 @@ tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck31.ts(2,11): error TS2322: Type 'IterableIterator<(x: any) => any>' is not assignable to type '() => Iterable<(x: string) => number>'. + Signature '(): Iterable<(x: string) => number>' has no corresponding signature in 'IterableIterator<(x: any) => any>' ==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck31.ts (1 errors) ==== @@ -10,4 +11,5 @@ tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck31.ts(2,11): erro } () ~~~~~~~~ !!! error TS2322: Type 'IterableIterator<(x: any) => any>' is not assignable to type '() => Iterable<(x: string) => number>'. +!!! error TS2322: Signature '(): Iterable<(x: string) => number>' has no corresponding signature in 'IterableIterator<(x: any) => any>' } \ No newline at end of file diff --git a/tests/baselines/reference/generatorTypeCheck8.errors.txt b/tests/baselines/reference/generatorTypeCheck8.errors.txt index cedfecda60b..abd1db46bd1 100644 --- a/tests/baselines/reference/generatorTypeCheck8.errors.txt +++ b/tests/baselines/reference/generatorTypeCheck8.errors.txt @@ -1,8 +1,9 @@ tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck8.ts(2,17): error TS2322: Type 'IterableIterator' is not assignable to type 'BadGenerator'. Types of property 'next' are incompatible. Type '(value?: any) => IteratorResult' is not assignable to type '(value?: any) => IteratorResult'. - Type 'IteratorResult' is not assignable to type 'IteratorResult'. - Type 'string' is not assignable to type 'number'. + Signature '(value?: any): IteratorResult' has no corresponding signature in '(value?: any) => IteratorResult' + Type 'IteratorResult' is not assignable to type 'IteratorResult'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck8.ts (1 errors) ==== @@ -12,5 +13,6 @@ tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck8.ts(2,17): error !!! error TS2322: Type 'IterableIterator' is not assignable to type 'BadGenerator'. !!! error TS2322: Types of property 'next' are incompatible. !!! error TS2322: Type '(value?: any) => IteratorResult' is not assignable to type '(value?: any) => IteratorResult'. -!!! error TS2322: Type 'IteratorResult' is not assignable to type 'IteratorResult'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file +!!! error TS2322: Signature '(value?: any): IteratorResult' has no corresponding signature in '(value?: any) => IteratorResult' +!!! error TS2322: Type 'IteratorResult' is not assignable to type 'IteratorResult'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.errors.txt b/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.errors.txt index f335319cafd..3b52ed1e597 100644 --- a/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.errors.txt +++ b/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.errors.txt @@ -3,8 +3,9 @@ tests/cases/compiler/genericAssignmentCompatWithInterfaces1.ts(12,5): error TS23 Type 'A' is not assignable to type 'Comparable'. Types of property 'compareTo' are incompatible. Type '(other: number) => number' is not assignable to type '(other: string) => number'. - Types of parameters 'other' and 'other' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(other: string): number' has no corresponding signature in '(other: number) => number' + Types of parameters 'other' and 'other' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/genericAssignmentCompatWithInterfaces1.ts(13,5): error TS2322: Type '{ x: A; }' is not assignable to type 'I'. Types of property 'x' are incompatible. Type 'A' is not assignable to type 'Comparable'. @@ -35,8 +36,9 @@ tests/cases/compiler/genericAssignmentCompatWithInterfaces1.ts(17,5): error TS23 !!! error TS2322: Type 'A' is not assignable to type 'Comparable'. !!! error TS2322: Types of property 'compareTo' are incompatible. !!! error TS2322: Type '(other: number) => number' is not assignable to type '(other: string) => number'. -!!! error TS2322: Types of parameters 'other' and 'other' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(other: string): number' has no corresponding signature in '(other: number) => number' +!!! error TS2322: Types of parameters 'other' and 'other' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var a2: I = function (): { x: A } { ~~ !!! error TS2322: Type '{ x: A; }' is not assignable to type 'I'. diff --git a/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt b/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt index 428ebecf5b0..a6c6de7ffa7 100644 --- a/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt +++ b/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt @@ -1,15 +1,19 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(24,38): error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'string'. + Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; }' + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(53,38): error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'string'. + Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; }' + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(69,38): error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'string'. + Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; }' + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(85,38): error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; (b: boolean): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'boolean'. + Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; (b: boolean): Promise; }' + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'boolean'. ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts (4 errors) ==== @@ -39,8 +43,9 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverl var newPromise = numPromise.then(testFunction); ~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; }' +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. } ////////////////////////////////////// @@ -72,8 +77,9 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverl var newPromise = numPromise.then(testFunction); ~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; }' +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. } ////////////////////////////////////// @@ -92,8 +98,9 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverl var newPromise = numPromise.then(testFunction); ~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; }' +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. } ////////////////////////////////////// @@ -112,7 +119,8 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverl var newPromise = numPromise.then(testFunction); ~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; (b: boolean): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'boolean'. +!!! error TS2345: Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; (b: boolean): Promise; }' +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'boolean'. } \ No newline at end of file diff --git a/tests/baselines/reference/genericCallWithConstructorTypedArguments5.errors.txt b/tests/baselines/reference/genericCallWithConstructorTypedArguments5.errors.txt index a014ef85b6c..451a9e2900d 100644 --- a/tests/baselines/reference/genericCallWithConstructorTypedArguments5.errors.txt +++ b/tests/baselines/reference/genericCallWithConstructorTypedArguments5.errors.txt @@ -1,9 +1,11 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstructorTypedArguments5.ts(11,14): error TS2345: Argument of type '{ cb: new (x: T, y: T) => string; }' is not assignable to parameter of type '{ cb: new (t: any) => string; }'. Types of property 'cb' are incompatible. Type 'new (x: T, y: T) => string' is not assignable to type 'new (t: any) => string'. + Signature 'new (t: any): string' has no corresponding signature in 'new (x: T, y: T) => string' tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstructorTypedArguments5.ts(13,14): error TS2345: Argument of type '{ cb: new (x: string, y: number) => string; }' is not assignable to parameter of type '{ cb: new (t: string) => string; }'. Types of property 'cb' are incompatible. Type 'new (x: string, y: number) => string' is not assignable to type 'new (t: string) => string'. + Signature 'new (t: string): string' has no corresponding signature in 'new (x: string, y: number) => string' ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstructorTypedArguments5.ts (2 errors) ==== @@ -22,12 +24,14 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithCon !!! error TS2345: Argument of type '{ cb: new (x: T, y: T) => string; }' is not assignable to parameter of type '{ cb: new (t: any) => string; }'. !!! error TS2345: Types of property 'cb' are incompatible. !!! error TS2345: Type 'new (x: T, y: T) => string' is not assignable to type 'new (t: any) => string'. +!!! error TS2345: Signature 'new (t: any): string' has no corresponding signature in 'new (x: T, y: T) => string' var arg3: { cb: new (x: string, y: number) => string }; var r3 = foo(arg3); // error ~~~~ !!! error TS2345: Argument of type '{ cb: new (x: string, y: number) => string; }' is not assignable to parameter of type '{ cb: new (t: string) => string; }'. !!! error TS2345: Types of property 'cb' are incompatible. !!! error TS2345: Type 'new (x: string, y: number) => string' is not assignable to type 'new (t: string) => string'. +!!! error TS2345: Signature 'new (t: string): string' has no corresponding signature in 'new (x: string, y: number) => string' function foo2(arg: { cb: new(t: T, t2: T) => U }) { return new arg.cb(null, null); diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments2.errors.txt b/tests/baselines/reference/genericCallWithGenericSignatureArguments2.errors.txt index c264058ad9f..4677d24164d 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments2.errors.txt +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments2.errors.txt @@ -3,18 +3,21 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(15,21): error TS2345: Argument of type 'Date' is not assignable to parameter of type 'T'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(16,22): error TS2345: Argument of type 'number' is not assignable to parameter of type 'T'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(25,23): error TS2345: Argument of type '(a: T) => T' is not assignable to parameter of type '(x: Date) => Date'. - Types of parameters 'a' and 'x' are incompatible. - Type 'T' is not assignable to type 'Date'. - Type 'RegExp' is not assignable to type 'Date'. - Property 'toDateString' is missing in type 'RegExp'. + Signature '(x: Date): Date' has no corresponding signature in '(a: T) => T' + Types of parameters 'a' and 'x' are incompatible. + Type 'T' is not assignable to type 'Date'. + Type 'RegExp' is not assignable to type 'Date'. + Property 'toDateString' is missing in type 'RegExp'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(37,36): error TS2345: Argument of type '(x: E) => F' is not assignable to parameter of type '(x: E) => E'. - Type 'F' is not assignable to type 'E'. + Signature '(x: E): E' has no corresponding signature in '(x: E) => F' + Type 'F' is not assignable to type 'E'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(50,21): error TS2345: Argument of type 'Date' is not assignable to parameter of type 'T'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(51,22): error TS2345: Argument of type 'number' is not assignable to parameter of type 'T'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(60,23): error TS2345: Argument of type '(a: T) => T' is not assignable to parameter of type '(x: Date) => Date'. - Types of parameters 'a' and 'x' are incompatible. - Type 'T' is not assignable to type 'Date'. - Type 'RegExp' is not assignable to type 'Date'. + Signature '(x: Date): Date' has no corresponding signature in '(a: T) => T' + Types of parameters 'a' and 'x' are incompatible. + Type 'T' is not assignable to type 'Date'. + Type 'RegExp' is not assignable to type 'Date'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(67,51): error TS2304: Cannot find name 'U'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(67,57): error TS2304: Cannot find name 'U'. @@ -54,10 +57,11 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen var r7 = foo2((a: T) => a, (b: T) => b); // error ~~~~~~~~~~~ !!! error TS2345: Argument of type '(a: T) => T' is not assignable to parameter of type '(x: Date) => Date'. -!!! error TS2345: Types of parameters 'a' and 'x' are incompatible. -!!! error TS2345: Type 'T' is not assignable to type 'Date'. -!!! error TS2345: Type 'RegExp' is not assignable to type 'Date'. -!!! error TS2345: Property 'toDateString' is missing in type 'RegExp'. +!!! error TS2345: Signature '(x: Date): Date' has no corresponding signature in '(a: T) => T' +!!! error TS2345: Types of parameters 'a' and 'x' are incompatible. +!!! error TS2345: Type 'T' is not assignable to type 'Date'. +!!! error TS2345: Type 'RegExp' is not assignable to type 'Date'. +!!! error TS2345: Property 'toDateString' is missing in type 'RegExp'. var r7b = foo2((a) => a, (b) => b); // valid, T is inferred to be Date } @@ -72,7 +76,8 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen var r7 = foo3(E.A, (x) => E.A, (x) => F.A); // error ~~~~~~~~~~ !!! error TS2345: Argument of type '(x: E) => F' is not assignable to parameter of type '(x: E) => E'. -!!! error TS2345: Type 'F' is not assignable to type 'E'. +!!! error TS2345: Signature '(x: E): E' has no corresponding signature in '(x: E) => F' +!!! error TS2345: Type 'F' is not assignable to type 'E'. } module TU { @@ -102,9 +107,10 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen var r7 = foo2((a: T) => a, (b: T) => b); ~~~~~~~~~~~ !!! error TS2345: Argument of type '(a: T) => T' is not assignable to parameter of type '(x: Date) => Date'. -!!! error TS2345: Types of parameters 'a' and 'x' are incompatible. -!!! error TS2345: Type 'T' is not assignable to type 'Date'. -!!! error TS2345: Type 'RegExp' is not assignable to type 'Date'. +!!! error TS2345: Signature '(x: Date): Date' has no corresponding signature in '(a: T) => T' +!!! error TS2345: Types of parameters 'a' and 'x' are incompatible. +!!! error TS2345: Type 'T' is not assignable to type 'Date'. +!!! error TS2345: Type 'RegExp' is not assignable to type 'Date'. var r7b = foo2((a) => a, (b) => b); } diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt b/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt index 87ae6b63855..cfee8e336b3 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt @@ -1,8 +1,10 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments3.ts(32,11): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '(y: string) => string' is not a valid type argument because it is not a supertype of candidate '(a: string) => boolean'. - Type 'boolean' is not assignable to type 'string'. + Signature '(y: string): string' has no corresponding signature in '(a: string) => boolean' + Type 'boolean' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments3.ts(33,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '(n: Object) => number' is not a valid type argument because it is not a supertype of candidate 'number'. + Signature '(n: Object): number' has no corresponding signature in 'Number' ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments3.ts (2 errors) ==== @@ -41,8 +43,10 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen ~~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '(y: string) => string' is not a valid type argument because it is not a supertype of candidate '(a: string) => boolean'. -!!! error TS2453: Type 'boolean' is not assignable to type 'string'. +!!! error TS2453: Signature '(y: string): string' has no corresponding signature in '(a: string) => boolean' +!!! error TS2453: Type 'boolean' is not assignable to type 'string'. var r12 = foo2(x, (a1: (y: string) => boolean) => (n: Object) => 1, (a2: (z: string) => boolean) => 2); // error ~~~~ !!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate '(n: Object) => number' is not a valid type argument because it is not a supertype of candidate 'number'. \ No newline at end of file +!!! error TS2453: Type argument candidate '(n: Object) => number' is not a valid type argument because it is not a supertype of candidate 'number'. +!!! error TS2453: Signature '(n: Object): number' has no corresponding signature in 'Number' \ No newline at end of file diff --git a/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.errors.txt b/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.errors.txt index 80bcf12494a..230311a6642 100644 --- a/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.errors.txt +++ b/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.errors.txt @@ -1,4 +1,5 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOverloadedConstructorTypedArguments2.ts(31,20): error TS2345: Argument of type 'new (x: T, y: T) => string' is not assignable to parameter of type '{ new (x: any): string; new (x: any, y?: any): string; }'. + Signature 'new (x: any): string' has no corresponding signature in 'new (x: T, y: T) => string' ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOverloadedConstructorTypedArguments2.ts (1 errors) ==== @@ -35,6 +36,7 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOve var r10 = foo6(b); // error ~ !!! error TS2345: Argument of type 'new (x: T, y: T) => string' is not assignable to parameter of type '{ new (x: any): string; new (x: any, y?: any): string; }'. +!!! error TS2345: Signature 'new (x: any): string' has no corresponding signature in 'new (x: T, y: T) => string' function foo7(x:T, cb: { new(x: T): string; new(x: T, y?: T): string }) { return cb; diff --git a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.errors.txt b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.errors.txt index 32fe6a09344..0e2481feee8 100644 --- a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.errors.txt +++ b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.errors.txt @@ -1,4 +1,5 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOverloadedFunctionTypedArguments2.ts(28,20): error TS2345: Argument of type '(x: T, y: T) => string' is not assignable to parameter of type '{ (x: any): string; (x: any, y?: any): string; }'. + Signature '(x: any): string' has no corresponding signature in '(x: T, y: T) => string' ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOverloadedFunctionTypedArguments2.ts (1 errors) ==== @@ -32,6 +33,7 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOve var r10 = foo6((x: T, y: T) => ''); // error ~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, y: T) => string' is not assignable to parameter of type '{ (x: any): string; (x: any, y?: any): string; }'. +!!! error TS2345: Signature '(x: any): string' has no corresponding signature in '(x: T, y: T) => string' function foo7(x:T, cb: { (x: T): string; (x: T, y?: T): string }) { return cb; diff --git a/tests/baselines/reference/genericCallWithTupleType.errors.txt b/tests/baselines/reference/genericCallWithTupleType.errors.txt index d03f8d5e68a..518a4714247 100644 --- a/tests/baselines/reference/genericCallWithTupleType.errors.txt +++ b/tests/baselines/reference/genericCallWithTupleType.errors.txt @@ -1,9 +1,10 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithTupleType.ts(12,1): error TS2322: Type '[string, number, boolean, boolean]' is not assignable to type '[string, number]'. Types of property 'pop' are incompatible. Type '() => string | number | boolean' is not assignable to type '() => string | number'. - Type 'string | number | boolean' is not assignable to type 'string | number'. - Type 'boolean' is not assignable to type 'string | number'. - Type 'boolean' is not assignable to type 'number'. + Signature '(): string | number' has no corresponding signature in '() => string | number | boolean' + Type 'string | number | boolean' is not assignable to type 'string | number'. + Type 'boolean' is not assignable to type 'string | number'. + Type 'boolean' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithTupleType.ts(14,1): error TS2322: Type '{ a: string; }' is not assignable to type 'string | number'. Type '{ a: string; }' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithTupleType.ts(22,1): error TS2322: Type '[number, string]' is not assignable to type '[string, number]'. @@ -33,9 +34,10 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithTup !!! error TS2322: Type '[string, number, boolean, boolean]' is not assignable to type '[string, number]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => string | number | boolean' is not assignable to type '() => string | number'. -!!! error TS2322: Type 'string | number | boolean' is not assignable to type 'string | number'. -!!! error TS2322: Type 'boolean' is not assignable to type 'string | number'. -!!! error TS2322: Type 'boolean' is not assignable to type 'number'. +!!! error TS2322: Signature '(): string | number' has no corresponding signature in '() => string | number | boolean' +!!! error TS2322: Type 'string | number | boolean' is not assignable to type 'string | number'. +!!! error TS2322: Type 'boolean' is not assignable to type 'string | number'. +!!! error TS2322: Type 'boolean' is not assignable to type 'number'. var e3 = i1.tuple1[2]; // {} i1.tuple1[3] = { a: "string" }; ~~~~~~~~~~~~ diff --git a/tests/baselines/reference/genericCombinators2.errors.txt b/tests/baselines/reference/genericCombinators2.errors.txt index d590f1030c3..3dcc1b3c873 100644 --- a/tests/baselines/reference/genericCombinators2.errors.txt +++ b/tests/baselines/reference/genericCombinators2.errors.txt @@ -1,8 +1,10 @@ tests/cases/compiler/genericCombinators2.ts(15,43): error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. - Type 'string' is not assignable to type 'Date'. - Property 'toDateString' is missing in type 'String'. + Signature '(x: number, y: string): Date' has no corresponding signature in '(x: number, y: string) => string' + Type 'string' is not assignable to type 'Date'. + Property 'toDateString' is missing in type 'String'. tests/cases/compiler/genericCombinators2.ts(16,43): error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. - Type 'string' is not assignable to type 'Date'. + Signature '(x: number, y: string): Date' has no corresponding signature in '(x: number, y: string) => string' + Type 'string' is not assignable to type 'Date'. ==== tests/cases/compiler/genericCombinators2.ts (2 errors) ==== @@ -23,9 +25,11 @@ tests/cases/compiler/genericCombinators2.ts(16,43): error TS2345: Argument of ty var r5a = _.map(c2, (x, y) => { return x.toFixed() }); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. -!!! error TS2345: Type 'string' is not assignable to type 'Date'. -!!! error TS2345: Property 'toDateString' is missing in type 'String'. +!!! error TS2345: Signature '(x: number, y: string): Date' has no corresponding signature in '(x: number, y: string) => string' +!!! error TS2345: Type 'string' is not assignable to type 'Date'. +!!! error TS2345: Property 'toDateString' is missing in type 'String'. var r5b = _.map(c2, rf1); ~~~ !!! error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. -!!! error TS2345: Type 'string' is not assignable to type 'Date'. \ No newline at end of file +!!! error TS2345: Signature '(x: number, y: string): Date' has no corresponding signature in '(x: number, y: string) => string' +!!! error TS2345: Type 'string' is not assignable to type 'Date'. \ No newline at end of file diff --git a/tests/baselines/reference/genericSpecializations3.errors.txt b/tests/baselines/reference/genericSpecializations3.errors.txt index ccaa839f9d0..abfdf7a6640 100644 --- a/tests/baselines/reference/genericSpecializations3.errors.txt +++ b/tests/baselines/reference/genericSpecializations3.errors.txt @@ -1,18 +1,21 @@ tests/cases/compiler/genericSpecializations3.ts(8,7): error TS2420: Class 'IntFooBad' incorrectly implements interface 'IFoo'. Types of property 'foo' are incompatible. Type '(x: string) => string' is not assignable to type '(x: number) => number'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): number' has no corresponding signature in '(x: string) => string' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/genericSpecializations3.ts(28,1): error TS2322: Type 'StringFoo2' is not assignable to type 'IntFoo'. Types of property 'foo' are incompatible. Type '(x: string) => string' is not assignable to type '(x: number) => number'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): number' has no corresponding signature in '(x: string) => string' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/genericSpecializations3.ts(29,1): error TS2322: Type 'IntFoo' is not assignable to type 'StringFoo2'. Types of property 'foo' are incompatible. Type '(x: number) => number' is not assignable to type '(x: string) => string'. - Types of parameters 'x' and 'x' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x: string): string' has no corresponding signature in '(x: number) => number' + Types of parameters 'x' and 'x' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/compiler/genericSpecializations3.ts (3 errors) ==== @@ -28,8 +31,9 @@ tests/cases/compiler/genericSpecializations3.ts(29,1): error TS2322: Type 'IntFo !!! error TS2420: Class 'IntFooBad' incorrectly implements interface 'IFoo'. !!! error TS2420: Types of property 'foo' are incompatible. !!! error TS2420: Type '(x: string) => string' is not assignable to type '(x: number) => number'. -!!! error TS2420: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2420: Type 'string' is not assignable to type 'number'. +!!! error TS2420: Signature '(x: number): number' has no corresponding signature in '(x: string) => string' +!!! error TS2420: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2420: Type 'string' is not assignable to type 'number'. foo(x: string): string { return null; } } @@ -54,15 +58,17 @@ tests/cases/compiler/genericSpecializations3.ts(29,1): error TS2322: Type 'IntFo !!! error TS2322: Type 'StringFoo2' is not assignable to type 'IntFoo'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x: string) => string' is not assignable to type '(x: number) => number'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): number' has no corresponding signature in '(x: string) => string' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. stringFoo2 = intFoo; // error ~~~~~~~~~~ !!! error TS2322: Type 'IntFoo' is not assignable to type 'StringFoo2'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x: number) => number' is not assignable to type '(x: string) => string'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(x: string): string' has no corresponding signature in '(x: number) => number' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. class StringFoo3 implements IFoo { // error diff --git a/tests/baselines/reference/genericTypeAssertions2.errors.txt b/tests/baselines/reference/genericTypeAssertions2.errors.txt index eda4c83646c..72bdf8a23a6 100644 --- a/tests/baselines/reference/genericTypeAssertions2.errors.txt +++ b/tests/baselines/reference/genericTypeAssertions2.errors.txt @@ -1,8 +1,9 @@ tests/cases/compiler/genericTypeAssertions2.ts(10,5): error TS2322: Type 'B' is not assignable to type 'A'. Types of property 'foo' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => void' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/genericTypeAssertions2.ts(11,5): error TS2322: Type 'A' is not assignable to type 'B'. Property 'bar' is missing in type 'A'. tests/cases/compiler/genericTypeAssertions2.ts(13,21): error TS2352: Neither type 'undefined[]' nor type 'A' is assignable to the other. @@ -24,8 +25,9 @@ tests/cases/compiler/genericTypeAssertions2.ts(13,21): error TS2352: Neither typ !!! error TS2322: Type 'B' is not assignable to type 'A'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var r3: B = >new B(); // error ~~ !!! error TS2322: Type 'A' is not assignable to type 'B'. diff --git a/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt b/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt index 0fe15afcf33..d8bd78992a7 100644 --- a/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt +++ b/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt @@ -1,18 +1,20 @@ tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts(4,7): error TS2420: Class 'X' incorrectly implements interface 'I'. Types of property 'f' are incompatible. Type '(a: T) => void' is not assignable to type '(a: { a: number; }) => void'. - Types of parameters 'a' and 'a' are incompatible. - Type 'T' is not assignable to type '{ a: number; }'. - Type '{ a: string; }' is not assignable to type '{ a: number; }'. - Types of property 'a' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(a: { a: number; }): void' has no corresponding signature in '(a: T) => void' + Types of parameters 'a' and 'a' are incompatible. + Type 'T' is not assignable to type '{ a: number; }'. + Type '{ a: string; }' is not assignable to type '{ a: number; }'. + Types of property 'a' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts(8,5): error TS2322: Type 'X<{ a: string; }>' is not assignable to type 'I'. Types of property 'f' are incompatible. Type '(a: { a: string; }) => void' is not assignable to type '(a: { a: number; }) => void'. - Types of parameters 'a' and 'a' are incompatible. - Type '{ a: string; }' is not assignable to type '{ a: number; }'. - Types of property 'a' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(a: { a: number; }): void' has no corresponding signature in '(a: { a: string; }) => void' + Types of parameters 'a' and 'a' are incompatible. + Type '{ a: string; }' is not assignable to type '{ a: number; }'. + Types of property 'a' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts (2 errors) ==== @@ -24,11 +26,12 @@ tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts(8,5): error TS2322 !!! error TS2420: Class 'X' incorrectly implements interface 'I'. !!! error TS2420: Types of property 'f' are incompatible. !!! error TS2420: Type '(a: T) => void' is not assignable to type '(a: { a: number; }) => void'. -!!! error TS2420: Types of parameters 'a' and 'a' are incompatible. -!!! error TS2420: Type 'T' is not assignable to type '{ a: number; }'. -!!! error TS2420: Type '{ a: string; }' is not assignable to type '{ a: number; }'. -!!! error TS2420: Types of property 'a' are incompatible. -!!! error TS2420: Type 'string' is not assignable to type 'number'. +!!! error TS2420: Signature '(a: { a: number; }): void' has no corresponding signature in '(a: T) => void' +!!! error TS2420: Types of parameters 'a' and 'a' are incompatible. +!!! error TS2420: Type 'T' is not assignable to type '{ a: number; }'. +!!! error TS2420: Type '{ a: string; }' is not assignable to type '{ a: number; }'. +!!! error TS2420: Types of property 'a' are incompatible. +!!! error TS2420: Type 'string' is not assignable to type 'number'. f(a: T): void { } } var x = new X<{ a: string }>(); @@ -37,8 +40,9 @@ tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts(8,5): error TS2322 !!! error TS2322: Type 'X<{ a: string; }>' is not assignable to type 'I'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(a: { a: string; }) => void' is not assignable to type '(a: { a: number; }) => void'. -!!! error TS2322: Types of parameters 'a' and 'a' are incompatible. -!!! error TS2322: Type '{ a: string; }' is not assignable to type '{ a: number; }'. -!!! error TS2322: Types of property 'a' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(a: { a: number; }): void' has no corresponding signature in '(a: { a: string; }) => void' +!!! error TS2322: Types of parameters 'a' and 'a' are incompatible. +!!! error TS2322: Type '{ a: string; }' is not assignable to type '{ a: number; }'. +!!! error TS2322: Types of property 'a' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/generics4.errors.txt b/tests/baselines/reference/generics4.errors.txt index 06bfa122901..93828628bd2 100644 --- a/tests/baselines/reference/generics4.errors.txt +++ b/tests/baselines/reference/generics4.errors.txt @@ -2,7 +2,8 @@ tests/cases/compiler/generics4.ts(7,1): error TS2322: Type 'C' is not assigna Type 'Y' is not assignable to type 'X'. Types of property 'f' are incompatible. Type '() => boolean' is not assignable to type '() => string'. - Type 'boolean' is not assignable to type 'string'. + Signature '(): string' has no corresponding signature in '() => boolean' + Type 'boolean' is not assignable to type 'string'. ==== tests/cases/compiler/generics4.ts (1 errors) ==== @@ -18,4 +19,5 @@ tests/cases/compiler/generics4.ts(7,1): error TS2322: Type 'C' is not assigna !!! error TS2322: Type 'Y' is not assignable to type 'X'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '() => boolean' is not assignable to type '() => string'. -!!! error TS2322: Type 'boolean' is not assignable to type 'string'. \ No newline at end of file +!!! error TS2322: Signature '(): string' has no corresponding signature in '() => boolean' +!!! error TS2322: Type 'boolean' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/implementGenericWithMismatchedTypes.errors.txt b/tests/baselines/reference/implementGenericWithMismatchedTypes.errors.txt index 7a128b87764..9699ab80862 100644 --- a/tests/baselines/reference/implementGenericWithMismatchedTypes.errors.txt +++ b/tests/baselines/reference/implementGenericWithMismatchedTypes.errors.txt @@ -1,12 +1,14 @@ tests/cases/compiler/implementGenericWithMismatchedTypes.ts(7,7): error TS2420: Class 'C' incorrectly implements interface 'IFoo'. Types of property 'foo' are incompatible. Type '(x: string) => number' is not assignable to type '(x: T) => T'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'T'. + Signature '(x: T): T' has no corresponding signature in '(x: string) => number' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'T'. tests/cases/compiler/implementGenericWithMismatchedTypes.ts(16,7): error TS2420: Class 'C2' incorrectly implements interface 'IFoo2'. Types of property 'foo' are incompatible. Type '(x: Tstring) => number' is not assignable to type '(x: T) => T'. - Type 'number' is not assignable to type 'T'. + Signature '(x: T): T' has no corresponding signature in '(x: Tstring) => number' + Type 'number' is not assignable to type 'T'. ==== tests/cases/compiler/implementGenericWithMismatchedTypes.ts (2 errors) ==== @@ -21,8 +23,9 @@ tests/cases/compiler/implementGenericWithMismatchedTypes.ts(16,7): error TS2420: !!! error TS2420: Class 'C' incorrectly implements interface 'IFoo'. !!! error TS2420: Types of property 'foo' are incompatible. !!! error TS2420: Type '(x: string) => number' is not assignable to type '(x: T) => T'. -!!! error TS2420: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2420: Type 'string' is not assignable to type 'T'. +!!! error TS2420: Signature '(x: T): T' has no corresponding signature in '(x: string) => number' +!!! error TS2420: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2420: Type 'string' is not assignable to type 'T'. foo(x: string): number { return null; } @@ -36,7 +39,8 @@ tests/cases/compiler/implementGenericWithMismatchedTypes.ts(16,7): error TS2420: !!! error TS2420: Class 'C2' incorrectly implements interface 'IFoo2'. !!! error TS2420: Types of property 'foo' are incompatible. !!! error TS2420: Type '(x: Tstring) => number' is not assignable to type '(x: T) => T'. -!!! error TS2420: Type 'number' is not assignable to type 'T'. +!!! error TS2420: Signature '(x: T): T' has no corresponding signature in '(x: Tstring) => number' +!!! error TS2420: Type 'number' is not assignable to type 'T'. foo(x: Tstring): number { return null; } diff --git a/tests/baselines/reference/incompatibleTypes.errors.txt b/tests/baselines/reference/incompatibleTypes.errors.txt index e612600a7f8..eddd01cc979 100644 --- a/tests/baselines/reference/incompatibleTypes.errors.txt +++ b/tests/baselines/reference/incompatibleTypes.errors.txt @@ -1,12 +1,14 @@ tests/cases/compiler/incompatibleTypes.ts(5,7): error TS2420: Class 'C1' incorrectly implements interface 'IFoo1'. Types of property 'p1' are incompatible. Type '() => string' is not assignable to type '() => number'. - Type 'string' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => string' + Type 'string' is not assignable to type 'number'. tests/cases/compiler/incompatibleTypes.ts(15,7): error TS2420: Class 'C2' incorrectly implements interface 'IFoo2'. Types of property 'p1' are incompatible. Type '(n: number) => number' is not assignable to type '(s: string) => number'. - Types of parameters 'n' and 's' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(s: string): number' has no corresponding signature in '(n: number) => number' + Types of parameters 'n' and 's' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/incompatibleTypes.ts(25,7): error TS2420: Class 'C3' incorrectly implements interface 'IFoo3'. Types of property 'p1' are incompatible. Type 'number' is not assignable to type 'string'. @@ -17,13 +19,16 @@ tests/cases/compiler/incompatibleTypes.ts(33,7): error TS2420: Class 'C4' incorr tests/cases/compiler/incompatibleTypes.ts(42,5): error TS2345: Argument of type 'C1' is not assignable to parameter of type 'IFoo2'. Types of property 'p1' are incompatible. Type '() => string' is not assignable to type '(s: string) => number'. - Type 'string' is not assignable to type 'number'. + Signature '(s: string): number' has no corresponding signature in '() => string' + Type 'string' is not assignable to type 'number'. tests/cases/compiler/incompatibleTypes.ts(49,7): error TS2345: Argument of type '{ e: number; f: number; }' is not assignable to parameter of type '{ c: { b: string; }; d: string; }'. Object literal may only specify known properties, and 'e' does not exist in type '{ c: { b: string; }; d: string; }'. tests/cases/compiler/incompatibleTypes.ts(66,47): error TS2322: Type '{ e: number; f: number; }' is not assignable to type '{ a: { a: string; }; b: string; }'. Object literal may only specify known properties, and 'e' does not exist in type '{ a: { a: string; }; b: string; }'. tests/cases/compiler/incompatibleTypes.ts(72,5): error TS2322: Type 'number' is not assignable to type '() => string'. + Signature '(): string' has no corresponding signature in 'Number' tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => number' is not assignable to type '() => any'. + Signature '(): any' has no corresponding signature in '(a: any) => number' ==== tests/cases/compiler/incompatibleTypes.ts (9 errors) ==== @@ -36,7 +41,8 @@ tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => !!! error TS2420: Class 'C1' incorrectly implements interface 'IFoo1'. !!! error TS2420: Types of property 'p1' are incompatible. !!! error TS2420: Type '() => string' is not assignable to type '() => number'. -!!! error TS2420: Type 'string' is not assignable to type 'number'. +!!! error TS2420: Signature '(): number' has no corresponding signature in '() => string' +!!! error TS2420: Type 'string' is not assignable to type 'number'. public p1() { return "s"; } @@ -51,8 +57,9 @@ tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => !!! error TS2420: Class 'C2' incorrectly implements interface 'IFoo2'. !!! error TS2420: Types of property 'p1' are incompatible. !!! error TS2420: Type '(n: number) => number' is not assignable to type '(s: string) => number'. -!!! error TS2420: Types of parameters 'n' and 's' are incompatible. -!!! error TS2420: Type 'number' is not assignable to type 'string'. +!!! error TS2420: Signature '(s: string): number' has no corresponding signature in '(n: number) => number' +!!! error TS2420: Types of parameters 'n' and 's' are incompatible. +!!! error TS2420: Type 'number' is not assignable to type 'string'. public p1(n:number) { return 0; } @@ -93,7 +100,8 @@ tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => !!! error TS2345: Argument of type 'C1' is not assignable to parameter of type 'IFoo2'. !!! error TS2345: Types of property 'p1' are incompatible. !!! error TS2345: Type '() => string' is not assignable to type '(s: string) => number'. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Signature '(s: string): number' has no corresponding signature in '() => string' +!!! error TS2345: Type 'string' is not assignable to type 'number'. function of1(n: { a: { a: string; }; b: string; }): number; @@ -132,8 +140,10 @@ tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => var i1c1: { (): string; } = 5; ~~~~ !!! error TS2322: Type 'number' is not assignable to type '() => string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in 'Number' var fp1: () =>any = a => 0; ~~~ !!! error TS2322: Type '(a: any) => number' is not assignable to type '() => any'. +!!! error TS2322: Signature '(): any' has no corresponding signature in '(a: any) => number' \ No newline at end of file diff --git a/tests/baselines/reference/inheritance.errors.txt b/tests/baselines/reference/inheritance.errors.txt index c667e8b001e..eef06b4c961 100644 --- a/tests/baselines/reference/inheritance.errors.txt +++ b/tests/baselines/reference/inheritance.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/inheritance.ts(30,7): error TS2415: Class 'Baad' incorrectly extends base class 'Good'. Types of property 'g' are incompatible. Type '(n: number) => number' is not assignable to type '() => number'. + Signature '(): number' has no corresponding signature in '(n: number) => number' tests/cases/compiler/inheritance.ts(31,12): error TS2425: Class 'Good' defines instance member property 'f', but extended class 'Baad' defines it as instance member function. @@ -39,6 +40,7 @@ tests/cases/compiler/inheritance.ts(31,12): error TS2425: Class 'Good' defines i !!! error TS2415: Class 'Baad' incorrectly extends base class 'Good'. !!! error TS2415: Types of property 'g' are incompatible. !!! error TS2415: Type '(n: number) => number' is not assignable to type '() => number'. +!!! error TS2415: Signature '(): number' has no corresponding signature in '(n: number) => number' public f(): number { return 0; } ~ !!! error TS2425: Class 'Good' defines instance member property 'f', but extended class 'Baad' defines it as instance member function. diff --git a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt index 6fde83e08b0..25dd3c2ef3b 100644 --- a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt +++ b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(7,7): error TS2415: Class 'b' incorrectly extends base class 'a'. Types of property 'x' are incompatible. Type 'string' is not assignable to type '() => string'. + Signature '(): string' has no corresponding signature in 'String' tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(8,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(8,9): error TS2423: Class 'a' defines instance member function 'x', but extended class 'b' defines it as instance member accessor. tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(11,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. @@ -18,6 +19,7 @@ tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(11,9): error T !!! error TS2415: Class 'b' incorrectly extends base class 'a'. !!! error TS2415: Types of property 'x' are incompatible. !!! error TS2415: Type 'string' is not assignable to type '() => string'. +!!! error TS2415: Signature '(): string' has no corresponding signature in 'String' get x() { ~ !!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. diff --git a/tests/baselines/reference/inheritanceStaticAccessorOverridingMethod.errors.txt b/tests/baselines/reference/inheritanceStaticAccessorOverridingMethod.errors.txt index 38b1ed61fac..646047f8633 100644 --- a/tests/baselines/reference/inheritanceStaticAccessorOverridingMethod.errors.txt +++ b/tests/baselines/reference/inheritanceStaticAccessorOverridingMethod.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/inheritanceStaticAccessorOverridingMethod.ts(7,7): error TS2417: Class static side 'typeof b' incorrectly extends base class static side 'typeof a'. Types of property 'x' are incompatible. Type 'string' is not assignable to type '() => string'. + Signature '(): string' has no corresponding signature in 'String' tests/cases/compiler/inheritanceStaticAccessorOverridingMethod.ts(8,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/inheritanceStaticAccessorOverridingMethod.ts(11,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. @@ -17,6 +18,7 @@ tests/cases/compiler/inheritanceStaticAccessorOverridingMethod.ts(11,16): error !!! error TS2417: Class static side 'typeof b' incorrectly extends base class static side 'typeof a'. !!! error TS2417: Types of property 'x' are incompatible. !!! error TS2417: Type 'string' is not assignable to type '() => string'. +!!! error TS2417: Signature '(): string' has no corresponding signature in 'String' static get x() { ~ !!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. diff --git a/tests/baselines/reference/inheritanceStaticPropertyOverridingMethod.errors.txt b/tests/baselines/reference/inheritanceStaticPropertyOverridingMethod.errors.txt index 22748fda783..5e983c0d806 100644 --- a/tests/baselines/reference/inheritanceStaticPropertyOverridingMethod.errors.txt +++ b/tests/baselines/reference/inheritanceStaticPropertyOverridingMethod.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/inheritanceStaticPropertyOverridingMethod.ts(7,7): error TS2417: Class static side 'typeof b' incorrectly extends base class static side 'typeof a'. Types of property 'x' are incompatible. Type 'string' is not assignable to type '() => string'. + Signature '(): string' has no corresponding signature in 'String' ==== tests/cases/compiler/inheritanceStaticPropertyOverridingMethod.ts (1 errors) ==== @@ -15,5 +16,6 @@ tests/cases/compiler/inheritanceStaticPropertyOverridingMethod.ts(7,7): error TS !!! error TS2417: Class static side 'typeof b' incorrectly extends base class static side 'typeof a'. !!! error TS2417: Types of property 'x' are incompatible. !!! error TS2417: Type 'string' is not assignable to type '() => string'. +!!! error TS2417: Signature '(): string' has no corresponding signature in 'String' static x: string; } \ No newline at end of file diff --git a/tests/baselines/reference/inheritedModuleMembersForClodule.errors.txt b/tests/baselines/reference/inheritedModuleMembersForClodule.errors.txt index 0b7e00d95ce..6c67e28e2f9 100644 --- a/tests/baselines/reference/inheritedModuleMembersForClodule.errors.txt +++ b/tests/baselines/reference/inheritedModuleMembersForClodule.errors.txt @@ -1,7 +1,8 @@ tests/cases/compiler/inheritedModuleMembersForClodule.ts(7,7): error TS2417: Class static side 'typeof D' incorrectly extends base class static side 'typeof C'. Types of property 'foo' are incompatible. Type '() => number' is not assignable to type '() => string'. - Type 'number' is not assignable to type 'string'. + Signature '(): string' has no corresponding signature in '() => number' + Type 'number' is not assignable to type 'string'. ==== tests/cases/compiler/inheritedModuleMembersForClodule.ts (1 errors) ==== @@ -16,7 +17,8 @@ tests/cases/compiler/inheritedModuleMembersForClodule.ts(7,7): error TS2417: Cla !!! error TS2417: Class static side 'typeof D' incorrectly extends base class static side 'typeof C'. !!! error TS2417: Types of property 'foo' are incompatible. !!! error TS2417: Type '() => number' is not assignable to type '() => string'. -!!! error TS2417: Type 'number' is not assignable to type 'string'. +!!! error TS2417: Signature '(): string' has no corresponding signature in '() => number' +!!! error TS2417: Type 'number' is not assignable to type 'string'. } module D { diff --git a/tests/baselines/reference/instanceMemberAssignsToClassPrototype.errors.txt b/tests/baselines/reference/instanceMemberAssignsToClassPrototype.errors.txt index 080316f8daf..cca68d4ef96 100644 --- a/tests/baselines/reference/instanceMemberAssignsToClassPrototype.errors.txt +++ b/tests/baselines/reference/instanceMemberAssignsToClassPrototype.errors.txt @@ -1,5 +1,6 @@ tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/instanceMemberAssignsToClassPrototype.ts(7,9): error TS2322: Type '() => void' is not assignable to type '(x: number) => number'. - Type 'void' is not assignable to type 'number'. + Signature '(x: number): number' has no corresponding signature in '() => void' + Type 'void' is not assignable to type 'number'. ==== tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/instanceMemberAssignsToClassPrototype.ts (1 errors) ==== @@ -12,7 +13,8 @@ tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclara C.prototype.bar = () => { } // error ~~~~~~~~~~~~~~~ !!! error TS2322: Type '() => void' is not assignable to type '(x: number) => number'. -!!! error TS2322: Type 'void' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): number' has no corresponding signature in '() => void' +!!! error TS2322: Type 'void' is not assignable to type 'number'. C.prototype.bar = (x) => x; // ok C.prototype.bar = (x: number) => 1; // ok return 1; diff --git a/tests/baselines/reference/intTypeCheck.errors.txt b/tests/baselines/reference/intTypeCheck.errors.txt index e48d1b1dc73..d9f3f021887 100644 --- a/tests/baselines/reference/intTypeCheck.errors.txt +++ b/tests/baselines/reference/intTypeCheck.errors.txt @@ -14,18 +14,27 @@ tests/cases/compiler/intTypeCheck.ts(106,20): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(106,21): error TS2304: Cannot find name 'i1'. tests/cases/compiler/intTypeCheck.ts(107,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. tests/cases/compiler/intTypeCheck.ts(112,5): error TS2322: Type '{}' is not assignable to type 'i2'. + Signature '(): any' has no corresponding signature in '{}' tests/cases/compiler/intTypeCheck.ts(113,5): error TS2322: Type 'Object' is not assignable to type 'i2'. + Signature '(): any' has no corresponding signature in 'Object' tests/cases/compiler/intTypeCheck.ts(114,17): error TS2350: Only a void function can be called with the 'new' keyword. tests/cases/compiler/intTypeCheck.ts(115,5): error TS2322: Type 'Base' is not assignable to type 'i2'. + Signature '(): any' has no corresponding signature in 'Base' tests/cases/compiler/intTypeCheck.ts(120,5): error TS2322: Type 'boolean' is not assignable to type 'i2'. + Signature '(): any' has no corresponding signature in 'Boolean' tests/cases/compiler/intTypeCheck.ts(120,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(120,22): error TS2304: Cannot find name 'i2'. tests/cases/compiler/intTypeCheck.ts(121,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. tests/cases/compiler/intTypeCheck.ts(126,5): error TS2322: Type '{}' is not assignable to type 'i3'. + Signature 'new (): any' has no corresponding signature in '{}' tests/cases/compiler/intTypeCheck.ts(127,5): error TS2322: Type 'Object' is not assignable to type 'i3'. + Signature 'new (): any' has no corresponding signature in 'Object' tests/cases/compiler/intTypeCheck.ts(129,5): error TS2322: Type 'Base' is not assignable to type 'i3'. + Signature 'new (): any' has no corresponding signature in 'Base' tests/cases/compiler/intTypeCheck.ts(131,5): error TS2322: Type '() => void' is not assignable to type 'i3'. + Signature 'new (): any' has no corresponding signature in '() => void' tests/cases/compiler/intTypeCheck.ts(134,5): error TS2322: Type 'boolean' is not assignable to type 'i3'. + Signature 'new (): any' has no corresponding signature in 'Boolean' tests/cases/compiler/intTypeCheck.ts(134,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(134,22): error TS2304: Cannot find name 'i3'. tests/cases/compiler/intTypeCheck.ts(135,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. @@ -50,20 +59,30 @@ tests/cases/compiler/intTypeCheck.ts(162,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(162,22): error TS2304: Cannot find name 'i5'. tests/cases/compiler/intTypeCheck.ts(163,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. tests/cases/compiler/intTypeCheck.ts(168,5): error TS2322: Type '{}' is not assignable to type 'i6'. + Signature '(): any' has no corresponding signature in '{}' tests/cases/compiler/intTypeCheck.ts(169,5): error TS2322: Type 'Object' is not assignable to type 'i6'. + Signature '(): any' has no corresponding signature in 'Object' tests/cases/compiler/intTypeCheck.ts(170,17): error TS2350: Only a void function can be called with the 'new' keyword. tests/cases/compiler/intTypeCheck.ts(171,5): error TS2322: Type 'Base' is not assignable to type 'i6'. + Signature '(): any' has no corresponding signature in 'Base' tests/cases/compiler/intTypeCheck.ts(173,5): error TS2322: Type '() => void' is not assignable to type 'i6'. - Type 'void' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => void' + Type 'void' is not assignable to type 'number'. tests/cases/compiler/intTypeCheck.ts(176,5): error TS2322: Type 'boolean' is not assignable to type 'i6'. + Signature '(): any' has no corresponding signature in 'Boolean' tests/cases/compiler/intTypeCheck.ts(176,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(176,22): error TS2304: Cannot find name 'i6'. tests/cases/compiler/intTypeCheck.ts(177,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. tests/cases/compiler/intTypeCheck.ts(182,5): error TS2322: Type '{}' is not assignable to type 'i7'. + Signature 'new (): any' has no corresponding signature in '{}' tests/cases/compiler/intTypeCheck.ts(183,5): error TS2322: Type 'Object' is not assignable to type 'i7'. + Signature 'new (): any' has no corresponding signature in 'Object' tests/cases/compiler/intTypeCheck.ts(185,17): error TS2352: Neither type 'Base' nor type 'i7' is assignable to the other. + Signature 'new (): any' has no corresponding signature in 'Base' tests/cases/compiler/intTypeCheck.ts(187,5): error TS2322: Type '() => void' is not assignable to type 'i7'. + Signature 'new (): any' has no corresponding signature in '() => void' tests/cases/compiler/intTypeCheck.ts(190,5): error TS2322: Type 'boolean' is not assignable to type 'i7'. + Signature 'new (): any' has no corresponding signature in 'Boolean' tests/cases/compiler/intTypeCheck.ts(190,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(190,22): error TS2304: Cannot find name 'i7'. tests/cases/compiler/intTypeCheck.ts(191,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. @@ -216,15 +235,18 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj12: i2 = {}; ~~~~~ !!! error TS2322: Type '{}' is not assignable to type 'i2'. +!!! error TS2322: Signature '(): any' has no corresponding signature in '{}' var obj13: i2 = new Object(); ~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i2'. +!!! error TS2322: Signature '(): any' has no corresponding signature in 'Object' var obj14: i2 = new obj11; ~~~~~~~~~ !!! error TS2350: Only a void function can be called with the 'new' keyword. var obj15: i2 = new Base; ~~~~~ !!! error TS2322: Type 'Base' is not assignable to type 'i2'. +!!! error TS2322: Signature '(): any' has no corresponding signature in 'Base' var obj16: i2 = null; var obj17: i2 = function ():any { return 0; }; //var obj18: i2 = function foo() { }; @@ -232,6 +254,7 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj20: i2 = new anyVar; ~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i2'. +!!! error TS2322: Signature '(): any' has no corresponding signature in 'Boolean' ~ !!! error TS1109: Expression expected. ~~ @@ -246,22 +269,27 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj23: i3 = {}; ~~~~~ !!! error TS2322: Type '{}' is not assignable to type 'i3'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in '{}' var obj24: i3 = new Object(); ~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i3'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Object' var obj25: i3 = new obj22; var obj26: i3 = new Base; ~~~~~ !!! error TS2322: Type 'Base' is not assignable to type 'i3'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Base' var obj27: i3 = null; var obj28: i3 = function () { }; ~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'i3'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in '() => void' //var obj29: i3 = function foo() { }; var obj30: i3 = anyVar; var obj31: i3 = new anyVar; ~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i3'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Boolean' ~ !!! error TS1109: Expression expected. ~~ @@ -338,25 +366,30 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj56: i6 = {}; ~~~~~ !!! error TS2322: Type '{}' is not assignable to type 'i6'. +!!! error TS2322: Signature '(): any' has no corresponding signature in '{}' var obj57: i6 = new Object(); ~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i6'. +!!! error TS2322: Signature '(): any' has no corresponding signature in 'Object' var obj58: i6 = new obj55; ~~~~~~~~~ !!! error TS2350: Only a void function can be called with the 'new' keyword. var obj59: i6 = new Base; ~~~~~ !!! error TS2322: Type 'Base' is not assignable to type 'i6'. +!!! error TS2322: Signature '(): any' has no corresponding signature in 'Base' var obj60: i6 = null; var obj61: i6 = function () { }; ~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'i6'. -!!! error TS2322: Type 'void' is not assignable to type 'number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '() => void' +!!! error TS2322: Type 'void' is not assignable to type 'number'. //var obj62: i6 = function foo() { }; var obj63: i6 = anyVar; var obj64: i6 = new anyVar; ~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i6'. +!!! error TS2322: Signature '(): any' has no corresponding signature in 'Boolean' ~ !!! error TS1109: Expression expected. ~~ @@ -371,22 +404,27 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj67: i7 = {}; ~~~~~ !!! error TS2322: Type '{}' is not assignable to type 'i7'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in '{}' var obj68: i7 = new Object(); ~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i7'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Object' var obj69: i7 = new obj66; var obj70: i7 = new Base; ~~~~~~~~~~~~ !!! error TS2352: Neither type 'Base' nor type 'i7' is assignable to the other. +!!! error TS2352: Signature 'new (): any' has no corresponding signature in 'Base' var obj71: i7 = null; var obj72: i7 = function () { }; ~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'i7'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in '() => void' //var obj73: i7 = function foo() { }; var obj74: i7 = anyVar; var obj75: i7 = new anyVar; ~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i7'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Boolean' ~ !!! error TS1109: Expression expected. ~~ diff --git a/tests/baselines/reference/interfaceAssignmentCompat.errors.txt b/tests/baselines/reference/interfaceAssignmentCompat.errors.txt index 237358b42de..a1198d9fd37 100644 --- a/tests/baselines/reference/interfaceAssignmentCompat.errors.txt +++ b/tests/baselines/reference/interfaceAssignmentCompat.errors.txt @@ -1,7 +1,8 @@ tests/cases/compiler/interfaceAssignmentCompat.ts(32,18): error TS2345: Argument of type '(a: IFrenchEye, b: IFrenchEye) => number' is not assignable to parameter of type '(a: IEye, b: IEye) => number'. - Types of parameters 'a' and 'a' are incompatible. - Type 'IFrenchEye' is not assignable to type 'IEye'. - Property 'color' is missing in type 'IFrenchEye'. + Signature '(a: IEye, b: IEye): number' has no corresponding signature in '(a: IFrenchEye, b: IFrenchEye) => number' + Types of parameters 'a' and 'a' are incompatible. + Type 'IFrenchEye' is not assignable to type 'IEye'. + Property 'color' is missing in type 'IFrenchEye'. tests/cases/compiler/interfaceAssignmentCompat.ts(37,29): error TS2339: Property '_map' does not exist on type 'typeof Color'. tests/cases/compiler/interfaceAssignmentCompat.ts(42,13): error TS2322: Type 'IEye' is not assignable to type 'IFrenchEye'. Property 'coleur' is missing in type 'IEye'. @@ -44,9 +45,10 @@ tests/cases/compiler/interfaceAssignmentCompat.ts(44,9): error TS2322: Type 'IEy x=x.sort(CompareYeux); // parameter mismatch ~~~~~~~~~~~ !!! error TS2345: Argument of type '(a: IFrenchEye, b: IFrenchEye) => number' is not assignable to parameter of type '(a: IEye, b: IEye) => number'. -!!! error TS2345: Types of parameters 'a' and 'a' are incompatible. -!!! error TS2345: Type 'IFrenchEye' is not assignable to type 'IEye'. -!!! error TS2345: Property 'color' is missing in type 'IFrenchEye'. +!!! error TS2345: Signature '(a: IEye, b: IEye): number' has no corresponding signature in '(a: IFrenchEye, b: IFrenchEye) => number' +!!! error TS2345: Types of parameters 'a' and 'a' are incompatible. +!!! error TS2345: Type 'IFrenchEye' is not assignable to type 'IEye'. +!!! error TS2345: Property 'color' is missing in type 'IFrenchEye'. // type of z inferred from specialized array type var z=x.sort(CompareEyes); // ok diff --git a/tests/baselines/reference/interfaceImplementation1.errors.txt b/tests/baselines/reference/interfaceImplementation1.errors.txt index 45b011c6929..826e5650c83 100644 --- a/tests/baselines/reference/interfaceImplementation1.errors.txt +++ b/tests/baselines/reference/interfaceImplementation1.errors.txt @@ -3,6 +3,7 @@ tests/cases/compiler/interfaceImplementation1.ts(12,7): error TS2420: Class 'C1' tests/cases/compiler/interfaceImplementation1.ts(12,7): error TS2420: Class 'C1' incorrectly implements interface 'I2'. Property 'iFn' is private in type 'C1' but not in type 'I2'. tests/cases/compiler/interfaceImplementation1.ts(34,5): error TS2322: Type '() => C2' is not assignable to type 'I4'. + Signature 'new (): I3' has no corresponding signature in '() => C2' ==== tests/cases/compiler/interfaceImplementation1.ts (3 errors) ==== @@ -48,6 +49,7 @@ tests/cases/compiler/interfaceImplementation1.ts(34,5): error TS2322: Type '() = var a:I4 = function(){ ~ !!! error TS2322: Type '() => C2' is not assignable to type 'I4'. +!!! error TS2322: Signature 'new (): I3' has no corresponding signature in '() => C2' return new C2(); } new a(); diff --git a/tests/baselines/reference/interfaceImplementation7.errors.txt b/tests/baselines/reference/interfaceImplementation7.errors.txt index b297015dfbe..531398ba532 100644 --- a/tests/baselines/reference/interfaceImplementation7.errors.txt +++ b/tests/baselines/reference/interfaceImplementation7.errors.txt @@ -3,8 +3,9 @@ tests/cases/compiler/interfaceImplementation7.ts(4,11): error TS2320: Interface tests/cases/compiler/interfaceImplementation7.ts(7,7): error TS2420: Class 'C1' incorrectly implements interface 'i4'. Types of property 'name' are incompatible. Type '() => string' is not assignable to type '() => { s: string; n: number; }'. - Type 'string' is not assignable to type '{ s: string; n: number; }'. - Property 's' is missing in type 'String'. + Signature '(): { s: string; n: number; }' has no corresponding signature in '() => string' + Type 'string' is not assignable to type '{ s: string; n: number; }'. + Property 's' is missing in type 'String'. ==== tests/cases/compiler/interfaceImplementation7.ts (2 errors) ==== @@ -22,8 +23,9 @@ tests/cases/compiler/interfaceImplementation7.ts(7,7): error TS2420: Class 'C1' !!! error TS2420: Class 'C1' incorrectly implements interface 'i4'. !!! error TS2420: Types of property 'name' are incompatible. !!! error TS2420: Type '() => string' is not assignable to type '() => { s: string; n: number; }'. -!!! error TS2420: Type 'string' is not assignable to type '{ s: string; n: number; }'. -!!! error TS2420: Property 's' is missing in type 'String'. +!!! error TS2420: Signature '(): { s: string; n: number; }' has no corresponding signature in '() => string' +!!! error TS2420: Type 'string' is not assignable to type '{ s: string; n: number; }'. +!!! error TS2420: Property 's' is missing in type 'String'. public name(): string { return ""; } } \ No newline at end of file diff --git a/tests/baselines/reference/invalidBooleanAssignments.errors.txt b/tests/baselines/reference/invalidBooleanAssignments.errors.txt index 84ced226113..ddedc16f28d 100644 --- a/tests/baselines/reference/invalidBooleanAssignments.errors.txt +++ b/tests/baselines/reference/invalidBooleanAssignments.errors.txt @@ -7,6 +7,7 @@ tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(12 tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(15,5): error TS2322: Type 'boolean' is not assignable to type 'I'. Property 'bar' is missing in type 'Boolean'. tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(17,5): error TS2322: Type 'boolean' is not assignable to type '() => string'. + Signature '(): string' has no corresponding signature in 'Boolean' tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(21,1): error TS2364: Invalid left-hand side of assignment expression. tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(24,5): error TS2322: Type 'boolean' is not assignable to type 'T'. tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(26,1): error TS2364: Invalid left-hand side of assignment expression. @@ -46,6 +47,7 @@ tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(26 var h: { (): string } = x; ~ !!! error TS2322: Type 'boolean' is not assignable to type '() => string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in 'Boolean' var h2: { toString(): string } = x; // no error module M { export var a = 1; } diff --git a/tests/baselines/reference/iteratorSpreadInArray9.errors.txt b/tests/baselines/reference/iteratorSpreadInArray9.errors.txt index 90b8bdbeb46..cc32db8a373 100644 --- a/tests/baselines/reference/iteratorSpreadInArray9.errors.txt +++ b/tests/baselines/reference/iteratorSpreadInArray9.errors.txt @@ -1,11 +1,13 @@ tests/cases/conformance/es6/spread/iteratorSpreadInArray9.ts(1,17): error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterable'. Types of property '[Symbol.iterator]' are incompatible. Type '() => SymbolIterator' is not assignable to type '() => Iterator'. - Type 'SymbolIterator' is not assignable to type 'Iterator'. - Types of property 'next' are incompatible. - Type '() => { value: symbol; }' is not assignable to type '(value?: any) => IteratorResult'. - Type '{ value: symbol; }' is not assignable to type 'IteratorResult'. - Property 'done' is missing in type '{ value: symbol; }'. + Signature '(): Iterator' has no corresponding signature in '() => SymbolIterator' + Type 'SymbolIterator' is not assignable to type 'Iterator'. + Types of property 'next' are incompatible. + Type '() => { value: symbol; }' is not assignable to type '(value?: any) => IteratorResult'. + Signature '(value?: any): IteratorResult' has no corresponding signature in '() => { value: symbol; }' + Type '{ value: symbol; }' is not assignable to type 'IteratorResult'. + Property 'done' is missing in type '{ value: symbol; }'. ==== tests/cases/conformance/es6/spread/iteratorSpreadInArray9.ts (1 errors) ==== @@ -14,11 +16,13 @@ tests/cases/conformance/es6/spread/iteratorSpreadInArray9.ts(1,17): error TS2322 !!! error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterable'. !!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. !!! error TS2322: Type '() => SymbolIterator' is not assignable to type '() => Iterator'. -!!! error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterator'. -!!! error TS2322: Types of property 'next' are incompatible. -!!! error TS2322: Type '() => { value: symbol; }' is not assignable to type '(value?: any) => IteratorResult'. -!!! error TS2322: Type '{ value: symbol; }' is not assignable to type 'IteratorResult'. -!!! error TS2322: Property 'done' is missing in type '{ value: symbol; }'. +!!! error TS2322: Signature '(): Iterator' has no corresponding signature in '() => SymbolIterator' +!!! error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterator'. +!!! error TS2322: Types of property 'next' are incompatible. +!!! error TS2322: Type '() => { value: symbol; }' is not assignable to type '(value?: any) => IteratorResult'. +!!! error TS2322: Signature '(value?: any): IteratorResult' has no corresponding signature in '() => { value: symbol; }' +!!! error TS2322: Type '{ value: symbol; }' is not assignable to type 'IteratorResult'. +!!! error TS2322: Property 'done' is missing in type '{ value: symbol; }'. class SymbolIterator { next() { diff --git a/tests/baselines/reference/lambdaArgCrash.errors.txt b/tests/baselines/reference/lambdaArgCrash.errors.txt index bf1c4dd01bd..658534334f5 100644 --- a/tests/baselines/reference/lambdaArgCrash.errors.txt +++ b/tests/baselines/reference/lambdaArgCrash.errors.txt @@ -1,5 +1,6 @@ tests/cases/compiler/lambdaArgCrash.ts(27,25): error TS2304: Cannot find name 'ItemSet'. tests/cases/compiler/lambdaArgCrash.ts(29,14): error TS2345: Argument of type '(items: any) => void' is not assignable to parameter of type '() => any'. + Signature '(): any' has no corresponding signature in '(items: any) => void' ==== tests/cases/compiler/lambdaArgCrash.ts (2 errors) ==== @@ -36,6 +37,7 @@ tests/cases/compiler/lambdaArgCrash.ts(29,14): error TS2345: Argument of type '( super.add(listener); ~~~~~~~~ !!! error TS2345: Argument of type '(items: any) => void' is not assignable to parameter of type '() => any'. +!!! error TS2345: Signature '(): any' has no corresponding signature in '(items: any) => void' } diff --git a/tests/baselines/reference/multipleInheritance.errors.txt b/tests/baselines/reference/multipleInheritance.errors.txt index 19ef1e755e3..def2fcbd813 100644 --- a/tests/baselines/reference/multipleInheritance.errors.txt +++ b/tests/baselines/reference/multipleInheritance.errors.txt @@ -3,6 +3,7 @@ tests/cases/compiler/multipleInheritance.ts(18,21): error TS1174: Classes can on tests/cases/compiler/multipleInheritance.ts(34,7): error TS2415: Class 'Baad' incorrectly extends base class 'Good'. Types of property 'g' are incompatible. Type '(n: number) => number' is not assignable to type '() => number'. + Signature '(): number' has no corresponding signature in '(n: number) => number' tests/cases/compiler/multipleInheritance.ts(35,12): error TS2425: Class 'Good' defines instance member property 'f', but extended class 'Baad' defines it as instance member function. @@ -49,6 +50,7 @@ tests/cases/compiler/multipleInheritance.ts(35,12): error TS2425: Class 'Good' d !!! error TS2415: Class 'Baad' incorrectly extends base class 'Good'. !!! error TS2415: Types of property 'g' are incompatible. !!! error TS2415: Type '(n: number) => number' is not assignable to type '() => number'. +!!! error TS2415: Signature '(): number' has no corresponding signature in '(n: number) => number' public f(): number { return 0; } ~ !!! error TS2425: Class 'Good' defines instance member property 'f', but extended class 'Baad' defines it as instance member function. diff --git a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.errors.txt b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.errors.txt index c4ee3ea17b2..6bc3ec86f72 100644 --- a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.errors.txt +++ b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.errors.txt @@ -1,15 +1,18 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat.ts(7,1): error TS2322: Type 'I' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type '() => void' is not assignable to type '() => string'. - Type 'void' is not assignable to type 'string'. + Signature '(): string' has no corresponding signature in '() => void' + Type 'void' is not assignable to type 'string'. tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat.ts(14,1): error TS2322: Type 'C' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type '() => void' is not assignable to type '() => string'. - Type 'void' is not assignable to type 'string'. + Signature '(): string' has no corresponding signature in '() => void' + Type 'void' is not assignable to type 'string'. tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat.ts(20,1): error TS2322: Type '{ toString: () => void; }' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type '() => void' is not assignable to type '() => string'. - Type 'void' is not assignable to type 'string'. + Signature '(): string' has no corresponding signature in '() => void' + Type 'void' is not assignable to type 'string'. ==== tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat.ts (3 errors) ==== @@ -24,7 +27,8 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentC !!! error TS2322: Type 'I' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => void' is not assignable to type '() => string'. -!!! error TS2322: Type 'void' is not assignable to type 'string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in '() => void' +!!! error TS2322: Type 'void' is not assignable to type 'string'. i = o; // ok class C { @@ -36,7 +40,8 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentC !!! error TS2322: Type 'C' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => void' is not assignable to type '() => string'. -!!! error TS2322: Type 'void' is not assignable to type 'string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in '() => void' +!!! error TS2322: Type 'void' is not assignable to type 'string'. c = o; // ok var a = { @@ -47,5 +52,6 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentC !!! error TS2322: Type '{ toString: () => void; }' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => void' is not assignable to type '() => string'. -!!! error TS2322: Type 'void' is not assignable to type 'string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in '() => void' +!!! error TS2322: Type 'void' is not assignable to type 'string'. a = o; // ok \ No newline at end of file diff --git a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.errors.txt b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.errors.txt index a88796b390e..174707a8d22 100644 --- a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.errors.txt +++ b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.errors.txt @@ -1,23 +1,28 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts(7,1): error TS2322: Type 'I' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type '() => number' is not assignable to type '() => string'. - Type 'number' is not assignable to type 'string'. + Signature '(): string' has no corresponding signature in '() => number' + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts(8,1): error TS2322: Type 'Object' is not assignable to type 'I'. Types of property 'toString' are incompatible. Type '() => string' is not assignable to type '() => number'. - Type 'string' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => string' + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts(14,1): error TS2322: Type 'C' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type '() => number' is not assignable to type '() => string'. - Type 'number' is not assignable to type 'string'. + Signature '(): string' has no corresponding signature in '() => number' + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts(15,1): error TS2322: Type 'Object' is not assignable to type 'C'. Types of property 'toString' are incompatible. Type '() => string' is not assignable to type '() => number'. - Type 'string' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => string' + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts(20,1): error TS2322: Type '{ toString: () => void; }' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type '() => void' is not assignable to type '() => string'. - Type 'void' is not assignable to type 'string'. + Signature '(): string' has no corresponding signature in '() => void' + Type 'void' is not assignable to type 'string'. ==== tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts (5 errors) ==== @@ -32,13 +37,15 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentC !!! error TS2322: Type 'I' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => number' is not assignable to type '() => string'. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in '() => number' +!!! error TS2322: Type 'number' is not assignable to type 'string'. i = o; // error ~ !!! error TS2322: Type 'Object' is not assignable to type 'I'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => string' is not assignable to type '() => number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '() => string' +!!! error TS2322: Type 'string' is not assignable to type 'number'. class C { toString(): number { return 1; } @@ -49,13 +56,15 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentC !!! error TS2322: Type 'C' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => number' is not assignable to type '() => string'. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in '() => number' +!!! error TS2322: Type 'number' is not assignable to type 'string'. c = o; // error ~ !!! error TS2322: Type 'Object' is not assignable to type 'C'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => string' is not assignable to type '() => number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '() => string' +!!! error TS2322: Type 'string' is not assignable to type 'number'. var a = { toString: () => { } @@ -65,5 +74,6 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentC !!! error TS2322: Type '{ toString: () => void; }' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => void' is not assignable to type '() => string'. -!!! error TS2322: Type 'void' is not assignable to type 'string'. +!!! error TS2322: Signature '(): string' has no corresponding signature in '() => void' +!!! error TS2322: Type 'void' is not assignable to type 'string'. a = o; // ok \ No newline at end of file diff --git a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt index 30b40f431a7..6767d053498 100644 --- a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt +++ b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt @@ -1,5 +1,7 @@ tests/cases/conformance/types/members/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.ts(8,1): error TS2322: Type 'Object' is not assignable to type 'I'. + Signature '(): void' has no corresponding signature in 'Object' tests/cases/conformance/types/members/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.ts(14,1): error TS2322: Type 'Object' is not assignable to type '() => void'. + Signature '(): void' has no corresponding signature in 'Object' ==== tests/cases/conformance/types/members/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.ts (2 errors) ==== @@ -13,6 +15,7 @@ tests/cases/conformance/types/members/objectTypeWithCallSignatureHidingMembersOf i = f; ~ !!! error TS2322: Type 'Object' is not assignable to type 'I'. +!!! error TS2322: Signature '(): void' has no corresponding signature in 'Object' var a: { (): void @@ -20,4 +23,5 @@ tests/cases/conformance/types/members/objectTypeWithCallSignatureHidingMembersOf f = a; a = f; ~ -!!! error TS2322: Type 'Object' is not assignable to type '() => void'. \ No newline at end of file +!!! error TS2322: Type 'Object' is not assignable to type '() => void'. +!!! error TS2322: Signature '(): void' has no corresponding signature in 'Object' \ No newline at end of file diff --git a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt index 0faba936715..92fdf725efe 100644 --- a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt +++ b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt @@ -1,5 +1,7 @@ tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.ts(8,1): error TS2322: Type 'Object' is not assignable to type 'I'. + Signature 'new (): any' has no corresponding signature in 'Object' tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.ts(14,1): error TS2322: Type 'Object' is not assignable to type 'new () => any'. + Signature 'new (): any' has no corresponding signature in 'Object' ==== tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.ts (2 errors) ==== @@ -13,6 +15,7 @@ tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMemb i = f; ~ !!! error TS2322: Type 'Object' is not assignable to type 'I'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Object' var a: { new(): any @@ -20,4 +23,5 @@ tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMemb f = a; a = f; ~ -!!! error TS2322: Type 'Object' is not assignable to type 'new () => any'. \ No newline at end of file +!!! error TS2322: Type 'Object' is not assignable to type 'new () => any'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Object' \ No newline at end of file diff --git a/tests/baselines/reference/optionalFunctionArgAssignability.errors.txt b/tests/baselines/reference/optionalFunctionArgAssignability.errors.txt index 52fb45e40d2..43d7b633052 100644 --- a/tests/baselines/reference/optionalFunctionArgAssignability.errors.txt +++ b/tests/baselines/reference/optionalFunctionArgAssignability.errors.txt @@ -1,8 +1,10 @@ tests/cases/compiler/optionalFunctionArgAssignability.ts(7,1): error TS2322: Type '(onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise' is not assignable to type '(onFulfill?: (value: string) => U, onReject?: (reason: any) => U) => Promise'. - Types of parameters 'onFulFill' and 'onFulfill' are incompatible. - Type '(value: number) => any' is not assignable to type '(value: string) => any'. - Types of parameters 'value' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(onFulfill?: (value: string) => U, onReject?: (reason: any) => U): Promise' has no corresponding signature in '(onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise' + Types of parameters 'onFulFill' and 'onFulfill' are incompatible. + Type '(value: number) => any' is not assignable to type '(value: string) => any'. + Signature '(value: string): any' has no corresponding signature in '(value: number) => any' + Types of parameters 'value' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/compiler/optionalFunctionArgAssignability.ts (1 errors) ==== @@ -15,8 +17,10 @@ tests/cases/compiler/optionalFunctionArgAssignability.ts(7,1): error TS2322: Typ a = b; // error because number is not assignable to string ~ !!! error TS2322: Type '(onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise' is not assignable to type '(onFulfill?: (value: string) => U, onReject?: (reason: any) => U) => Promise'. -!!! error TS2322: Types of parameters 'onFulFill' and 'onFulfill' are incompatible. -!!! error TS2322: Type '(value: number) => any' is not assignable to type '(value: string) => any'. -!!! error TS2322: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Signature '(onFulfill?: (value: string) => U, onReject?: (reason: any) => U): Promise' has no corresponding signature in '(onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise' +!!! error TS2322: Types of parameters 'onFulFill' and 'onFulfill' are incompatible. +!!! error TS2322: Type '(value: number) => any' is not assignable to type '(value: string) => any'. +!!! error TS2322: Signature '(value: string): any' has no corresponding signature in '(value: number) => any' +!!! error TS2322: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/optionalParamAssignmentCompat.errors.txt b/tests/baselines/reference/optionalParamAssignmentCompat.errors.txt index de02509d124..4d8f23385fd 100644 --- a/tests/baselines/reference/optionalParamAssignmentCompat.errors.txt +++ b/tests/baselines/reference/optionalParamAssignmentCompat.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/optionalParamAssignmentCompat.ts(10,5): error TS2322: Type '(p1?: string) => I1' is not assignable to type 'I1'. - Types of parameters 'p1' and 'p1' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(p1: number, p2: string): void' has no corresponding signature in '(p1?: string) => I1' + Types of parameters 'p1' and 'p1' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/optionalParamAssignmentCompat.ts (1 errors) ==== @@ -16,6 +17,7 @@ tests/cases/compiler/optionalParamAssignmentCompat.ts(10,5): error TS2322: Type var d: I1 = i2.m1; // should error ~ !!! error TS2322: Type '(p1?: string) => I1' is not assignable to type 'I1'. -!!! error TS2322: Types of parameters 'p1' and 'p1' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(p1: number, p2: string): void' has no corresponding signature in '(p1?: string) => I1' +!!! error TS2322: Types of parameters 'p1' and 'p1' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/optionalParamTypeComparison.errors.txt b/tests/baselines/reference/optionalParamTypeComparison.errors.txt index 98a07570c65..8e3237a80b1 100644 --- a/tests/baselines/reference/optionalParamTypeComparison.errors.txt +++ b/tests/baselines/reference/optionalParamTypeComparison.errors.txt @@ -1,9 +1,11 @@ tests/cases/compiler/optionalParamTypeComparison.ts(4,1): error TS2322: Type '(s: string, b?: boolean) => void' is not assignable to type '(s: string, n?: number) => void'. - Types of parameters 'b' and 'n' are incompatible. - Type 'boolean' is not assignable to type 'number'. + Signature '(s: string, n?: number): void' has no corresponding signature in '(s: string, b?: boolean) => void' + Types of parameters 'b' and 'n' are incompatible. + Type 'boolean' is not assignable to type 'number'. tests/cases/compiler/optionalParamTypeComparison.ts(5,1): error TS2322: Type '(s: string, n?: number) => void' is not assignable to type '(s: string, b?: boolean) => void'. - Types of parameters 'n' and 'b' are incompatible. - Type 'number' is not assignable to type 'boolean'. + Signature '(s: string, b?: boolean): void' has no corresponding signature in '(s: string, n?: number) => void' + Types of parameters 'n' and 'b' are incompatible. + Type 'number' is not assignable to type 'boolean'. ==== tests/cases/compiler/optionalParamTypeComparison.ts (2 errors) ==== @@ -13,10 +15,12 @@ tests/cases/compiler/optionalParamTypeComparison.ts(5,1): error TS2322: Type '(s f = g; ~ !!! error TS2322: Type '(s: string, b?: boolean) => void' is not assignable to type '(s: string, n?: number) => void'. -!!! error TS2322: Types of parameters 'b' and 'n' are incompatible. -!!! error TS2322: Type 'boolean' is not assignable to type 'number'. +!!! error TS2322: Signature '(s: string, n?: number): void' has no corresponding signature in '(s: string, b?: boolean) => void' +!!! error TS2322: Types of parameters 'b' and 'n' are incompatible. +!!! error TS2322: Type 'boolean' is not assignable to type 'number'. g = f; ~ !!! error TS2322: Type '(s: string, n?: number) => void' is not assignable to type '(s: string, b?: boolean) => void'. -!!! error TS2322: Types of parameters 'n' and 'b' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'boolean'. \ No newline at end of file +!!! error TS2322: Signature '(s: string, b?: boolean): void' has no corresponding signature in '(s: string, n?: number) => void' +!!! error TS2322: Types of parameters 'n' and 'b' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/overloadOnConstInheritance2.errors.txt b/tests/baselines/reference/overloadOnConstInheritance2.errors.txt index 4870106f474..3b8d8c80e58 100644 --- a/tests/baselines/reference/overloadOnConstInheritance2.errors.txt +++ b/tests/baselines/reference/overloadOnConstInheritance2.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/overloadOnConstInheritance2.ts(5,11): error TS2430: Interface 'Deriver' incorrectly extends interface 'Base'. Types of property 'addEventListener' are incompatible. Type '(x: "bar") => string' is not assignable to type '{ (x: string): any; (x: "foo"): string; }'. + Signature '(x: string): any' has no corresponding signature in '(x: "bar") => string' tests/cases/compiler/overloadOnConstInheritance2.ts(6,5): error TS2382: Specialized overload signature is not assignable to any non-specialized signature. @@ -14,6 +15,7 @@ tests/cases/compiler/overloadOnConstInheritance2.ts(6,5): error TS2382: Speciali !!! error TS2430: Interface 'Deriver' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'addEventListener' are incompatible. !!! error TS2430: Type '(x: "bar") => string' is not assignable to type '{ (x: string): any; (x: "foo"): string; }'. +!!! error TS2430: Signature '(x: string): any' has no corresponding signature in '(x: "bar") => string' addEventListener(x: 'bar'): string; // shouldn't need to redeclare the string overload ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2382: Specialized overload signature is not assignable to any non-specialized signature. diff --git a/tests/baselines/reference/overloadOnConstInheritance3.errors.txt b/tests/baselines/reference/overloadOnConstInheritance3.errors.txt index b338f9795d7..062db72ac51 100644 --- a/tests/baselines/reference/overloadOnConstInheritance3.errors.txt +++ b/tests/baselines/reference/overloadOnConstInheritance3.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/overloadOnConstInheritance3.ts(4,11): error TS2430: Interface 'Deriver' incorrectly extends interface 'Base'. Types of property 'addEventListener' are incompatible. Type '{ (x: "bar"): string; (x: "foo"): string; }' is not assignable to type '(x: string) => any'. + Signature '(x: string): any' has no corresponding signature in '{ (x: "bar"): string; (x: "foo"): string; }' tests/cases/compiler/overloadOnConstInheritance3.ts(6,5): error TS2382: Specialized overload signature is not assignable to any non-specialized signature. tests/cases/compiler/overloadOnConstInheritance3.ts(7,5): error TS2382: Specialized overload signature is not assignable to any non-specialized signature. @@ -14,6 +15,7 @@ tests/cases/compiler/overloadOnConstInheritance3.ts(7,5): error TS2382: Speciali !!! error TS2430: Interface 'Deriver' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'addEventListener' are incompatible. !!! error TS2430: Type '{ (x: "bar"): string; (x: "foo"): string; }' is not assignable to type '(x: string) => any'. +!!! error TS2430: Signature '(x: string): any' has no corresponding signature in '{ (x: "bar"): string; (x: "foo"): string; }' // shouldn't need to redeclare the string overload addEventListener(x: 'bar'): string; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/tests/baselines/reference/overloadResolutionOverCTLambda.errors.txt b/tests/baselines/reference/overloadResolutionOverCTLambda.errors.txt index 9fc11b681c7..54e43e0b248 100644 --- a/tests/baselines/reference/overloadResolutionOverCTLambda.errors.txt +++ b/tests/baselines/reference/overloadResolutionOverCTLambda.errors.txt @@ -1,5 +1,6 @@ tests/cases/compiler/overloadResolutionOverCTLambda.ts(2,5): error TS2345: Argument of type '(a: number) => number' is not assignable to parameter of type '(item: number) => boolean'. - Type 'number' is not assignable to type 'boolean'. + Signature '(item: number): boolean' has no corresponding signature in '(a: number) => number' + Type 'number' is not assignable to type 'boolean'. ==== tests/cases/compiler/overloadResolutionOverCTLambda.ts (1 errors) ==== @@ -7,4 +8,5 @@ tests/cases/compiler/overloadResolutionOverCTLambda.ts(2,5): error TS2345: Argum foo(a => a); // can not convert (number)=>bool to (number)=>number ~~~~~~ !!! error TS2345: Argument of type '(a: number) => number' is not assignable to parameter of type '(item: number) => boolean'. -!!! error TS2345: Type 'number' is not assignable to type 'boolean'. \ No newline at end of file +!!! error TS2345: Signature '(item: number): boolean' has no corresponding signature in '(a: number) => number' +!!! error TS2345: Type 'number' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.errors.txt b/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.errors.txt index 45c9f99b691..9658555f35b 100644 --- a/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.errors.txt +++ b/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.errors.txt @@ -4,9 +4,10 @@ tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(14,37): tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(16,5): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(16,38): error TS2344: Type 'D' does not satisfy the constraint 'A'. tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(18,27): error TS2345: Argument of type '(x: D) => G' is not assignable to parameter of type '(x: B) => any'. - Types of parameters 'x' and 'x' are incompatible. - Type 'D' is not assignable to type 'B'. - Property 'x' is missing in type 'D'. + Signature '(x: B): any' has no corresponding signature in '(x: D) => G' + Types of parameters 'x' and 'x' are incompatible. + Type 'D' is not assignable to type 'B'. + Property 'x' is missing in type 'D'. tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(19,14): error TS2344: Type 'D' does not satisfy the constraint 'A'. @@ -48,7 +49,8 @@ tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(19,14): }); ~ !!! error TS2345: Argument of type '(x: D) => G' is not assignable to parameter of type '(x: B) => any'. -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'D' is not assignable to type 'B'. -!!! error TS2345: Property 'x' is missing in type 'D'. +!!! error TS2345: Signature '(x: B): any' has no corresponding signature in '(x: D) => G' +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'D' is not assignable to type 'B'. +!!! error TS2345: Property 'x' is missing in type 'D'. \ No newline at end of file diff --git a/tests/baselines/reference/overloadsWithProvisionalErrors.errors.txt b/tests/baselines/reference/overloadsWithProvisionalErrors.errors.txt index daf057c9ebd..edc11299c9e 100644 --- a/tests/baselines/reference/overloadsWithProvisionalErrors.errors.txt +++ b/tests/baselines/reference/overloadsWithProvisionalErrors.errors.txt @@ -1,10 +1,12 @@ tests/cases/compiler/overloadsWithProvisionalErrors.ts(6,6): error TS2345: Argument of type '(s: string) => {}' is not assignable to parameter of type '(s: string) => { a: number; b: number; }'. - Type '{}' is not assignable to type '{ a: number; b: number; }'. - Property 'a' is missing in type '{}'. + Signature '(s: string): { a: number; b: number; }' has no corresponding signature in '(s: string) => {}' + Type '{}' is not assignable to type '{ a: number; b: number; }'. + Property 'a' is missing in type '{}'. tests/cases/compiler/overloadsWithProvisionalErrors.ts(7,17): error TS2304: Cannot find name 'blah'. tests/cases/compiler/overloadsWithProvisionalErrors.ts(8,6): error TS2345: Argument of type '(s: string) => { a: any; }' is not assignable to parameter of type '(s: string) => { a: number; b: number; }'. - Type '{ a: any; }' is not assignable to type '{ a: number; b: number; }'. - Property 'b' is missing in type '{ a: any; }'. + Signature '(s: string): { a: number; b: number; }' has no corresponding signature in '(s: string) => { a: any; }' + Type '{ a: any; }' is not assignable to type '{ a: number; b: number; }'. + Property 'b' is missing in type '{ a: any; }'. tests/cases/compiler/overloadsWithProvisionalErrors.ts(8,17): error TS2304: Cannot find name 'blah'. @@ -17,15 +19,17 @@ tests/cases/compiler/overloadsWithProvisionalErrors.ts(8,17): error TS2304: Cann func(s => ({})); // Error for no applicable overload (object type is missing a and b) ~~~~~~~~~ !!! error TS2345: Argument of type '(s: string) => {}' is not assignable to parameter of type '(s: string) => { a: number; b: number; }'. -!!! error TS2345: Type '{}' is not assignable to type '{ a: number; b: number; }'. -!!! error TS2345: Property 'a' is missing in type '{}'. +!!! error TS2345: Signature '(s: string): { a: number; b: number; }' has no corresponding signature in '(s: string) => {}' +!!! error TS2345: Type '{}' is not assignable to type '{ a: number; b: number; }'. +!!! error TS2345: Property 'a' is missing in type '{}'. func(s => ({ a: blah, b: 3 })); // Only error inside the function, but not outside (since it would be applicable if not for the provisional error) ~~~~ !!! error TS2304: Cannot find name 'blah'. func(s => ({ a: blah })); // Two errors here, one for blah not being defined, and one for the overload since it would not be applicable anyway ~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(s: string) => { a: any; }' is not assignable to parameter of type '(s: string) => { a: number; b: number; }'. -!!! error TS2345: Type '{ a: any; }' is not assignable to type '{ a: number; b: number; }'. -!!! error TS2345: Property 'b' is missing in type '{ a: any; }'. +!!! error TS2345: Signature '(s: string): { a: number; b: number; }' has no corresponding signature in '(s: string) => { a: any; }' +!!! error TS2345: Type '{ a: any; }' is not assignable to type '{ a: number; b: number; }'. +!!! error TS2345: Property 'b' is missing in type '{ a: any; }'. ~~~~ !!! error TS2304: Cannot find name 'blah'. \ No newline at end of file diff --git a/tests/baselines/reference/parseTypes.errors.txt b/tests/baselines/reference/parseTypes.errors.txt index baa5aaff738..c141b59e993 100644 --- a/tests/baselines/reference/parseTypes.errors.txt +++ b/tests/baselines/reference/parseTypes.errors.txt @@ -1,8 +1,11 @@ tests/cases/compiler/parseTypes.ts(9,1): error TS2322: Type '(s: string) => void' is not assignable to type '() => number'. + Signature '(): number' has no corresponding signature in '(s: string) => void' tests/cases/compiler/parseTypes.ts(10,1): error TS2322: Type '(s: string) => void' is not assignable to type '() => number'. + Signature '(): number' has no corresponding signature in '(s: string) => void' tests/cases/compiler/parseTypes.ts(11,1): error TS2322: Type '(s: string) => void' is not assignable to type '{ [x: number]: number; }'. Index signature is missing in type '(s: string) => void'. tests/cases/compiler/parseTypes.ts(12,1): error TS2322: Type '(s: string) => void' is not assignable to type 'new () => number'. + Signature 'new (): number' has no corresponding signature in '(s: string) => void' ==== tests/cases/compiler/parseTypes.ts (4 errors) ==== @@ -17,9 +20,11 @@ tests/cases/compiler/parseTypes.ts(12,1): error TS2322: Type '(s: string) => voi y=g; ~ !!! error TS2322: Type '(s: string) => void' is not assignable to type '() => number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '(s: string) => void' x=g; ~ !!! error TS2322: Type '(s: string) => void' is not assignable to type '() => number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '(s: string) => void' w=g; ~ !!! error TS2322: Type '(s: string) => void' is not assignable to type '{ [x: number]: number; }'. @@ -27,4 +32,5 @@ tests/cases/compiler/parseTypes.ts(12,1): error TS2322: Type '(s: string) => voi z=g; ~ !!! error TS2322: Type '(s: string) => void' is not assignable to type 'new () => number'. +!!! error TS2322: Signature 'new (): number' has no corresponding signature in '(s: string) => void' \ No newline at end of file diff --git a/tests/baselines/reference/parser536727.errors.txt b/tests/baselines/reference/parser536727.errors.txt index 4204e62c93b..70841efd89f 100644 --- a/tests/baselines/reference/parser536727.errors.txt +++ b/tests/baselines/reference/parser536727.errors.txt @@ -1,7 +1,9 @@ tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts(7,5): error TS2345: Argument of type '() => (x: string) => string' is not assignable to parameter of type '(x: string) => string'. - Type '(x: string) => string' is not assignable to type 'string'. + Signature '(x: string): string' has no corresponding signature in '() => (x: string) => string' + Type '(x: string) => string' is not assignable to type 'string'. tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts(8,5): error TS2345: Argument of type '() => (x: string) => string' is not assignable to parameter of type '(x: string) => string'. - Type '(x: string) => string' is not assignable to type 'string'. + Signature '(x: string): string' has no corresponding signature in '() => (x: string) => string' + Type '(x: string) => string' is not assignable to type 'string'. ==== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts (2 errors) ==== @@ -14,9 +16,11 @@ tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts(8,5): foo(() => g); ~~~~~~~ !!! error TS2345: Argument of type '() => (x: string) => string' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Type '(x: string) => string' is not assignable to type 'string'. +!!! error TS2345: Signature '(x: string): string' has no corresponding signature in '() => (x: string) => string' +!!! error TS2345: Type '(x: string) => string' is not assignable to type 'string'. foo(x); ~ !!! error TS2345: Argument of type '() => (x: string) => string' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Type '(x: string) => string' is not assignable to type 'string'. +!!! error TS2345: Signature '(x: string): string' has no corresponding signature in '() => (x: string) => string' +!!! error TS2345: Type '(x: string) => string' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/parserAutomaticSemicolonInsertion1.errors.txt b/tests/baselines/reference/parserAutomaticSemicolonInsertion1.errors.txt index ee17b6f82aa..5eebe963b90 100644 --- a/tests/baselines/reference/parserAutomaticSemicolonInsertion1.errors.txt +++ b/tests/baselines/reference/parserAutomaticSemicolonInsertion1.errors.txt @@ -1,5 +1,7 @@ tests/cases/conformance/parser/ecmascript5/AutomaticSemicolonInsertion/parserAutomaticSemicolonInsertion1.ts(8,1): error TS2322: Type 'Object' is not assignable to type 'I'. + Signature '(): void' has no corresponding signature in 'Object' tests/cases/conformance/parser/ecmascript5/AutomaticSemicolonInsertion/parserAutomaticSemicolonInsertion1.ts(14,1): error TS2322: Type 'Object' is not assignable to type '() => void'. + Signature '(): void' has no corresponding signature in 'Object' ==== tests/cases/conformance/parser/ecmascript5/AutomaticSemicolonInsertion/parserAutomaticSemicolonInsertion1.ts (2 errors) ==== @@ -13,6 +15,7 @@ tests/cases/conformance/parser/ecmascript5/AutomaticSemicolonInsertion/parserAut i = o; ~ !!! error TS2322: Type 'Object' is not assignable to type 'I'. +!!! error TS2322: Signature '(): void' has no corresponding signature in 'Object' var a: { (): void @@ -21,4 +24,5 @@ tests/cases/conformance/parser/ecmascript5/AutomaticSemicolonInsertion/parserAut a = o; ~ !!! error TS2322: Type 'Object' is not assignable to type '() => void'. +!!! error TS2322: Signature '(): void' has no corresponding signature in 'Object' \ No newline at end of file diff --git a/tests/baselines/reference/promiseChaining1.errors.txt b/tests/baselines/reference/promiseChaining1.errors.txt index bd3e52fcc1c..da593b4086c 100644 --- a/tests/baselines/reference/promiseChaining1.errors.txt +++ b/tests/baselines/reference/promiseChaining1.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/promiseChaining1.ts(7,50): error TS2345: Argument of type '(x: S) => string' is not assignable to parameter of type '(x: S) => Function'. - Type 'string' is not assignable to type 'Function'. - Property 'apply' is missing in type 'String'. + Signature '(x: S): Function' has no corresponding signature in '(x: S) => string' + Type 'string' is not assignable to type 'Function'. + Property 'apply' is missing in type 'String'. ==== tests/cases/compiler/promiseChaining1.ts (1 errors) ==== @@ -13,8 +14,9 @@ tests/cases/compiler/promiseChaining1.ts(7,50): error TS2345: Argument of type ' var z = this.then(x => result)/*S*/.then(x => "abc")/*Function*/.then(x => x.length)/*number*/; // Should error on "abc" because it is not a Function ~~~~~~~~~~ !!! error TS2345: Argument of type '(x: S) => string' is not assignable to parameter of type '(x: S) => Function'. -!!! error TS2345: Type 'string' is not assignable to type 'Function'. -!!! error TS2345: Property 'apply' is missing in type 'String'. +!!! error TS2345: Signature '(x: S): Function' has no corresponding signature in '(x: S) => string' +!!! error TS2345: Type 'string' is not assignable to type 'Function'. +!!! error TS2345: Property 'apply' is missing in type 'String'. return new Chain2(result); } } \ No newline at end of file diff --git a/tests/baselines/reference/promiseChaining2.errors.txt b/tests/baselines/reference/promiseChaining2.errors.txt index f12baebd4dc..acdaad94bef 100644 --- a/tests/baselines/reference/promiseChaining2.errors.txt +++ b/tests/baselines/reference/promiseChaining2.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/promiseChaining2.ts(7,45): error TS2345: Argument of type '(x: S) => string' is not assignable to parameter of type '(x: S) => Function'. - Type 'string' is not assignable to type 'Function'. - Property 'apply' is missing in type 'String'. + Signature '(x: S): Function' has no corresponding signature in '(x: S) => string' + Type 'string' is not assignable to type 'Function'. + Property 'apply' is missing in type 'String'. ==== tests/cases/compiler/promiseChaining2.ts (1 errors) ==== @@ -13,8 +14,9 @@ tests/cases/compiler/promiseChaining2.ts(7,45): error TS2345: Argument of type ' var z = this.then(x => result).then(x => "abc").then(x => x.length); ~~~~~~~~~~ !!! error TS2345: Argument of type '(x: S) => string' is not assignable to parameter of type '(x: S) => Function'. -!!! error TS2345: Type 'string' is not assignable to type 'Function'. -!!! error TS2345: Property 'apply' is missing in type 'String'. +!!! error TS2345: Signature '(x: S): Function' has no corresponding signature in '(x: S) => string' +!!! error TS2345: Type 'string' is not assignable to type 'Function'. +!!! error TS2345: Property 'apply' is missing in type 'String'. return new Chain2(result); } } \ No newline at end of file diff --git a/tests/baselines/reference/promisePermutations.errors.txt b/tests/baselines/reference/promisePermutations.errors.txt index a74938f5dd9..0787189e2e0 100644 --- a/tests/baselines/reference/promisePermutations.errors.txt +++ b/tests/baselines/reference/promisePermutations.errors.txt @@ -1,50 +1,75 @@ tests/cases/compiler/promisePermutations.ts(74,70): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'IPromise'. - Property 'then' is missing in type 'Number'. + Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'IPromise'. + Property 'then' is missing in type 'Number'. tests/cases/compiler/promisePermutations.ts(79,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(82,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(83,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: string): Promise' has no corresponding signature in '(x: number, y?: string) => Promise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(84,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => Promise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(88,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' tests/cases/compiler/promisePermutations.ts(91,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' tests/cases/compiler/promisePermutations.ts(92,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. + Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' tests/cases/compiler/promisePermutations.ts(93,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' tests/cases/compiler/promisePermutations.ts(97,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations.ts(100,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations.ts(101,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. + Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations.ts(102,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations.ts(106,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(109,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(110,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Signature '(value: string): Promise' has no corresponding signature in '(cb: (a: T) => T) => Promise' + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(111,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => Promise' + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(117,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations.ts(120,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations.ts(121,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. + Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations.ts(122,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations.ts(126,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' tests/cases/compiler/promisePermutations.ts(129,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations.ts(132,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' tests/cases/compiler/promisePermutations.ts(133,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. + Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' tests/cases/compiler/promisePermutations.ts(134,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' tests/cases/compiler/promisePermutations.ts(137,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. @@ -55,27 +80,35 @@ tests/cases/compiler/promisePermutations.ts(152,12): error TS2453: The type argu Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Types of property 'then' are incompatible. Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. - Types of parameters 'success' and 'success' are incompatible. - Type '(value: string) => IPromise' is not assignable to type '(value: number) => Promise'. - Types of parameters 'value' and 'value' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise' has no corresponding signature in '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' + Types of parameters 'success' and 'success' are incompatible. + Type '(value: string) => IPromise' is not assignable to type '(value: number) => Promise'. + Signature '(value: number): Promise' has no corresponding signature in '(value: string) => IPromise' + Types of parameters 'value' and 'value' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations.ts(156,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Type 'IPromise' is not assignable to type 'IPromise'. - Type 'number' is not assignable to type 'string'. + Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(158,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Type 'IPromise' is not assignable to type 'IPromise'. - Type 'number' is not assignable to type 'string'. + Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(159,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'string'. + Signature '(value: number): Promise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Type 'Promise' is not assignable to type 'IPromise'. - Types of property 'then' are incompatible. - Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. - Types of parameters 'success' and 'success' are incompatible. - Type '(value: number) => Promise' is not assignable to type '(value: string) => IPromise'. - Types of parameters 'value' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' + Type 'Promise' is not assignable to type 'IPromise'. + Types of property 'then' are incompatible. + Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. + Signature '(success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise' has no corresponding signature in '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' + Types of parameters 'success' and 'success' are incompatible. + Type '(value: number) => Promise' is not assignable to type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(value: number) => Promise' + Types of parameters 'value' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/compiler/promisePermutations.ts (33 errors) ==== @@ -155,9 +188,10 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var s3d = s3.then(testFunction3P, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. -!!! error TS2345: Property 'then' is missing in type 'Number'. +!!! error TS2345: Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. +!!! error TS2345: Property 'then' is missing in type 'Number'. var r4: IPromise; var sIPromise: (x: any) => IPromise; @@ -165,84 +199,100 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var r4a = r4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r4b = r4.then(sIPromise, testFunction4, testFunction4).then(sIPromise, testFunction4, testFunction4); // ok var s4: Promise; var s4a = s4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4b = s4.then(testFunction4P, testFunction4P, testFunction4P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, y?: string) => Promise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4c = s4.then(testFunction4P, testFunction4, testFunction4); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => Promise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4d = s4.then(sIPromise, testFunction4P, testFunction4).then(sIPromise, testFunction4P, testFunction4); var r5: IPromise; var r5a = r5.then(testFunction5, testFunction5, testFunction5); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' var r5b = r5.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s5: Promise; var s5a = s5.then(testFunction5, testFunction5, testFunction5); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' var s5b = s5.then(testFunction5P, testFunction5P, testFunction5P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. +!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' var s5c = s5.then(testFunction5P, testFunction5, testFunction5); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' var s5d = s5.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r6: IPromise; var r6a = r6.then(testFunction6, testFunction6, testFunction6); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' var r6b = r6.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s6: Promise; var s6a = s6.then(testFunction6, testFunction6, testFunction6); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' var s6b = s6.then(testFunction6P, testFunction6P, testFunction6P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. +!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' var s6c = s6.then(testFunction6P, testFunction6, testFunction6); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' var s6d = s6.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r7: IPromise; var r7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var r7b = r7.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s7: Promise; var s7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7b = r7.then(testFunction7P, testFunction7P, testFunction7P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(cb: (a: T) => T) => Promise' +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7c = r7.then(testFunction7P, testFunction7, testFunction7); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => Promise' +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7d = r7.then(sPromise, sPromise, sPromise).then(sPromise, sPromise, sPromise); // ok? var r8: IPromise; @@ -251,23 +301,28 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var r8a = r8.then(testFunction8, testFunction8, testFunction8); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' var r8b = r8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var s8: Promise; var s8a = s8.then(testFunction8, testFunction8, testFunction8); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' var s8b = s8.then(testFunction8P, testFunction8P, testFunction8P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. +!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' var s8d = s8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var r9: IPromise; var r9a = r9.then(testFunction9, testFunction9, testFunction9); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' var r9b = r9.then(sIPromise, sIPromise, sIPromise); // ok var r9c = r9.then(nIPromise, nIPromise, nIPromise); // ok var r9d = r9.then(testFunction, sIPromise, nIPromise); // ok @@ -280,12 +335,15 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var s9a = s9.then(testFunction9, testFunction9, testFunction9); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' var s9b = s9.then(testFunction9P, testFunction9P, testFunction9P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. +!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' var s9d = s9.then(sPromise, sPromise, sPromise); // ok var s9e = s9.then(nPromise, nPromise, nPromise); // ok var s9f = s9.then(testFunction, sIPromise, nIPromise); // error @@ -317,39 +375,47 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t !!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. !!! error TS2453: Types of property 'then' are incompatible. !!! error TS2453: Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. -!!! error TS2453: Types of parameters 'success' and 'success' are incompatible. -!!! error TS2453: Type '(value: string) => IPromise' is not assignable to type '(value: number) => Promise'. -!!! error TS2453: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2453: Type 'string' is not assignable to type 'number'. +!!! error TS2453: Signature '(success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise' has no corresponding signature in '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' +!!! error TS2453: Types of parameters 'success' and 'success' are incompatible. +!!! error TS2453: Type '(value: string) => IPromise' is not assignable to type '(value: number) => Promise'. +!!! error TS2453: Signature '(value: number): Promise' has no corresponding signature in '(value: string) => IPromise' +!!! error TS2453: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2453: Type 'string' is not assignable to type 'number'. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok var r11: IPromise; var r11a = r11.then(testFunction11, testFunction11, testFunction11); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11: Promise; var s11a = s11.then(testFunction11, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11b = s11.then(testFunction11P, testFunction11P, testFunction11P); // error ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11c = s11.then(testFunction11P, testFunction11, testFunction11); // error ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. -!!! error TS2345: Types of property 'then' are incompatible. -!!! error TS2345: Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. -!!! error TS2345: Types of parameters 'success' and 'success' are incompatible. -!!! error TS2345: Type '(value: number) => Promise' is not assignable to type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' +!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. +!!! error TS2345: Types of property 'then' are incompatible. +!!! error TS2345: Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. +!!! error TS2345: Signature '(success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise' has no corresponding signature in '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' +!!! error TS2345: Types of parameters 'success' and 'success' are incompatible. +!!! error TS2345: Type '(value: number) => Promise' is not assignable to type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(value: number) => Promise' +!!! error TS2345: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r12 = testFunction12(x => x); var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok diff --git a/tests/baselines/reference/promisePermutations2.errors.txt b/tests/baselines/reference/promisePermutations2.errors.txt index 8afceeae0fd..054cdec66c9 100644 --- a/tests/baselines/reference/promisePermutations2.errors.txt +++ b/tests/baselines/reference/promisePermutations2.errors.txt @@ -1,50 +1,75 @@ tests/cases/compiler/promisePermutations2.ts(73,70): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'IPromise'. - Property 'then' is missing in type 'Number'. + Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'IPromise'. + Property 'then' is missing in type 'Number'. tests/cases/compiler/promisePermutations2.ts(78,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(81,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(82,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: string): Promise' has no corresponding signature in '(x: number, y?: string) => Promise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(83,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => Promise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(87,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' tests/cases/compiler/promisePermutations2.ts(90,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' tests/cases/compiler/promisePermutations2.ts(91,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. + Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' tests/cases/compiler/promisePermutations2.ts(92,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' tests/cases/compiler/promisePermutations2.ts(96,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations2.ts(99,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations2.ts(100,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. + Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations2.ts(101,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations2.ts(105,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(108,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(109,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Signature '(value: string): Promise' has no corresponding signature in '(cb: (a: T) => T) => Promise' + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(110,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => Promise' + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(116,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations2.ts(119,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations2.ts(120,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. + Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations2.ts(121,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations2.ts(125,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' tests/cases/compiler/promisePermutations2.ts(128,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations2.ts(131,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' tests/cases/compiler/promisePermutations2.ts(132,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. + Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' tests/cases/compiler/promisePermutations2.ts(133,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' tests/cases/compiler/promisePermutations2.ts(136,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. @@ -55,27 +80,35 @@ tests/cases/compiler/promisePermutations2.ts(151,12): error TS2453: The type arg Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Types of property 'then' are incompatible. Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. - Types of parameters 'success' and 'success' are incompatible. - Type '(value: string) => IPromise' is not assignable to type '(value: number) => any'. - Types of parameters 'value' and 'value' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise' has no corresponding signature in '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' + Types of parameters 'success' and 'success' are incompatible. + Type '(value: string) => IPromise' is not assignable to type '(value: number) => any'. + Signature '(value: number): any' has no corresponding signature in '(value: string) => IPromise' + Types of parameters 'value' and 'value' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations2.ts(155,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Type 'IPromise' is not assignable to type 'IPromise'. - Type 'number' is not assignable to type 'string'. + Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(157,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Type 'IPromise' is not assignable to type 'IPromise'. - Type 'number' is not assignable to type 'string'. + Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(158,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'string'. + Signature '(value: number): Promise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Type 'Promise' is not assignable to type 'IPromise'. - Types of property 'then' are incompatible. - Type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. - Types of parameters 'success' and 'success' are incompatible. - Type '(value: number) => any' is not assignable to type '(value: string) => IPromise'. - Types of parameters 'value' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' + Type 'Promise' is not assignable to type 'IPromise'. + Types of property 'then' are incompatible. + Type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. + Signature '(success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise' has no corresponding signature in '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' + Types of parameters 'success' and 'success' are incompatible. + Type '(value: number) => any' is not assignable to type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(value: number) => any' + Types of parameters 'value' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/compiler/promisePermutations2.ts (33 errors) ==== @@ -154,9 +187,10 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var s3d = s3.then(testFunction3P, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); // Should error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. -!!! error TS2345: Property 'then' is missing in type 'Number'. +!!! error TS2345: Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. +!!! error TS2345: Property 'then' is missing in type 'Number'. var r4: IPromise; var sIPromise: (x: any) => IPromise; @@ -164,84 +198,100 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var r4a = r4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r4b = r4.then(sIPromise, testFunction4, testFunction4).then(sIPromise, testFunction4, testFunction4); // ok var s4: Promise; var s4a = s4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4b = s4.then(testFunction4P, testFunction4P, testFunction4P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, y?: string) => Promise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4c = s4.then(testFunction4P, testFunction4, testFunction4); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => Promise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4d = s4.then(sIPromise, testFunction4P, testFunction4).then(sIPromise, testFunction4P, testFunction4); var r5: IPromise; var r5a = r5.then(testFunction5, testFunction5, testFunction5); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' var r5b = r5.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s5: Promise; var s5a = s5.then(testFunction5, testFunction5, testFunction5); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' var s5b = s5.then(testFunction5P, testFunction5P, testFunction5P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. +!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' var s5c = s5.then(testFunction5P, testFunction5, testFunction5); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' var s5d = s5.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r6: IPromise; var r6a = r6.then(testFunction6, testFunction6, testFunction6); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' var r6b = r6.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s6: Promise; var s6a = s6.then(testFunction6, testFunction6, testFunction6); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' var s6b = s6.then(testFunction6P, testFunction6P, testFunction6P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. +!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' var s6c = s6.then(testFunction6P, testFunction6, testFunction6); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' var s6d = s6.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r7: IPromise; var r7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var r7b = r7.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s7: Promise; var s7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7b = r7.then(testFunction7P, testFunction7P, testFunction7P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(cb: (a: T) => T) => Promise' +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7c = r7.then(testFunction7P, testFunction7, testFunction7); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => Promise' +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7d = r7.then(sPromise, sPromise, sPromise).then(sPromise, sPromise, sPromise); // ok? var r8: IPromise; @@ -250,23 +300,28 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var r8a = r8.then(testFunction8, testFunction8, testFunction8); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' var r8b = r8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var s8: Promise; var s8a = s8.then(testFunction8, testFunction8, testFunction8); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' var s8b = s8.then(testFunction8P, testFunction8P, testFunction8P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. +!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' var s8d = s8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var r9: IPromise; var r9a = r9.then(testFunction9, testFunction9, testFunction9); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' var r9b = r9.then(sIPromise, sIPromise, sIPromise); // ok var r9c = r9.then(nIPromise, nIPromise, nIPromise); // ok var r9d = r9.then(testFunction, sIPromise, nIPromise); // error @@ -279,12 +334,15 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var s9a = s9.then(testFunction9, testFunction9, testFunction9); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' var s9b = s9.then(testFunction9P, testFunction9P, testFunction9P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. +!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' var s9d = s9.then(sPromise, sPromise, sPromise); // ok var s9e = s9.then(nPromise, nPromise, nPromise); // ok var s9f = s9.then(testFunction, sIPromise, nIPromise); // error @@ -316,39 +374,47 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of !!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. !!! error TS2453: Types of property 'then' are incompatible. !!! error TS2453: Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. -!!! error TS2453: Types of parameters 'success' and 'success' are incompatible. -!!! error TS2453: Type '(value: string) => IPromise' is not assignable to type '(value: number) => any'. -!!! error TS2453: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2453: Type 'string' is not assignable to type 'number'. +!!! error TS2453: Signature '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise' has no corresponding signature in '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' +!!! error TS2453: Types of parameters 'success' and 'success' are incompatible. +!!! error TS2453: Type '(value: string) => IPromise' is not assignable to type '(value: number) => any'. +!!! error TS2453: Signature '(value: number): any' has no corresponding signature in '(value: string) => IPromise' +!!! error TS2453: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2453: Type 'string' is not assignable to type 'number'. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok var r11: IPromise; var r11a = r11.then(testFunction11, testFunction11, testFunction11); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11: Promise; var s11a = s11.then(testFunction11, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11b = s11.then(testFunction11P, testFunction11P, testFunction11P); // ok ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11c = s11.then(testFunction11P, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. -!!! error TS2345: Types of property 'then' are incompatible. -!!! error TS2345: Type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. -!!! error TS2345: Types of parameters 'success' and 'success' are incompatible. -!!! error TS2345: Type '(value: number) => any' is not assignable to type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' +!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. +!!! error TS2345: Types of property 'then' are incompatible. +!!! error TS2345: Type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. +!!! error TS2345: Signature '(success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise' has no corresponding signature in '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' +!!! error TS2345: Types of parameters 'success' and 'success' are incompatible. +!!! error TS2345: Type '(value: number) => any' is not assignable to type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(value: number) => any' +!!! error TS2345: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r12 = testFunction12(x => x); var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok diff --git a/tests/baselines/reference/promisePermutations3.errors.txt b/tests/baselines/reference/promisePermutations3.errors.txt index b17021a02b9..5d414cf4176 100644 --- a/tests/baselines/reference/promisePermutations3.errors.txt +++ b/tests/baselines/reference/promisePermutations3.errors.txt @@ -1,53 +1,79 @@ tests/cases/compiler/promisePermutations3.ts(68,69): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'IPromise'. - Property 'then' is missing in type 'Number'. + Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'IPromise'. + Property 'then' is missing in type 'Number'. tests/cases/compiler/promisePermutations3.ts(73,70): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'IPromise'. + Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'IPromise'. tests/cases/compiler/promisePermutations3.ts(78,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(81,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(82,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: string): Promise' has no corresponding signature in '(x: number, y?: string) => Promise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(83,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => Promise' + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(87,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' tests/cases/compiler/promisePermutations3.ts(90,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' tests/cases/compiler/promisePermutations3.ts(91,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. + Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' tests/cases/compiler/promisePermutations3.ts(92,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' tests/cases/compiler/promisePermutations3.ts(96,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations3.ts(99,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations3.ts(100,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. + Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations3.ts(101,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. + Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations3.ts(105,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(108,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(109,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Signature '(value: string): Promise' has no corresponding signature in '(cb: (a: T) => T) => Promise' + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(110,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => Promise' + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(116,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations3.ts(119,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations3.ts(120,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. + Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations3.ts(121,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations3.ts(125,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' tests/cases/compiler/promisePermutations3.ts(128,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations3.ts(131,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' tests/cases/compiler/promisePermutations3.ts(132,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. + Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' tests/cases/compiler/promisePermutations3.ts(133,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. + Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' tests/cases/compiler/promisePermutations3.ts(136,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. @@ -58,32 +84,42 @@ tests/cases/compiler/promisePermutations3.ts(151,12): error TS2453: The type arg Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Types of property 'then' are incompatible. Type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. - Types of parameters 'success' and 'success' are incompatible. - Type '(value: string) => any' is not assignable to type '(value: number) => Promise'. - Types of parameters 'value' and 'value' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise' has no corresponding signature in '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' + Types of parameters 'success' and 'success' are incompatible. + Type '(value: string) => any' is not assignable to type '(value: number) => Promise'. + Signature '(value: number): Promise' has no corresponding signature in '(value: string) => any' + Types of parameters 'value' and 'value' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations3.ts(155,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Type 'IPromise' is not assignable to type 'IPromise'. - Type 'number' is not assignable to type 'string'. + Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(157,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Type 'IPromise' is not assignable to type 'IPromise'. - Type 'number' is not assignable to type 'string'. + Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(158,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'string'. + Signature '(value: number): Promise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(159,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Type 'Promise' is not assignable to type 'IPromise'. - Types of property 'then' are incompatible. - Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise'. - Types of parameters 'success' and 'success' are incompatible. - Type '(value: number) => Promise' is not assignable to type '(value: string) => any'. - Types of parameters 'value' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' + Type 'Promise' is not assignable to type 'IPromise'. + Types of property 'then' are incompatible. + Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise'. + Signature '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise' has no corresponding signature in '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' + Types of parameters 'success' and 'success' are incompatible. + Type '(value: number) => Promise' is not assignable to type '(value: string) => any'. + Signature '(value: string): any' has no corresponding signature in '(value: number) => Promise' + Types of parameters 'value' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of type '{ (x: T): IPromise; (x: T, y: T): Promise; }' is not assignable to parameter of type '(value: (x: any) => any) => Promise'. - Type 'IPromise' is not assignable to type 'Promise'. - Types of property 'then' are incompatible. - Type '(success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: any) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. - Type 'IPromise' is not assignable to type 'Promise'. + Signature '(value: (x: any) => any): Promise' has no corresponding signature in '{ (x: T): IPromise; (x: T, y: T): Promise; }' + Type 'IPromise' is not assignable to type 'Promise'. + Types of property 'then' are incompatible. + Type '(success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: any) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. + Signature '(success?: (value: any) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise' has no corresponding signature in '(success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' + Type 'IPromise' is not assignable to type 'Promise'. ==== tests/cases/compiler/promisePermutations3.ts (35 errors) ==== @@ -157,9 +193,10 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var r3b = r3.then(testFunction3, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. -!!! error TS2345: Property 'then' is missing in type 'Number'. +!!! error TS2345: Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. +!!! error TS2345: Property 'then' is missing in type 'Number'. var s3: Promise; var s3a = s3.then(testFunction3, testFunction3, testFunction3); var s3b = s3.then(testFunction3P, testFunction3P, testFunction3P); @@ -167,8 +204,9 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var s3d = s3.then(testFunction3P, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. +!!! error TS2345: Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. var r4: IPromise; var sIPromise: (x: any) => IPromise; @@ -176,84 +214,100 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var r4a = r4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r4b = r4.then(sIPromise, testFunction4, testFunction4).then(sIPromise, testFunction4, testFunction4); // ok var s4: Promise; var s4a = s4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4b = s4.then(testFunction4P, testFunction4P, testFunction4P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, y?: string) => Promise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4c = s4.then(testFunction4P, testFunction4, testFunction4); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => Promise' +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4d = s4.then(sIPromise, testFunction4P, testFunction4).then(sIPromise, testFunction4P, testFunction4); var r5: IPromise; var r5a = r5.then(testFunction5, testFunction5, testFunction5); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' var r5b = r5.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s5: Promise; var s5a = s5.then(testFunction5, testFunction5, testFunction5); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' var s5b = s5.then(testFunction5P, testFunction5P, testFunction5P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. +!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' var s5c = s5.then(testFunction5P, testFunction5, testFunction5); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' var s5d = s5.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r6: IPromise; var r6a = r6.then(testFunction6, testFunction6, testFunction6); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' var r6b = r6.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s6: Promise; var s6a = s6.then(testFunction6, testFunction6, testFunction6); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' var s6b = s6.then(testFunction6P, testFunction6P, testFunction6P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. +!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' var s6c = s6.then(testFunction6P, testFunction6, testFunction6); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' var s6d = s6.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r7: IPromise; var r7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var r7b = r7.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s7: Promise; var s7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7b = r7.then(testFunction7P, testFunction7P, testFunction7P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(cb: (a: T) => T) => Promise' +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7c = r7.then(testFunction7P, testFunction7, testFunction7); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => Promise' +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7d = r7.then(sPromise, sPromise, sPromise).then(sPromise, sPromise, sPromise); // ok? var r8: IPromise; @@ -262,23 +316,28 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var r8a = r8.then(testFunction8, testFunction8, testFunction8); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' var r8b = r8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var s8: Promise; var s8a = s8.then(testFunction8, testFunction8, testFunction8); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' var s8b = s8.then(testFunction8P, testFunction8P, testFunction8P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. +!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' var s8d = s8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var r9: IPromise; var r9a = r9.then(testFunction9, testFunction9, testFunction9); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' var r9b = r9.then(sIPromise, sIPromise, sIPromise); // ok var r9c = r9.then(nIPromise, nIPromise, nIPromise); // ok var r9d = r9.then(testFunction, sIPromise, nIPromise); // error @@ -291,12 +350,15 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var s9a = s9.then(testFunction9, testFunction9, testFunction9); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' var s9b = s9.then(testFunction9P, testFunction9P, testFunction9P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. +!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' var s9d = s9.then(sPromise, sPromise, sPromise); // ok var s9e = s9.then(nPromise, nPromise, nPromise); // ok var s9f = s9.then(testFunction, sIPromise, nIPromise); // error @@ -328,39 +390,47 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of !!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. !!! error TS2453: Types of property 'then' are incompatible. !!! error TS2453: Type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. -!!! error TS2453: Types of parameters 'success' and 'success' are incompatible. -!!! error TS2453: Type '(value: string) => any' is not assignable to type '(value: number) => Promise'. -!!! error TS2453: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2453: Type 'string' is not assignable to type 'number'. +!!! error TS2453: Signature '(success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise' has no corresponding signature in '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' +!!! error TS2453: Types of parameters 'success' and 'success' are incompatible. +!!! error TS2453: Type '(value: string) => any' is not assignable to type '(value: number) => Promise'. +!!! error TS2453: Signature '(value: number): Promise' has no corresponding signature in '(value: string) => any' +!!! error TS2453: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2453: Type 'string' is not assignable to type 'number'. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok var r11: IPromise; var r11a = r11.then(testFunction11, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11: Promise; var s11a = s11.then(testFunction11, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11b = s11.then(testFunction11P, testFunction11P, testFunction11P); // error ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11c = s11.then(testFunction11P, testFunction11, testFunction11); // error ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. -!!! error TS2345: Types of property 'then' are incompatible. -!!! error TS2345: Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise'. -!!! error TS2345: Types of parameters 'success' and 'success' are incompatible. -!!! error TS2345: Type '(value: number) => Promise' is not assignable to type '(value: string) => any'. -!!! error TS2345: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' +!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. +!!! error TS2345: Types of property 'then' are incompatible. +!!! error TS2345: Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise'. +!!! error TS2345: Signature '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise' has no corresponding signature in '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' +!!! error TS2345: Types of parameters 'success' and 'success' are incompatible. +!!! error TS2345: Type '(value: number) => Promise' is not assignable to type '(value: string) => any'. +!!! error TS2345: Signature '(value: string): any' has no corresponding signature in '(value: number) => Promise' +!!! error TS2345: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r12 = testFunction12(x => x); var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok @@ -369,8 +439,10 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var s12b = s12.then(testFunction12P, testFunction12P, testFunction12P); // ok ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: T): IPromise; (x: T, y: T): Promise; }' is not assignable to parameter of type '(value: (x: any) => any) => Promise'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. -!!! error TS2345: Types of property 'then' are incompatible. -!!! error TS2345: Type '(success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: any) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. -!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. +!!! error TS2345: Signature '(value: (x: any) => any): Promise' has no corresponding signature in '{ (x: T): IPromise; (x: T, y: T): Promise; }' +!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. +!!! error TS2345: Types of property 'then' are incompatible. +!!! error TS2345: Type '(success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: any) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. +!!! error TS2345: Signature '(success?: (value: any) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise' has no corresponding signature in '(success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' +!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok \ No newline at end of file diff --git a/tests/baselines/reference/propertyAssignment.errors.txt b/tests/baselines/reference/propertyAssignment.errors.txt index 47359caf9c2..ae65ed9b73a 100644 --- a/tests/baselines/reference/propertyAssignment.errors.txt +++ b/tests/baselines/reference/propertyAssignment.errors.txt @@ -1,7 +1,9 @@ tests/cases/compiler/propertyAssignment.ts(6,13): error TS1170: A computed property name in a type literal must directly refer to a built-in symbol. tests/cases/compiler/propertyAssignment.ts(6,14): error TS2304: Cannot find name 'index'. tests/cases/compiler/propertyAssignment.ts(14,1): error TS2322: Type '{ x: number; }' is not assignable to type 'new () => any'. + Signature 'new (): any' has no corresponding signature in '{ x: number; }' tests/cases/compiler/propertyAssignment.ts(16,1): error TS2322: Type '{ x: number; }' is not assignable to type '() => void'. + Signature '(): void' has no corresponding signature in '{ x: number; }' ==== tests/cases/compiler/propertyAssignment.ts (4 errors) ==== @@ -25,7 +27,9 @@ tests/cases/compiler/propertyAssignment.ts(16,1): error TS2322: Type '{ x: numbe foo1 = bar1; // should be an error ~~~~ !!! error TS2322: Type '{ x: number; }' is not assignable to type 'new () => any'. +!!! error TS2322: Signature 'new (): any' has no corresponding signature in '{ x: number; }' foo2 = bar2; foo3 = bar3; // should be an error ~~~~ -!!! error TS2322: Type '{ x: number; }' is not assignable to type '() => void'. \ No newline at end of file +!!! error TS2322: Type '{ x: number; }' is not assignable to type '() => void'. +!!! error TS2322: Signature '(): void' has no corresponding signature in '{ x: number; }' \ No newline at end of file diff --git a/tests/baselines/reference/qualify.errors.txt b/tests/baselines/reference/qualify.errors.txt index c7679a0a0f8..822b329b757 100644 --- a/tests/baselines/reference/qualify.errors.txt +++ b/tests/baselines/reference/qualify.errors.txt @@ -7,7 +7,9 @@ tests/cases/compiler/qualify.ts(45,13): error TS2322: Type 'I4' is not assignabl tests/cases/compiler/qualify.ts(46,13): error TS2322: Type 'I4' is not assignable to type 'I3[]'. Property 'length' is missing in type 'I4'. tests/cases/compiler/qualify.ts(47,13): error TS2322: Type 'I4' is not assignable to type '() => I3'. + Signature '(): I3' has no corresponding signature in 'I4' tests/cases/compiler/qualify.ts(48,13): error TS2322: Type 'I4' is not assignable to type '(k: I3) => void'. + Signature '(k: I3): void' has no corresponding signature in 'I4' tests/cases/compiler/qualify.ts(49,13): error TS2322: Type 'I4' is not assignable to type '{ k: I3; }'. Property 'k' is missing in type 'I4'. tests/cases/compiler/qualify.ts(58,5): error TS2322: Type 'I' is not assignable to type 'T.I'. @@ -76,9 +78,11 @@ tests/cases/compiler/qualify.ts(58,5): error TS2322: Type 'I' is not assignable var v4:()=>K1.I3=v1; ~~ !!! error TS2322: Type 'I4' is not assignable to type '() => I3'. +!!! error TS2322: Signature '(): I3' has no corresponding signature in 'I4' var v5:(k:K1.I3)=>void=v1; ~~ !!! error TS2322: Type 'I4' is not assignable to type '(k: I3) => void'. +!!! error TS2322: Signature '(k: I3): void' has no corresponding signature in 'I4' var v6:{k:K1.I3;}=v1; ~~ !!! error TS2322: Type 'I4' is not assignable to type '{ k: I3; }'. diff --git a/tests/baselines/reference/recursiveFunctionTypes.errors.txt b/tests/baselines/reference/recursiveFunctionTypes.errors.txt index 8d5303c0669..9bc82f92ff3 100644 --- a/tests/baselines/reference/recursiveFunctionTypes.errors.txt +++ b/tests/baselines/reference/recursiveFunctionTypes.errors.txt @@ -1,23 +1,30 @@ tests/cases/compiler/recursiveFunctionTypes.ts(1,35): error TS2322: Type 'number' is not assignable to type '() => typeof fn'. + Signature '(): () => typeof fn' has no corresponding signature in 'Number' tests/cases/compiler/recursiveFunctionTypes.ts(3,5): error TS2322: Type '() => typeof fn' is not assignable to type 'number'. tests/cases/compiler/recursiveFunctionTypes.ts(4,5): error TS2322: Type '() => typeof fn' is not assignable to type '() => number'. - Type '() => typeof fn' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => typeof fn' + Type '() => typeof fn' is not assignable to type 'number'. tests/cases/compiler/recursiveFunctionTypes.ts(11,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. tests/cases/compiler/recursiveFunctionTypes.ts(12,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. tests/cases/compiler/recursiveFunctionTypes.ts(17,5): error TS2322: Type '() => I' is not assignable to type 'number'. tests/cases/compiler/recursiveFunctionTypes.ts(22,5): error TS2345: Argument of type 'number' is not assignable to parameter of type '(t: typeof g) => void'. + Signature '(t: (t: typeof g) => void): void' has no corresponding signature in 'Number' tests/cases/compiler/recursiveFunctionTypes.ts(25,1): error TS2322: Type 'number' is not assignable to type '() => any'. + Signature '(): () => any' has no corresponding signature in 'Number' tests/cases/compiler/recursiveFunctionTypes.ts(30,10): error TS2394: Overload signature is not compatible with function implementation. tests/cases/compiler/recursiveFunctionTypes.ts(33,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/compiler/recursiveFunctionTypes.ts(34,4): error TS2345: Argument of type 'string' is not assignable to parameter of type '{ (): typeof f6; (a: typeof f6): () => number; }'. + Signature '(): { (): typeof f6; (a: typeof f6): () => number; }' has no corresponding signature in 'String' tests/cases/compiler/recursiveFunctionTypes.ts(42,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of type 'string' is not assignable to parameter of type '{ (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }'. + Signature '(): { (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }' has no corresponding signature in 'String' ==== tests/cases/compiler/recursiveFunctionTypes.ts (13 errors) ==== function fn(): typeof fn { return 1; } ~ !!! error TS2322: Type 'number' is not assignable to type '() => typeof fn'. +!!! error TS2322: Signature '(): () => typeof fn' has no corresponding signature in 'Number' var x: number = fn; // error ~ @@ -25,7 +32,8 @@ tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of var y: () => number = fn; // ok ~ !!! error TS2322: Type '() => typeof fn' is not assignable to type '() => number'. -!!! error TS2322: Type '() => typeof fn' is not assignable to type 'number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '() => typeof fn' +!!! error TS2322: Type '() => typeof fn' is not assignable to type 'number'. var f: () => typeof g; var g: () => typeof f; @@ -52,11 +60,13 @@ tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of C.g(3); // error ~ !!! error TS2345: Argument of type 'number' is not assignable to parameter of type '(t: typeof g) => void'. +!!! error TS2345: Signature '(t: (t: typeof g) => void): void' has no corresponding signature in 'Number' var f4: () => typeof f4; f4 = 3; // error ~~ !!! error TS2322: Type 'number' is not assignable to type '() => any'. +!!! error TS2322: Signature '(): () => any' has no corresponding signature in 'Number' function f5() { return f5; } @@ -72,6 +82,7 @@ tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of f6(""); // ok (function takes an any param) ~~ !!! error TS2345: Argument of type 'string' is not assignable to parameter of type '{ (): typeof f6; (a: typeof f6): () => number; }'. +!!! error TS2345: Signature '(): { (): typeof f6; (a: typeof f6): () => number; }' has no corresponding signature in 'String' f6(); // ok declare function f7(): typeof f7; @@ -85,4 +96,5 @@ tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of f7(""); // ok (function takes an any param) ~~ !!! error TS2345: Argument of type 'string' is not assignable to parameter of type '{ (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }'. +!!! error TS2345: Signature '(): { (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }' has no corresponding signature in 'String' f7(); // ok \ No newline at end of file diff --git a/tests/baselines/reference/requiredInitializedParameter2.errors.txt b/tests/baselines/reference/requiredInitializedParameter2.errors.txt index 5dcec536e1b..493f9e49f23 100644 --- a/tests/baselines/reference/requiredInitializedParameter2.errors.txt +++ b/tests/baselines/reference/requiredInitializedParameter2.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/requiredInitializedParameter2.ts(5,7): error TS2420: Class 'C1' incorrectly implements interface 'I1'. Types of property 'method' are incompatible. Type '(a: number, b: any) => void' is not assignable to type '() => any'. + Signature '(): any' has no corresponding signature in '(a: number, b: any) => void' ==== tests/cases/compiler/requiredInitializedParameter2.ts (1 errors) ==== @@ -13,5 +14,6 @@ tests/cases/compiler/requiredInitializedParameter2.ts(5,7): error TS2420: Class !!! error TS2420: Class 'C1' incorrectly implements interface 'I1'. !!! error TS2420: Types of property 'method' are incompatible. !!! error TS2420: Type '(a: number, b: any) => void' is not assignable to type '() => any'. +!!! error TS2420: Signature '(): any' has no corresponding signature in '(a: number, b: any) => void' method(a = 0, b) { } } \ No newline at end of file diff --git a/tests/baselines/reference/restArgAssignmentCompat.errors.txt b/tests/baselines/reference/restArgAssignmentCompat.errors.txt index 2ea07395099..cf6c70b58f3 100644 --- a/tests/baselines/reference/restArgAssignmentCompat.errors.txt +++ b/tests/baselines/reference/restArgAssignmentCompat.errors.txt @@ -1,7 +1,8 @@ tests/cases/compiler/restArgAssignmentCompat.ts(7,1): error TS2322: Type '(...x: number[]) => void' is not assignable to type '(x: number[], y: string) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'number' is not assignable to type 'number[]'. - Property 'length' is missing in type 'Number'. + Signature '(x: number[], y: string): void' has no corresponding signature in '(...x: number[]) => void' + Types of parameters 'x' and 'x' are incompatible. + Type 'number' is not assignable to type 'number[]'. + Property 'length' is missing in type 'Number'. ==== tests/cases/compiler/restArgAssignmentCompat.ts (1 errors) ==== @@ -14,8 +15,9 @@ tests/cases/compiler/restArgAssignmentCompat.ts(7,1): error TS2322: Type '(...x: n = f; ~ !!! error TS2322: Type '(...x: number[]) => void' is not assignable to type '(x: number[], y: string) => void'. -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'number[]'. -!!! error TS2322: Property 'length' is missing in type 'Number'. +!!! error TS2322: Signature '(x: number[], y: string): void' has no corresponding signature in '(...x: number[]) => void' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'number[]'. +!!! error TS2322: Property 'length' is missing in type 'Number'. n([4], 'foo'); \ No newline at end of file diff --git a/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.errors.txt b/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.errors.txt index db23c2a19f6..f490027f870 100644 --- a/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.errors.txt +++ b/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.errors.txt @@ -1,5 +1,6 @@ tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticMemberAssignsToConstructorFunctionMembers.ts(7,9): error TS2322: Type '() => void' is not assignable to type '(x: number) => number'. - Type 'void' is not assignable to type 'number'. + Signature '(x: number): number' has no corresponding signature in '() => void' + Type 'void' is not assignable to type 'number'. ==== tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticMemberAssignsToConstructorFunctionMembers.ts (1 errors) ==== @@ -12,7 +13,8 @@ tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclara C.bar = () => { } // error ~~~~~ !!! error TS2322: Type '() => void' is not assignable to type '(x: number) => number'. -!!! error TS2322: Type 'void' is not assignable to type 'number'. +!!! error TS2322: Signature '(x: number): number' has no corresponding signature in '() => void' +!!! error TS2322: Type 'void' is not assignable to type 'number'. C.bar = (x) => x; // ok C.bar = (x: number) => 1; // ok return 1; diff --git a/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.errors.txt b/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.errors.txt index ed6450ad329..aee87f77764 100644 --- a/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.errors.txt +++ b/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.errors.txt @@ -1,5 +1,6 @@ tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.ts(6,13): error TS2345: Argument of type '(y: "foo" | "bar") => string' is not assignable to parameter of type '(x: "foo") => "foo"'. - Type 'string' is not assignable to type '"foo"'. + Signature '(x: "foo"): "foo"' has no corresponding signature in '(y: "foo" | "bar") => string' + Type 'string' is not assignable to type '"foo"'. ==== tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.ts (1 errors) ==== @@ -11,5 +12,6 @@ tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterCon let f = foo((y: "foo" | "bar") => y === "foo" ? y : "foo"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(y: "foo" | "bar") => string' is not assignable to parameter of type '(x: "foo") => "foo"'. -!!! error TS2345: Type 'string' is not assignable to type '"foo"'. +!!! error TS2345: Signature '(x: "foo"): "foo"' has no corresponding signature in '(y: "foo" | "bar") => string' +!!! error TS2345: Type 'string' is not assignable to type '"foo"'. let fResult = f("foo"); \ No newline at end of file diff --git a/tests/baselines/reference/subtypingWithCallSignaturesA.errors.txt b/tests/baselines/reference/subtypingWithCallSignaturesA.errors.txt index 3821c707f4b..24caddf4849 100644 --- a/tests/baselines/reference/subtypingWithCallSignaturesA.errors.txt +++ b/tests/baselines/reference/subtypingWithCallSignaturesA.errors.txt @@ -1,5 +1,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesA.ts(2,15): error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => number'. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): number' has no corresponding signature in '(x: number) => string' + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesA.ts (1 errors) ==== @@ -7,4 +8,5 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW var r5 = foo3((x: number) => ''); // error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => number'. -!!! error TS2345: Type 'string' is not assignable to type 'number'. \ No newline at end of file +!!! error TS2345: Signature '(x: number): number' has no corresponding signature in '(x: number) => string' +!!! error TS2345: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/subtypingWithCallSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/subtypingWithCallSignaturesWithOptionalParameters.errors.txt index b5d23da2241..1ae866d4722 100644 --- a/tests/baselines/reference/subtypingWithCallSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/subtypingWithCallSignaturesWithOptionalParameters.errors.txt @@ -1,9 +1,11 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithOptionalParameters.ts(19,11): error TS2430: Interface 'I3' incorrectly extends interface 'Base'. Types of property 'a' are incompatible. Type '(x: number) => number' is not assignable to type '() => number'. + Signature '(): number' has no corresponding signature in '(x: number) => number' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithOptionalParameters.ts(49,11): error TS2430: Interface 'I10' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type '(x: number, y: number) => number' is not assignable to type '(x: number) => number'. + Signature '(x: number): number' has no corresponding signature in '(x: number, y: number) => number' ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithOptionalParameters.ts (2 errors) ==== @@ -30,6 +32,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x: number) => number' is not assignable to type '() => number'. +!!! error TS2430: Signature '(): number' has no corresponding signature in '(x: number) => number' a: (x: number) => number; // error, too many required params } @@ -64,6 +67,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: number, y: number) => number' is not assignable to type '(x: number) => number'. +!!! error TS2430: Signature '(x: number): number' has no corresponding signature in '(x: number, y: number) => number' a3: (x: number, y: number) => number; // error, too many required params } diff --git a/tests/baselines/reference/subtypingWithCallSignaturesWithRestParameters.errors.txt b/tests/baselines/reference/subtypingWithCallSignaturesWithRestParameters.errors.txt index f4a141ff390..aee119d6f73 100644 --- a/tests/baselines/reference/subtypingWithCallSignaturesWithRestParameters.errors.txt +++ b/tests/baselines/reference/subtypingWithCallSignaturesWithRestParameters.errors.txt @@ -1,58 +1,69 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(18,11): error TS2430: Interface 'I1C' incorrectly extends interface 'Base'. Types of property 'a' are incompatible. Type '(...args: string[]) => number' is not assignable to type '(...args: number[]) => number'. - Types of parameters 'args' and 'args' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(...args: number[]): number' has no corresponding signature in '(...args: string[]) => number' + Types of parameters 'args' and 'args' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(34,11): error TS2430: Interface 'I3B' incorrectly extends interface 'Base'. Types of property 'a' are incompatible. Type '(x?: string) => number' is not assignable to type '(...args: number[]) => number'. - Types of parameters 'x' and 'args' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(...args: number[]): number' has no corresponding signature in '(x?: string) => number' + Types of parameters 'x' and 'args' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(60,11): error TS2430: Interface 'I6C' incorrectly extends interface 'Base'. Types of property 'a2' are incompatible. Type '(x: number, ...args: string[]) => number' is not assignable to type '(x: number, ...z: number[]) => number'. - Types of parameters 'args' and 'z' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' + Types of parameters 'args' and 'z' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(90,11): error TS2430: Interface 'I10B' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type '(x: number, y?: number, z?: number) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number, z?: number) => number' + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(94,11): error TS2430: Interface 'I10C' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type '(x: number, ...z: number[]) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Types of parameters 'z' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...z: number[]) => number' + Types of parameters 'z' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(98,11): error TS2430: Interface 'I10D' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type '(x: string, y?: string, z?: string) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: string, y?: string, z?: string) => number' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(102,11): error TS2430: Interface 'I10E' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type '(x: number, ...z: string[]) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Types of parameters 'z' and 'z' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...z: string[]) => number' + Types of parameters 'z' and 'z' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(110,11): error TS2430: Interface 'I12' incorrectly extends interface 'Base'. Types of property 'a4' are incompatible. Type '(x?: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x?: number, y?: number) => number' + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(118,11): error TS2430: Interface 'I14' incorrectly extends interface 'Base'. Types of property 'a4' are incompatible. Type '(x: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number) => number' + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(126,11): error TS2430: Interface 'I16' incorrectly extends interface 'Base'. Types of property 'a4' are incompatible. Type '(x: number, ...args: string[]) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Types of parameters 'args' and 'z' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' + Types of parameters 'args' and 'z' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(130,11): error TS2430: Interface 'I17' incorrectly extends interface 'Base'. Types of property 'a4' are incompatible. Type '(...args: number[]) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Types of parameters 'args' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(...args: number[]) => number' + Types of parameters 'args' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts (11 errors) ==== @@ -78,8 +89,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I1C' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(...args: string[]) => number' is not assignable to type '(...args: number[]) => number'. -!!! error TS2430: Types of parameters 'args' and 'args' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Signature '(...args: number[]): number' has no corresponding signature in '(...args: string[]) => number' +!!! error TS2430: Types of parameters 'args' and 'args' are incompatible. +!!! error TS2430: Type 'string' is not assignable to type 'number'. a: (...args: string[]) => number; // error, type mismatch } @@ -100,8 +112,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3B' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x?: string) => number' is not assignable to type '(...args: number[]) => number'. -!!! error TS2430: Types of parameters 'x' and 'args' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Signature '(...args: number[]): number' has no corresponding signature in '(x?: string) => number' +!!! error TS2430: Types of parameters 'x' and 'args' are incompatible. +!!! error TS2430: Type 'string' is not assignable to type 'number'. a: (x?: string) => number; // error, incompatible type } @@ -132,8 +145,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I6C' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a2' are incompatible. !!! error TS2430: Type '(x: number, ...args: string[]) => number' is not assignable to type '(x: number, ...z: number[]) => number'. -!!! error TS2430: Types of parameters 'args' and 'z' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Signature '(x: number, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' +!!! error TS2430: Types of parameters 'args' and 'z' are incompatible. +!!! error TS2430: Type 'string' is not assignable to type 'number'. a2: (x: number, ...args: string[]) => number; // error } @@ -168,8 +182,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10B' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: number, y?: number, z?: number) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number, z?: number) => number' +!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a3: (x: number, y?: number, z?: number) => number; // error } @@ -178,8 +193,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10C' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: number, ...z: number[]) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Types of parameters 'z' and 'y' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...z: number[]) => number' +!!! error TS2430: Types of parameters 'z' and 'y' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a3: (x: number, ...z: number[]) => number; // error } @@ -188,8 +204,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10D' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: string, y?: string, z?: string) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: string, y?: string, z?: string) => number' +!!! error TS2430: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2430: Type 'string' is not assignable to type 'number'. a3: (x: string, y?: string, z?: string) => number; // error, incompatible types } @@ -198,8 +215,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10E' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: number, ...z: string[]) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Types of parameters 'z' and 'z' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...z: string[]) => number' +!!! error TS2430: Types of parameters 'z' and 'z' are incompatible. +!!! error TS2430: Type 'string' is not assignable to type 'number'. a3: (x: number, ...z: string[]) => number; // error } @@ -212,8 +230,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I12' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a4' are incompatible. !!! error TS2430: Type '(x?: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x?: number, y?: number) => number' +!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a4: (x?: number, y?: number) => number; // error, type mismatch } @@ -226,8 +245,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I14' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a4' are incompatible. !!! error TS2430: Type '(x: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number) => number' +!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a4: (x: number, y?: number) => number; // error, second param has type mismatch } @@ -240,8 +260,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I16' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a4' are incompatible. !!! error TS2430: Type '(x: number, ...args: string[]) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Types of parameters 'args' and 'z' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' +!!! error TS2430: Types of parameters 'args' and 'z' are incompatible. +!!! error TS2430: Type 'string' is not assignable to type 'number'. a4: (x: number, ...args: string[]) => number; // error, rest param has type mismatch } @@ -250,8 +271,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I17' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a4' are incompatible. !!! error TS2430: Type '(...args: number[]) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Types of parameters 'args' and 'y' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(...args: number[]) => number' +!!! error TS2430: Types of parameters 'args' and 'y' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a4: (...args: number[]) => number; // error } \ No newline at end of file diff --git a/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.errors.txt b/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.errors.txt index da742fcd69c..54eec881c14 100644 --- a/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.errors.txt +++ b/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.errors.txt @@ -1,7 +1,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithSpecializedSignatures.ts(70,15): error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type '(x: string) => string' is not assignable to type '{ (x: "a"): number; (x: string): number; }'. - Type 'string' is not assignable to type 'number'. + Signature '(x: string): number' has no corresponding signature in '(x: string) => string' + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithSpecializedSignatures.ts (1 errors) ==== @@ -79,7 +80,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x: string) => string' is not assignable to type '{ (x: "a"): number; (x: string): number; }'. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Signature '(x: string): number' has no corresponding signature in '(x: string) => string' +!!! error TS2430: Type 'string' is not assignable to type 'number'. // N's a: (x: string) => string; // error because base returns non-void; } diff --git a/tests/baselines/reference/subtypingWithConstructSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/subtypingWithConstructSignaturesWithOptionalParameters.errors.txt index e041b1cdce0..a30feba51c9 100644 --- a/tests/baselines/reference/subtypingWithConstructSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/subtypingWithConstructSignaturesWithOptionalParameters.errors.txt @@ -1,9 +1,11 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignaturesWithOptionalParameters.ts(19,11): error TS2430: Interface 'I3' incorrectly extends interface 'Base'. Types of property 'a' are incompatible. Type 'new (x: number) => number' is not assignable to type 'new () => number'. + Signature 'new (): number' has no corresponding signature in 'new (x: number) => number' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignaturesWithOptionalParameters.ts(49,11): error TS2430: Interface 'I10' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type 'new (x: number, y: number) => number' is not assignable to type 'new (x: number) => number'. + Signature 'new (x: number): number' has no corresponding signature in 'new (x: number, y: number) => number' ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignaturesWithOptionalParameters.ts (2 errors) ==== @@ -30,6 +32,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type 'new (x: number) => number' is not assignable to type 'new () => number'. +!!! error TS2430: Signature 'new (): number' has no corresponding signature in 'new (x: number) => number' a: new (x: number) => number; // error, too many required params } @@ -64,6 +67,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type 'new (x: number, y: number) => number' is not assignable to type 'new (x: number) => number'. +!!! error TS2430: Signature 'new (x: number): number' has no corresponding signature in 'new (x: number, y: number) => number' a3: new (x: number, y: number) => number; // error, too many required params } diff --git a/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.errors.txt b/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.errors.txt index 8a885a2455f..fd9e6faa9ec 100644 --- a/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.errors.txt +++ b/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.errors.txt @@ -1,7 +1,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignaturesWithSpecializedSignatures.ts(70,15): error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type 'new (x: string) => string' is not assignable to type '{ new (x: "a"): number; new (x: string): number; }'. - Type 'string' is not assignable to type 'number'. + Signature 'new (x: string): number' has no corresponding signature in 'new (x: string) => string' + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignaturesWithSpecializedSignatures.ts (1 errors) ==== @@ -79,7 +80,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type 'new (x: string) => string' is not assignable to type '{ new (x: "a"): number; new (x: string): number; }'. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Signature 'new (x: string): number' has no corresponding signature in 'new (x: string) => string' +!!! error TS2430: Type 'string' is not assignable to type 'number'. // N's a: new (x: string) => string; // error because base returns non-void; } diff --git a/tests/baselines/reference/subtypingWithGenericCallSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/subtypingWithGenericCallSignaturesWithOptionalParameters.errors.txt index e8f50236cba..316b5713835 100644 --- a/tests/baselines/reference/subtypingWithGenericCallSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/subtypingWithGenericCallSignaturesWithOptionalParameters.errors.txt @@ -1,21 +1,27 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts(20,15): error TS2430: Interface 'I3' incorrectly extends interface 'Base'. Types of property 'a' are incompatible. Type '(x: T) => T' is not assignable to type '() => T'. + Signature '(): T' has no corresponding signature in '(x: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts(50,15): error TS2430: Interface 'I10' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type '(x: T, y: T) => T' is not assignable to type '(x: T) => T'. + Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts(108,15): error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type '(x: T) => T' is not assignable to type '() => T'. + Signature '(): T' has no corresponding signature in '(x: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts(138,15): error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. Types of property 'a3' are incompatible. Type '(x: T, y: T) => T' is not assignable to type '(x: T) => T'. + Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts(196,15): error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type '(x: T) => T' is not assignable to type '() => T'. + Signature '(): T' has no corresponding signature in '(x: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts(226,15): error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. Types of property 'a3' are incompatible. Type '(x: T, y: T) => T' is not assignable to type '(x: T) => T'. + Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => T' ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts (6 errors) ==== @@ -43,6 +49,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x: T) => T' is not assignable to type '() => T'. +!!! error TS2430: Signature '(): T' has no corresponding signature in '(x: T) => T' a: (x: T) => T; // error, too many required params } @@ -77,6 +84,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: T, y: T) => T' is not assignable to type '(x: T) => T'. +!!! error TS2430: Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => T' a3: (x: T, y: T) => T; // error, too many required params } @@ -139,6 +147,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x: T) => T' is not assignable to type '() => T'. +!!! error TS2430: Signature '(): T' has no corresponding signature in '(x: T) => T' a: (x: T) => T; } @@ -173,6 +182,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: T, y: T) => T' is not assignable to type '(x: T) => T'. +!!! error TS2430: Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => T' a3: (x: T, y: T) => T; } @@ -235,6 +245,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x: T) => T' is not assignable to type '() => T'. +!!! error TS2430: Signature '(): T' has no corresponding signature in '(x: T) => T' a: (x: T) => T; // error, not identical and contextual signature instatiation can't make inference from T to T } @@ -269,6 +280,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: T, y: T) => T' is not assignable to type '(x: T) => T'. +!!! error TS2430: Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => T' a3: (x: T, y: T) => T; // error, too many required params } diff --git a/tests/baselines/reference/subtypingWithGenericConstructSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/subtypingWithGenericConstructSignaturesWithOptionalParameters.errors.txt index 27066058238..66dd34f9cb6 100644 --- a/tests/baselines/reference/subtypingWithGenericConstructSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/subtypingWithGenericConstructSignaturesWithOptionalParameters.errors.txt @@ -1,21 +1,27 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts(20,15): error TS2430: Interface 'I3' incorrectly extends interface 'Base'. Types of property 'a' are incompatible. Type 'new (x: T) => T' is not assignable to type 'new () => T'. + Signature 'new (): T' has no corresponding signature in 'new (x: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts(50,15): error TS2430: Interface 'I10' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type 'new (x: T, y: T) => T' is not assignable to type 'new (x: T) => T'. + Signature 'new (x: T): T' has no corresponding signature in 'new (x: T, y: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts(108,15): error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type 'new (x: T) => T' is not assignable to type 'new () => T'. + Signature 'new (): T' has no corresponding signature in 'new (x: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts(138,15): error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. Types of property 'a3' are incompatible. Type 'new (x: T, y: T) => T' is not assignable to type 'new (x: T) => T'. + Signature 'new (x: T): T' has no corresponding signature in 'new (x: T, y: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts(196,15): error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type 'new (x: T) => T' is not assignable to type 'new () => T'. + Signature 'new (): T' has no corresponding signature in 'new (x: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts(226,15): error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. Types of property 'a3' are incompatible. Type 'new (x: T, y: T) => T' is not assignable to type 'new (x: T) => T'. + Signature 'new (x: T): T' has no corresponding signature in 'new (x: T, y: T) => T' ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts (6 errors) ==== @@ -43,6 +49,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type 'new (x: T) => T' is not assignable to type 'new () => T'. +!!! error TS2430: Signature 'new (): T' has no corresponding signature in 'new (x: T) => T' a: new (x: T) => T; // error, too many required params } @@ -77,6 +84,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type 'new (x: T, y: T) => T' is not assignable to type 'new (x: T) => T'. +!!! error TS2430: Signature 'new (x: T): T' has no corresponding signature in 'new (x: T, y: T) => T' a3: new (x: T, y: T) => T; // error, too many required params } @@ -139,6 +147,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type 'new (x: T) => T' is not assignable to type 'new () => T'. +!!! error TS2430: Signature 'new (): T' has no corresponding signature in 'new (x: T) => T' a: new (x: T) => T; } @@ -173,6 +182,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type 'new (x: T, y: T) => T' is not assignable to type 'new (x: T) => T'. +!!! error TS2430: Signature 'new (x: T): T' has no corresponding signature in 'new (x: T, y: T) => T' a3: new (x: T, y: T) => T; } @@ -235,6 +245,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type 'new (x: T) => T' is not assignable to type 'new () => T'. +!!! error TS2430: Signature 'new (): T' has no corresponding signature in 'new (x: T) => T' a: new (x: T) => T; // error, not identical and contextual signature instatiation can't make inference from T to T } @@ -269,6 +280,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type 'new (x: T, y: T) => T' is not assignable to type 'new (x: T) => T'. +!!! error TS2430: Signature 'new (x: T): T' has no corresponding signature in 'new (x: T, y: T) => T' a3: new (x: T, y: T) => T; // error, too many required params } diff --git a/tests/baselines/reference/symbolProperty24.errors.txt b/tests/baselines/reference/symbolProperty24.errors.txt index 25cba184e25..58ff17544f9 100644 --- a/tests/baselines/reference/symbolProperty24.errors.txt +++ b/tests/baselines/reference/symbolProperty24.errors.txt @@ -1,7 +1,8 @@ tests/cases/conformance/es6/Symbols/symbolProperty24.ts(5,7): error TS2420: Class 'C' incorrectly implements interface 'I'. Types of property '[Symbol.toPrimitive]' are incompatible. Type '() => string' is not assignable to type '() => boolean'. - Type 'string' is not assignable to type 'boolean'. + Signature '(): boolean' has no corresponding signature in '() => string' + Type 'string' is not assignable to type 'boolean'. ==== tests/cases/conformance/es6/Symbols/symbolProperty24.ts (1 errors) ==== @@ -14,7 +15,8 @@ tests/cases/conformance/es6/Symbols/symbolProperty24.ts(5,7): error TS2420: Clas !!! error TS2420: Class 'C' incorrectly implements interface 'I'. !!! error TS2420: Types of property '[Symbol.toPrimitive]' are incompatible. !!! error TS2420: Type '() => string' is not assignable to type '() => boolean'. -!!! error TS2420: Type 'string' is not assignable to type 'boolean'. +!!! error TS2420: Signature '(): boolean' has no corresponding signature in '() => string' +!!! error TS2420: Type 'string' is not assignable to type 'boolean'. [Symbol.toPrimitive]() { return ""; } diff --git a/tests/baselines/reference/targetTypeVoidFunc.errors.txt b/tests/baselines/reference/targetTypeVoidFunc.errors.txt index f9434c1d630..daa25885729 100644 --- a/tests/baselines/reference/targetTypeVoidFunc.errors.txt +++ b/tests/baselines/reference/targetTypeVoidFunc.errors.txt @@ -1,4 +1,5 @@ tests/cases/compiler/targetTypeVoidFunc.ts(2,12): error TS2322: Type '() => void' is not assignable to type 'new () => number'. + Signature 'new (): number' has no corresponding signature in '() => void' ==== tests/cases/compiler/targetTypeVoidFunc.ts (1 errors) ==== @@ -6,6 +7,7 @@ tests/cases/compiler/targetTypeVoidFunc.ts(2,12): error TS2322: Type '() => void return function () { return; } ~~~~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'new () => number'. +!!! error TS2322: Signature 'new (): number' has no corresponding signature in '() => void' }; var x = f1(); diff --git a/tests/baselines/reference/tupleTypes.errors.txt b/tests/baselines/reference/tupleTypes.errors.txt index 8f418f98157..c1ef7f59454 100644 --- a/tests/baselines/reference/tupleTypes.errors.txt +++ b/tests/baselines/reference/tupleTypes.errors.txt @@ -10,13 +10,15 @@ tests/cases/compiler/tupleTypes.ts(41,1): error TS2322: Type 'undefined[]' is no tests/cases/compiler/tupleTypes.ts(47,1): error TS2322: Type '[number, string]' is not assignable to type 'number[]'. Types of property 'pop' are incompatible. Type '() => number | string' is not assignable to type '() => number'. - Type 'number | string' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => number | string' + Type 'number | string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/tupleTypes.ts(49,1): error TS2322: Type '[number, {}]' is not assignable to type 'number[]'. Types of property 'pop' are incompatible. Type '() => number | {}' is not assignable to type '() => number'. - Type 'number | {}' is not assignable to type 'number'. - Type '{}' is not assignable to type 'number'. + Signature '(): number' has no corresponding signature in '() => number | {}' + Type 'number | {}' is not assignable to type 'number'. + Type '{}' is not assignable to type 'number'. tests/cases/compiler/tupleTypes.ts(50,1): error TS2322: Type '[number, number]' is not assignable to type '[number, string]'. Types of property '1' are incompatible. Type 'number' is not assignable to type 'string'. @@ -91,16 +93,18 @@ tests/cases/compiler/tupleTypes.ts(51,1): error TS2322: Type '[number, {}]' is n !!! error TS2322: Type '[number, string]' is not assignable to type 'number[]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => number | string' is not assignable to type '() => number'. -!!! error TS2322: Type 'number | string' is not assignable to type 'number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '() => number | string' +!!! error TS2322: Type 'number | string' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = a2; a = a3; // Error ~ !!! error TS2322: Type '[number, {}]' is not assignable to type 'number[]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => number | {}' is not assignable to type '() => number'. -!!! error TS2322: Type 'number | {}' is not assignable to type 'number'. -!!! error TS2322: Type '{}' is not assignable to type 'number'. +!!! error TS2322: Signature '(): number' has no corresponding signature in '() => number | {}' +!!! error TS2322: Type 'number | {}' is not assignable to type 'number'. +!!! error TS2322: Type '{}' is not assignable to type 'number'. a1 = a2; // Error ~~ !!! error TS2322: Type '[number, number]' is not assignable to type '[number, string]'. diff --git a/tests/baselines/reference/typeArgumentInferenceConstructSignatures.errors.txt b/tests/baselines/reference/typeArgumentInferenceConstructSignatures.errors.txt index d058426b9c9..ecfb70a7776 100644 --- a/tests/baselines/reference/typeArgumentInferenceConstructSignatures.errors.txt +++ b/tests/baselines/reference/typeArgumentInferenceConstructSignatures.errors.txt @@ -1,14 +1,17 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(25,35): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(51,19): error TS2304: Cannot find name 'Window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(61,39): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => string' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(71,39): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => string' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(81,45): error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. - Types of parameters 'n' and 'b' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(b: number): number' has no corresponding signature in '(n: string) => string' + Types of parameters 'n' and 'b' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(106,15): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'string' is not a valid type argument because it is not a supertype of candidate 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(118,9): error TS2304: Cannot find name 'Window'. @@ -89,8 +92,9 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstruct new someGenerics4('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. new someGenerics4(null, null); // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type @@ -103,8 +107,9 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstruct new someGenerics5('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. new someGenerics5(null, null); // Generic call with multiple arguments of function types that each have parameters of the same generic type @@ -117,8 +122,9 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstruct new someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // Error ~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. -!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Signature '(b: number): number' has no corresponding signature in '(n: string) => string' +!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. new someGenerics6((n: number) => n, (n: number) => n, (n: number) => n); // Generic call with multiple arguments of function types that each have parameters of different generic type diff --git a/tests/baselines/reference/typeArgumentInferenceErrors.errors.txt b/tests/baselines/reference/typeArgumentInferenceErrors.errors.txt index 9bd25dda4e6..dd9e29b7c31 100644 --- a/tests/baselines/reference/typeArgumentInferenceErrors.errors.txt +++ b/tests/baselines/reference/typeArgumentInferenceErrors.errors.txt @@ -1,13 +1,16 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts(3,31): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts(7,35): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => string' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts(11,35): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => string' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts(15,41): error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. - Types of parameters 'n' and 'b' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(b: number): number' has no corresponding signature in '(n: string) => string' + Types of parameters 'n' and 'b' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts (4 errors) ==== @@ -22,22 +25,25 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts someGenerics4('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type function someGenerics5(n: T, f: (x: U) => void) { } someGenerics5('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. // Generic call with multiple arguments of function types that each have parameters of the same generic type function someGenerics6(a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) { } someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // Error ~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. -!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Signature '(b: number): number' has no corresponding signature in '(n: string) => string' +!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/typeArgumentInferenceWithClassExpression2.errors.txt b/tests/baselines/reference/typeArgumentInferenceWithClassExpression2.errors.txt index eb74ff0ade0..e949a0a2fd8 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithClassExpression2.errors.txt +++ b/tests/baselines/reference/typeArgumentInferenceWithClassExpression2.errors.txt @@ -1,6 +1,7 @@ tests/cases/conformance/es6/classExpressions/typeArgumentInferenceWithClassExpression2.ts(6,5): error TS2345: Argument of type 'typeof (Anonymous class)' is not assignable to parameter of type 'typeof (Anonymous class)'. - Type '(Anonymous class)' is not assignable to type 'foo<{}>.(Anonymous class)'. - Property 'prop' is missing in type '(Anonymous class)'. + Signature 'new (): foo<{}>.(Anonymous class)' has no corresponding signature in 'typeof (Anonymous class)' + Type '(Anonymous class)' is not assignable to type 'foo<{}>.(Anonymous class)'. + Property 'prop' is missing in type '(Anonymous class)'. ==== tests/cases/conformance/es6/classExpressions/typeArgumentInferenceWithClassExpression2.ts (1 errors) ==== @@ -12,5 +13,6 @@ tests/cases/conformance/es6/classExpressions/typeArgumentInferenceWithClassExpre foo(class { static prop = "hello" }).length; ~~~~~ !!! error TS2345: Argument of type 'typeof (Anonymous class)' is not assignable to parameter of type 'typeof (Anonymous class)'. -!!! error TS2345: Type '(Anonymous class)' is not assignable to type 'foo<{}>.(Anonymous class)'. -!!! error TS2345: Property 'prop' is missing in type '(Anonymous class)'. \ No newline at end of file +!!! error TS2345: Signature 'new (): foo<{}>.(Anonymous class)' has no corresponding signature in 'typeof (Anonymous class)' +!!! error TS2345: Type '(Anonymous class)' is not assignable to type 'foo<{}>.(Anonymous class)'. +!!! error TS2345: Property 'prop' is missing in type '(Anonymous class)'. \ No newline at end of file diff --git a/tests/baselines/reference/typeArgumentInferenceWithConstraints.errors.txt b/tests/baselines/reference/typeArgumentInferenceWithConstraints.errors.txt index 0c1e8cc4e97..3f0390ec46a 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithConstraints.errors.txt +++ b/tests/baselines/reference/typeArgumentInferenceWithConstraints.errors.txt @@ -4,15 +4,18 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(32,34): error TS2304: Cannot find name 'Window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(34,15): error TS2304: Cannot find name 'Window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(41,35): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => string' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(48,35): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(x: number): void' has no corresponding signature in '(x: string) => string' + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(49,15): error TS2344: Type 'string' does not satisfy the constraint 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(55,41): error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. - Types of parameters 'n' and 'b' are incompatible. - Type 'string' is not assignable to type 'number'. + Signature '(b: number): number' has no corresponding signature in '(n: string) => string' + Types of parameters 'n' and 'b' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(66,31): error TS2345: Argument of type '(a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void' is not assignable to parameter of type 'string'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(73,11): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'string' is not a valid type argument because it is not a supertype of candidate 'number'. @@ -80,8 +83,9 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst someGenerics4('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. someGenerics4(null, null); // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type @@ -91,8 +95,9 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst someGenerics5('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. someGenerics5(null, null); // Error ~~~~~~ !!! error TS2344: Type 'string' does not satisfy the constraint 'number'. @@ -104,8 +109,9 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // Error ~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. -!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Signature '(b: number): number' has no corresponding signature in '(n: string) => string' +!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. someGenerics6((n: number) => n, (n: number) => n, (n: number) => n); // Generic call with multiple arguments of function types that each have parameters of different generic type diff --git a/tests/baselines/reference/typeGuardFunctionErrors.errors.txt b/tests/baselines/reference/typeGuardFunctionErrors.errors.txt index 92d9d21f0cc..fb17775bc31 100644 --- a/tests/baselines/reference/typeGuardFunctionErrors.errors.txt +++ b/tests/baselines/reference/typeGuardFunctionErrors.errors.txt @@ -14,14 +14,18 @@ tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(60,7): tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(65,7): error TS2339: Property 'propB' does not exist on type 'A'. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(70,7): error TS2339: Property 'propB' does not exist on type 'A'. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(75,46): error TS2345: Argument of type '(p1: any) => p1 is C' is not assignable to parameter of type '(p1: any) => p1 is B'. - Type predicate 'p1 is C' is not assignable to 'p1 is B'. - Type 'C' is not assignable to type 'B'. + Signature '(p1: any): p1 is B' has no corresponding signature in '(p1: any) => p1 is C' + Type predicate 'p1 is C' is not assignable to 'p1 is B'. + Type 'C' is not assignable to type 'B'. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(79,1): error TS2322: Type '(p1: any, p2: any) => boolean' is not assignable to type '(p1: any, p2: any) => p1 is A'. - Signature '(p1: any, p2: any): boolean' must have a type predicate. + Signature '(p1: any, p2: any): p1 is A' has no corresponding signature in '(p1: any, p2: any) => boolean' + Signature '(p1: any, p2: any): boolean' must have a type predicate. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(85,1): error TS2322: Type '(p1: any, p2: any) => p2 is A' is not assignable to type '(p1: any, p2: any) => p1 is A'. - Type predicate 'p2 is A' is not assignable to 'p1 is A'. - Parameter 'p2' is not in the same position as parameter 'p1'. + Signature '(p1: any, p2: any): p1 is A' has no corresponding signature in '(p1: any, p2: any) => p2 is A' + Type predicate 'p2 is A' is not assignable to 'p1 is A'. + Parameter 'p2' is not in the same position as parameter 'p1'. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(91,1): error TS2322: Type '(p1: any, p2: any, p3: any) => p1 is A' is not assignable to type '(p1: any, p2: any) => p1 is A'. + Signature '(p1: any, p2: any): p1 is A' has no corresponding signature in '(p1: any, p2: any, p3: any) => p1 is A' tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(96,9): error TS1228: A type predicate is only allowed in return type position for functions and methods. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(97,16): error TS1228: A type predicate is only allowed in return type position for functions and methods. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(98,20): error TS1228: A type predicate is only allowed in return type position for functions and methods. @@ -147,15 +151,17 @@ tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(137,39 acceptingDifferentSignatureTypeGuardFunction(isC); ~~~ !!! error TS2345: Argument of type '(p1: any) => p1 is C' is not assignable to parameter of type '(p1: any) => p1 is B'. -!!! error TS2345: Type predicate 'p1 is C' is not assignable to 'p1 is B'. -!!! error TS2345: Type 'C' is not assignable to type 'B'. +!!! error TS2345: Signature '(p1: any): p1 is B' has no corresponding signature in '(p1: any) => p1 is C' +!!! error TS2345: Type predicate 'p1 is C' is not assignable to 'p1 is B'. +!!! error TS2345: Type 'C' is not assignable to type 'B'. // Boolean not assignable to type guard var assign1: (p1, p2) => p1 is A; assign1 = function(p1, p2): boolean { ~~~~~~~ !!! error TS2322: Type '(p1: any, p2: any) => boolean' is not assignable to type '(p1: any, p2: any) => p1 is A'. -!!! error TS2322: Signature '(p1: any, p2: any): boolean' must have a type predicate. +!!! error TS2322: Signature '(p1: any, p2: any): p1 is A' has no corresponding signature in '(p1: any, p2: any) => boolean' +!!! error TS2322: Signature '(p1: any, p2: any): boolean' must have a type predicate. return true; }; @@ -164,8 +170,9 @@ tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(137,39 assign2 = function(p1, p2): p2 is A { ~~~~~~~ !!! error TS2322: Type '(p1: any, p2: any) => p2 is A' is not assignable to type '(p1: any, p2: any) => p1 is A'. -!!! error TS2322: Type predicate 'p2 is A' is not assignable to 'p1 is A'. -!!! error TS2322: Parameter 'p2' is not in the same position as parameter 'p1'. +!!! error TS2322: Signature '(p1: any, p2: any): p1 is A' has no corresponding signature in '(p1: any, p2: any) => p2 is A' +!!! error TS2322: Type predicate 'p2 is A' is not assignable to 'p1 is A'. +!!! error TS2322: Parameter 'p2' is not in the same position as parameter 'p1'. return true; }; @@ -174,6 +181,7 @@ tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(137,39 assign3 = function(p1, p2, p3): p1 is A { ~~~~~~~ !!! error TS2322: Type '(p1: any, p2: any, p3: any) => p1 is A' is not assignable to type '(p1: any, p2: any) => p1 is A'. +!!! error TS2322: Signature '(p1: any, p2: any): p1 is A' has no corresponding signature in '(p1: any, p2: any, p3: any) => p1 is A' return true; }; diff --git a/tests/baselines/reference/typeName1.errors.txt b/tests/baselines/reference/typeName1.errors.txt index 84c8be360bd..e77e7c58535 100644 --- a/tests/baselines/reference/typeName1.errors.txt +++ b/tests/baselines/reference/typeName1.errors.txt @@ -3,6 +3,7 @@ tests/cases/compiler/typeName1.ts(9,5): error TS2322: Type 'number' is not assig tests/cases/compiler/typeName1.ts(10,5): error TS2322: Type 'number' is not assignable to type '{ f(s: string): number; }'. Property 'f' is missing in type 'Number'. tests/cases/compiler/typeName1.ts(11,5): error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; }'. + Signature '(s: string): number' has no corresponding signature in 'Number' tests/cases/compiler/typeName1.ts(12,5): error TS2322: Type 'number' is not assignable to type '{ x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. Property 'x' is missing in type 'Number'. tests/cases/compiler/typeName1.ts(13,5): error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. @@ -10,6 +11,7 @@ tests/cases/compiler/typeName1.ts(13,5): error TS2322: Type 'number' is not assi tests/cases/compiler/typeName1.ts(14,5): error TS2322: Type 'number' is not assignable to type '{ z: number; f: { (n: number): string; (s: string): number; }; }'. Property 'z' is missing in type 'Number'. tests/cases/compiler/typeName1.ts(15,5): error TS2322: Type 'number' is not assignable to type '(s: string) => boolean'. + Signature '(s: string): boolean' has no corresponding signature in 'Number' tests/cases/compiler/typeName1.ts(16,5): error TS2322: Type 'number' is not assignable to type '{ (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }'. Property 'z' is missing in type 'Number'. tests/cases/compiler/typeName1.ts(16,10): error TS2411: Property 'z' of type 'I' is not assignable to string index type '{ x: any; y: any; }'. @@ -49,6 +51,7 @@ tests/cases/compiler/typeName1.ts(23,5): error TS2322: Type 'typeof C' is not as var x3:{ (s:string):number;(n:number):string; }=3; ~~ !!! error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; }'. +!!! error TS2322: Signature '(s: string): number' has no corresponding signature in 'Number' var x4:{ x;y;z:number;f(n:number):string;f(s:string):number; }=3; ~~ !!! error TS2322: Type 'number' is not assignable to type '{ x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. @@ -64,6 +67,7 @@ tests/cases/compiler/typeName1.ts(23,5): error TS2322: Type 'typeof C' is not as var x7:(s:string)=>boolean=3; ~~ !!! error TS2322: Type 'number' is not assignable to type '(s: string) => boolean'. +!!! error TS2322: Signature '(s: string): boolean' has no corresponding signature in 'Number' var x8:{ z:I;[s:string]:{ x; y; };[n:number]:{x; y;};():boolean; }=3; ~~ !!! error TS2322: Type 'number' is not assignable to type '{ (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }'. diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence.errors.txt b/tests/baselines/reference/typeParameterArgumentEquivalence.errors.txt index f47266f2850..789820116ba 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence.errors.txt +++ b/tests/baselines/reference/typeParameterArgumentEquivalence.errors.txt @@ -1,9 +1,11 @@ tests/cases/compiler/typeParameterArgumentEquivalence.ts(4,5): error TS2322: Type '(item: T) => boolean' is not assignable to type '(item: number) => boolean'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'number'. + Signature '(item: number): boolean' has no corresponding signature in '(item: T) => boolean' + Types of parameters 'item' and 'item' are incompatible. + Type 'T' is not assignable to type 'number'. tests/cases/compiler/typeParameterArgumentEquivalence.ts(5,5): error TS2322: Type '(item: number) => boolean' is not assignable to type '(item: T) => boolean'. - Types of parameters 'item' and 'item' are incompatible. - Type 'number' is not assignable to type 'T'. + Signature '(item: T): boolean' has no corresponding signature in '(item: number) => boolean' + Types of parameters 'item' and 'item' are incompatible. + Type 'number' is not assignable to type 'T'. ==== tests/cases/compiler/typeParameterArgumentEquivalence.ts (2 errors) ==== @@ -13,12 +15,14 @@ tests/cases/compiler/typeParameterArgumentEquivalence.ts(5,5): error TS2322: Typ x = y; // Should be an error ~ !!! error TS2322: Type '(item: T) => boolean' is not assignable to type '(item: number) => boolean'. -!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. -!!! error TS2322: Type 'T' is not assignable to type 'number'. +!!! error TS2322: Signature '(item: number): boolean' has no corresponding signature in '(item: T) => boolean' +!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. +!!! error TS2322: Type 'T' is not assignable to type 'number'. y = x; // Shound be an error ~ !!! error TS2322: Type '(item: number) => boolean' is not assignable to type '(item: T) => boolean'. -!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'T'. +!!! error TS2322: Signature '(item: T): boolean' has no corresponding signature in '(item: number) => boolean' +!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'T'. } \ No newline at end of file diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence2.errors.txt b/tests/baselines/reference/typeParameterArgumentEquivalence2.errors.txt index 2aa8d77ba6d..a50fd533ae6 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence2.errors.txt +++ b/tests/baselines/reference/typeParameterArgumentEquivalence2.errors.txt @@ -1,9 +1,11 @@ tests/cases/compiler/typeParameterArgumentEquivalence2.ts(4,5): error TS2322: Type '(item: T) => boolean' is not assignable to type '(item: U) => boolean'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'U'. + Signature '(item: U): boolean' has no corresponding signature in '(item: T) => boolean' + Types of parameters 'item' and 'item' are incompatible. + Type 'T' is not assignable to type 'U'. tests/cases/compiler/typeParameterArgumentEquivalence2.ts(5,5): error TS2322: Type '(item: U) => boolean' is not assignable to type '(item: T) => boolean'. - Types of parameters 'item' and 'item' are incompatible. - Type 'U' is not assignable to type 'T'. + Signature '(item: T): boolean' has no corresponding signature in '(item: U) => boolean' + Types of parameters 'item' and 'item' are incompatible. + Type 'U' is not assignable to type 'T'. ==== tests/cases/compiler/typeParameterArgumentEquivalence2.ts (2 errors) ==== @@ -13,12 +15,14 @@ tests/cases/compiler/typeParameterArgumentEquivalence2.ts(5,5): error TS2322: Ty x = y; // Should be an error ~ !!! error TS2322: Type '(item: T) => boolean' is not assignable to type '(item: U) => boolean'. -!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. -!!! error TS2322: Type 'T' is not assignable to type 'U'. +!!! error TS2322: Signature '(item: U): boolean' has no corresponding signature in '(item: T) => boolean' +!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. +!!! error TS2322: Type 'T' is not assignable to type 'U'. y = x; // Shound be an error ~ !!! error TS2322: Type '(item: U) => boolean' is not assignable to type '(item: T) => boolean'. -!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. -!!! error TS2322: Type 'U' is not assignable to type 'T'. +!!! error TS2322: Signature '(item: T): boolean' has no corresponding signature in '(item: U) => boolean' +!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. +!!! error TS2322: Type 'U' is not assignable to type 'T'. } \ No newline at end of file diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence3.errors.txt b/tests/baselines/reference/typeParameterArgumentEquivalence3.errors.txt index 1f126d7c00d..50e33c7afa4 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence3.errors.txt +++ b/tests/baselines/reference/typeParameterArgumentEquivalence3.errors.txt @@ -1,7 +1,9 @@ tests/cases/compiler/typeParameterArgumentEquivalence3.ts(4,5): error TS2322: Type '(item: any) => boolean' is not assignable to type '(item: any) => T'. - Type 'boolean' is not assignable to type 'T'. + Signature '(item: any): T' has no corresponding signature in '(item: any) => boolean' + Type 'boolean' is not assignable to type 'T'. tests/cases/compiler/typeParameterArgumentEquivalence3.ts(5,5): error TS2322: Type '(item: any) => T' is not assignable to type '(item: any) => boolean'. - Type 'T' is not assignable to type 'boolean'. + Signature '(item: any): boolean' has no corresponding signature in '(item: any) => T' + Type 'T' is not assignable to type 'boolean'. ==== tests/cases/compiler/typeParameterArgumentEquivalence3.ts (2 errors) ==== @@ -11,10 +13,12 @@ tests/cases/compiler/typeParameterArgumentEquivalence3.ts(5,5): error TS2322: Ty x = y; // Should be an error ~ !!! error TS2322: Type '(item: any) => boolean' is not assignable to type '(item: any) => T'. -!!! error TS2322: Type 'boolean' is not assignable to type 'T'. +!!! error TS2322: Signature '(item: any): T' has no corresponding signature in '(item: any) => boolean' +!!! error TS2322: Type 'boolean' is not assignable to type 'T'. y = x; // Shound be an error ~ !!! error TS2322: Type '(item: any) => T' is not assignable to type '(item: any) => boolean'. -!!! error TS2322: Type 'T' is not assignable to type 'boolean'. +!!! error TS2322: Signature '(item: any): boolean' has no corresponding signature in '(item: any) => T' +!!! error TS2322: Type 'T' is not assignable to type 'boolean'. } \ No newline at end of file diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence4.errors.txt b/tests/baselines/reference/typeParameterArgumentEquivalence4.errors.txt index c7b19e8725c..68ab8dc28df 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence4.errors.txt +++ b/tests/baselines/reference/typeParameterArgumentEquivalence4.errors.txt @@ -1,7 +1,9 @@ tests/cases/compiler/typeParameterArgumentEquivalence4.ts(4,5): error TS2322: Type '(item: any) => T' is not assignable to type '(item: any) => U'. - Type 'T' is not assignable to type 'U'. + Signature '(item: any): U' has no corresponding signature in '(item: any) => T' + Type 'T' is not assignable to type 'U'. tests/cases/compiler/typeParameterArgumentEquivalence4.ts(5,5): error TS2322: Type '(item: any) => U' is not assignable to type '(item: any) => T'. - Type 'U' is not assignable to type 'T'. + Signature '(item: any): T' has no corresponding signature in '(item: any) => U' + Type 'U' is not assignable to type 'T'. ==== tests/cases/compiler/typeParameterArgumentEquivalence4.ts (2 errors) ==== @@ -11,10 +13,12 @@ tests/cases/compiler/typeParameterArgumentEquivalence4.ts(5,5): error TS2322: Ty x = y; // Should be an error ~ !!! error TS2322: Type '(item: any) => T' is not assignable to type '(item: any) => U'. -!!! error TS2322: Type 'T' is not assignable to type 'U'. +!!! error TS2322: Signature '(item: any): U' has no corresponding signature in '(item: any) => T' +!!! error TS2322: Type 'T' is not assignable to type 'U'. y = x; // Shound be an error ~ !!! error TS2322: Type '(item: any) => U' is not assignable to type '(item: any) => T'. -!!! error TS2322: Type 'U' is not assignable to type 'T'. +!!! error TS2322: Signature '(item: any): T' has no corresponding signature in '(item: any) => U' +!!! error TS2322: Type 'U' is not assignable to type 'T'. } \ No newline at end of file diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence5.errors.txt b/tests/baselines/reference/typeParameterArgumentEquivalence5.errors.txt index 82290733a9e..8e1ac388a82 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence5.errors.txt +++ b/tests/baselines/reference/typeParameterArgumentEquivalence5.errors.txt @@ -1,9 +1,13 @@ tests/cases/compiler/typeParameterArgumentEquivalence5.ts(4,5): error TS2322: Type '() => (item: any) => T' is not assignable to type '() => (item: any) => U'. - Type '(item: any) => T' is not assignable to type '(item: any) => U'. - Type 'T' is not assignable to type 'U'. + Signature '(): (item: any) => U' has no corresponding signature in '() => (item: any) => T' + Type '(item: any) => T' is not assignable to type '(item: any) => U'. + Signature '(item: any): U' has no corresponding signature in '(item: any) => T' + Type 'T' is not assignable to type 'U'. tests/cases/compiler/typeParameterArgumentEquivalence5.ts(5,5): error TS2322: Type '() => (item: any) => U' is not assignable to type '() => (item: any) => T'. - Type '(item: any) => U' is not assignable to type '(item: any) => T'. - Type 'U' is not assignable to type 'T'. + Signature '(): (item: any) => T' has no corresponding signature in '() => (item: any) => U' + Type '(item: any) => U' is not assignable to type '(item: any) => T'. + Signature '(item: any): T' has no corresponding signature in '(item: any) => U' + Type 'U' is not assignable to type 'T'. ==== tests/cases/compiler/typeParameterArgumentEquivalence5.ts (2 errors) ==== @@ -13,12 +17,16 @@ tests/cases/compiler/typeParameterArgumentEquivalence5.ts(5,5): error TS2322: Ty x = y; // Should be an error ~ !!! error TS2322: Type '() => (item: any) => T' is not assignable to type '() => (item: any) => U'. -!!! error TS2322: Type '(item: any) => T' is not assignable to type '(item: any) => U'. -!!! error TS2322: Type 'T' is not assignable to type 'U'. +!!! error TS2322: Signature '(): (item: any) => U' has no corresponding signature in '() => (item: any) => T' +!!! error TS2322: Type '(item: any) => T' is not assignable to type '(item: any) => U'. +!!! error TS2322: Signature '(item: any): U' has no corresponding signature in '(item: any) => T' +!!! error TS2322: Type 'T' is not assignable to type 'U'. y = x; // Shound be an error ~ !!! error TS2322: Type '() => (item: any) => U' is not assignable to type '() => (item: any) => T'. -!!! error TS2322: Type '(item: any) => U' is not assignable to type '(item: any) => T'. -!!! error TS2322: Type 'U' is not assignable to type 'T'. +!!! error TS2322: Signature '(): (item: any) => T' has no corresponding signature in '() => (item: any) => U' +!!! error TS2322: Type '(item: any) => U' is not assignable to type '(item: any) => T'. +!!! error TS2322: Signature '(item: any): T' has no corresponding signature in '(item: any) => U' +!!! error TS2322: Type 'U' is not assignable to type 'T'. } \ No newline at end of file diff --git a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments2.errors.txt b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments2.errors.txt index 5a6047222ee..8d926a14378 100644 --- a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments2.errors.txt +++ b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments2.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments2.ts(7,25): error TS2345: Argument of type '(x: A) => A' is not assignable to parameter of type '(x: A) => B'. - Type 'A' is not assignable to type 'B'. - Property 'b' is missing in type 'A'. + Signature '(x: A): B' has no corresponding signature in '(x: A) => A' + Type 'A' is not assignable to type 'B'. + Property 'b' is missing in type 'A'. ==== tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments2.ts (1 errors) ==== @@ -13,5 +14,6 @@ tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments2.ts(7,25): var d = f(a, b, x => x, x => x); // A => A not assignable to A => B ~~~~~~ !!! error TS2345: Argument of type '(x: A) => A' is not assignable to parameter of type '(x: A) => B'. -!!! error TS2345: Type 'A' is not assignable to type 'B'. -!!! error TS2345: Property 'b' is missing in type 'A'. \ No newline at end of file +!!! error TS2345: Signature '(x: A): B' has no corresponding signature in '(x: A) => A' +!!! error TS2345: Type 'A' is not assignable to type 'B'. +!!! error TS2345: Property 'b' is missing in type 'A'. \ No newline at end of file diff --git a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments3.errors.txt b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments3.errors.txt index cd0801f7ba9..c93aa87f44b 100644 --- a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments3.errors.txt +++ b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments3.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments3.ts(7,29): error TS2345: Argument of type '(t2: A) => A' is not assignable to parameter of type '(t2: A) => B'. - Type 'A' is not assignable to type 'B'. - Property 'b' is missing in type 'A'. + Signature '(t2: A): B' has no corresponding signature in '(t2: A) => A' + Type 'A' is not assignable to type 'B'. + Property 'b' is missing in type 'A'. ==== tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments3.ts (1 errors) ==== @@ -13,5 +14,6 @@ tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments3.ts(7,29): var d = f(a, b, u2 => u2.b, t2 => t2); ~~~~~~~~ !!! error TS2345: Argument of type '(t2: A) => A' is not assignable to parameter of type '(t2: A) => B'. -!!! error TS2345: Type 'A' is not assignable to type 'B'. -!!! error TS2345: Property 'b' is missing in type 'A'. \ No newline at end of file +!!! error TS2345: Signature '(t2: A): B' has no corresponding signature in '(t2: A) => A' +!!! error TS2345: Type 'A' is not assignable to type 'B'. +!!! error TS2345: Property 'b' is missing in type 'A'. \ No newline at end of file diff --git a/tests/baselines/reference/typesWithPrivateConstructor.errors.txt b/tests/baselines/reference/typesWithPrivateConstructor.errors.txt index 2440e51cd39..d2a4e766ebc 100644 --- a/tests/baselines/reference/typesWithPrivateConstructor.errors.txt +++ b/tests/baselines/reference/typesWithPrivateConstructor.errors.txt @@ -1,5 +1,6 @@ tests/cases/conformance/types/members/typesWithPrivateConstructor.ts(4,5): error TS1089: 'private' modifier cannot appear on a constructor declaration. tests/cases/conformance/types/members/typesWithPrivateConstructor.ts(8,5): error TS2322: Type 'Function' is not assignable to type '() => void'. + Signature '(): void' has no corresponding signature in 'Function' tests/cases/conformance/types/members/typesWithPrivateConstructor.ts(11,5): error TS1089: 'private' modifier cannot appear on a constructor declaration. tests/cases/conformance/types/members/typesWithPrivateConstructor.ts(12,5): error TS1089: 'private' modifier cannot appear on a constructor declaration. tests/cases/conformance/types/members/typesWithPrivateConstructor.ts(15,10): error TS2346: Supplied parameters do not match any signature of call target. @@ -18,6 +19,7 @@ tests/cases/conformance/types/members/typesWithPrivateConstructor.ts(15,10): err var r: () => void = c.constructor; ~ !!! error TS2322: Type 'Function' is not assignable to type '() => void'. +!!! error TS2322: Signature '(): void' has no corresponding signature in 'Function' class C2 { private constructor(x: number); diff --git a/tests/baselines/reference/typesWithPublicConstructor.errors.txt b/tests/baselines/reference/typesWithPublicConstructor.errors.txt index a3d66c3520a..6aa06afcdab 100644 --- a/tests/baselines/reference/typesWithPublicConstructor.errors.txt +++ b/tests/baselines/reference/typesWithPublicConstructor.errors.txt @@ -1,4 +1,5 @@ tests/cases/conformance/types/members/typesWithPublicConstructor.ts(8,5): error TS2322: Type 'Function' is not assignable to type '() => void'. + Signature '(): void' has no corresponding signature in 'Function' tests/cases/conformance/types/members/typesWithPublicConstructor.ts(15,10): error TS2346: Supplied parameters do not match any signature of call target. @@ -13,6 +14,7 @@ tests/cases/conformance/types/members/typesWithPublicConstructor.ts(15,10): erro var r: () => void = c.constructor; ~ !!! error TS2322: Type 'Function' is not assignable to type '() => void'. +!!! error TS2322: Signature '(): void' has no corresponding signature in 'Function' class C2 { public constructor(x: number); diff --git a/tests/baselines/reference/undeclaredModuleError.errors.txt b/tests/baselines/reference/undeclaredModuleError.errors.txt index 74e36318595..3c1f930856c 100644 --- a/tests/baselines/reference/undeclaredModuleError.errors.txt +++ b/tests/baselines/reference/undeclaredModuleError.errors.txt @@ -1,6 +1,7 @@ tests/cases/compiler/undeclaredModuleError.ts(1,21): error TS2307: Cannot find module 'fs'. tests/cases/compiler/undeclaredModuleError.ts(8,29): error TS2345: Argument of type '() => void' is not assignable to parameter of type '(stat: any, name: string) => boolean'. - Type 'void' is not assignable to type 'boolean'. + Signature '(stat: any, name: string): boolean' has no corresponding signature in '() => void' + Type 'void' is not assignable to type 'boolean'. tests/cases/compiler/undeclaredModuleError.ts(11,41): error TS2304: Cannot find name 'IDoNotExist'. @@ -19,7 +20,8 @@ tests/cases/compiler/undeclaredModuleError.ts(11,41): error TS2304: Cannot find } , (error: Error, files: {}[]) => { ~~~~~~~~~ !!! error TS2345: Argument of type '() => void' is not assignable to parameter of type '(stat: any, name: string) => boolean'. -!!! error TS2345: Type 'void' is not assignable to type 'boolean'. +!!! error TS2345: Signature '(stat: any, name: string): boolean' has no corresponding signature in '() => void' +!!! error TS2345: Type 'void' is not assignable to type 'boolean'. files.forEach((file) => { var fullPath = join(IDoNotExist); ~~~~~~~~~~~ From f42841c846b4d8acb510ea4c8ef3b89b0d8390de Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Wed, 25 Nov 2015 10:29:13 -0800 Subject: [PATCH 033/103] Only report errors from the first failure Accept the new baselines based on this change. Gets rid of a lot of redundant errors. --- src/compiler/checker.ts | 2 +- ...addMoreOverloadsToBaseSignature.errors.txt | 2 - .../arityAndOrderCompatibility01.errors.txt | 20 +- ...teralExpressionContextualTyping.errors.txt | 10 +- .../reference/arrayLiterals3.errors.txt | 28 +- .../asOperatorContextualType.errors.txt | 6 +- .../assignFromBooleanInterface2.errors.txt | 6 +- ...nmentCompatBetweenTupleAndArray.errors.txt | 10 +- .../reference/assignmentCompatBug5.errors.txt | 16 +- ...ignmentCompatWithCallSignatures.errors.txt | 80 +++--- ...gnmentCompatWithCallSignatures2.errors.txt | 40 ++- ...gnmentCompatWithCallSignatures4.errors.txt | 38 ++- ...ignaturesWithOptionalParameters.errors.txt | 14 - ...allSignaturesWithRestParameters.errors.txt | 90 +++---- ...tCompatWithConstructSignatures4.errors.txt | 86 +++---- ...ignaturesWithOptionalParameters.errors.txt | 10 - ...ignaturesWithOptionalParameters.errors.txt | 12 - .../assignmentCompatWithOverloads.errors.txt | 32 +-- .../asyncFunctionDeclaration15_es6.errors.txt | 20 +- .../reference/booleanAssignment.errors.txt | 18 +- ...atureAssignabilityInInheritance.errors.txt | 6 +- ...tureAssignabilityInInheritance3.errors.txt | 38 ++- .../reference/castingTuple.errors.txt | 10 +- ...ConstrainedToOtherTypeParameter.errors.txt | 10 +- ...onstrainedToOtherTypeParameter2.errors.txt | 12 +- .../classSideInheritance3.errors.txt | 4 - ...onalOperatorWithoutIdenticalBCT.errors.txt | 18 +- ...atureAssignabilityInInheritance.errors.txt | 6 +- ...tureAssignabilityInInheritance3.errors.txt | 38 ++- .../contextualTypeWithTuple.errors.txt | 24 +- ...lTypeWithUnionTypeObjectLiteral.errors.txt | 10 +- .../reference/contextualTyping24.errors.txt | 14 +- .../reference/contextualTyping39.errors.txt | 6 +- .../reference/contextualTyping41.errors.txt | 6 +- ...lTypingOfConditionalExpression2.errors.txt | 14 +- ...fGenericFunctionTypedArguments1.errors.txt | 16 +- .../derivedClassTransitivity.errors.txt | 10 +- .../derivedClassTransitivity2.errors.txt | 10 +- .../derivedClassTransitivity3.errors.txt | 10 +- .../derivedClassTransitivity4.errors.txt | 10 +- .../derivedInterfaceCallSignature.errors.txt | 2 - ...tructuringParameterDeclaration2.errors.txt | 32 +-- .../reference/errorElaboration.errors.txt | 14 +- ...orOnContextuallyTypedReturnType.errors.txt | 6 +- ...AnnotationAndInvalidInitializer.errors.txt | 42 ++- ...endAndImplementTheSameBaseType2.errors.txt | 6 +- ...fixingTypeParametersRepeatedly2.errors.txt | 16 +- tests/baselines/reference/for-of30.errors.txt | 18 +- tests/baselines/reference/for-of31.errors.txt | 24 +- ...functionConstraintSatisfaction2.errors.txt | 12 +- ...tionExpressionContextualTyping2.errors.txt | 6 +- ...ctionSignatureAssignmentCompat1.errors.txt | 10 +- .../reference/generatorTypeCheck25.errors.txt | 46 ++-- .../reference/generatorTypeCheck8.errors.txt | 10 +- ...AssignmentCompatWithInterfaces1.errors.txt | 10 +- ...edMethodWithOverloadedArguments.errors.txt | 40 ++- ...lWithConstructorTypedArguments5.errors.txt | 4 - ...lWithGenericSignatureArguments2.errors.txt | 38 ++- ...lWithGenericSignatureArguments3.errors.txt | 6 +- ...oadedConstructorTypedArguments2.errors.txt | 2 - ...erloadedFunctionTypedArguments2.errors.txt | 2 - .../genericCallWithTupleType.errors.txt | 14 +- .../reference/genericCombinators2.errors.txt | 16 +- .../genericSpecializations3.errors.txt | 30 +-- .../genericTypeAssertions2.errors.txt | 10 +- ...cTypeWithNonGenericBaseMisMatch.errors.txt | 40 ++- .../baselines/reference/generics4.errors.txt | 6 +- ...ementGenericWithMismatchedTypes.errors.txt | 16 +- .../reference/incompatibleTypes.errors.txt | 24 +- .../reference/inheritance.errors.txt | 2 - ...nheritedModuleMembersForClodule.errors.txt | 6 +- ...ceMemberAssignsToClassPrototype.errors.txt | 6 +- .../reference/intTypeCheck.errors.txt | 6 +- .../interfaceAssignmentCompat.errors.txt | 14 +- .../interfaceImplementation7.errors.txt | 10 +- .../iteratorSpreadInArray9.errors.txt | 24 +- .../reference/lambdaArgCrash.errors.txt | 2 - .../reference/multipleInheritance.errors.txt | 2 - ...MembersOfObjectAssignmentCompat.errors.txt | 18 +- ...embersOfObjectAssignmentCompat2.errors.txt | 30 +-- ...ptionalFunctionArgAssignability.errors.txt | 20 +- .../optionalParamAssignmentCompat.errors.txt | 10 +- .../optionalParamTypeComparison.errors.txt | 20 +- .../overloadResolutionOverCTLambda.errors.txt | 6 +- ...nWithConstraintCheckingDeferred.errors.txt | 14 +- .../overloadsWithProvisionalErrors.errors.txt | 20 +- .../baselines/reference/parseTypes.errors.txt | 4 - .../reference/parser536727.errors.txt | 12 +- .../reference/promiseChaining1.errors.txt | 10 +- .../reference/promiseChaining2.errors.txt | 10 +- .../reference/promisePermutations.errors.txt | 210 ++++++--------- .../reference/promisePermutations2.errors.txt | 210 ++++++--------- .../reference/promisePermutations3.errors.txt | 240 ++++++------------ .../recursiveFunctionTypes.errors.txt | 6 +- .../requiredInitializedParameter2.errors.txt | 2 - .../restArgAssignmentCompat.errors.txt | 14 +- ...gnsToConstructorFunctionMembers.errors.txt | 6 +- ...ypesAsTypeParameterConstraint02.errors.txt | 6 +- .../subtypingWithCallSignaturesA.errors.txt | 6 +- ...ignaturesWithOptionalParameters.errors.txt | 4 - ...allSignaturesWithRestParameters.errors.txt | 110 ++++---- ...aturesWithSpecializedSignatures.errors.txt | 6 +- ...ignaturesWithOptionalParameters.errors.txt | 4 - ...aturesWithSpecializedSignatures.errors.txt | 6 +- ...ignaturesWithOptionalParameters.errors.txt | 12 - ...ignaturesWithOptionalParameters.errors.txt | 12 - .../reference/symbolProperty24.errors.txt | 6 +- .../baselines/reference/tupleTypes.errors.txt | 20 +- ...entInferenceConstructSignatures.errors.txt | 30 +-- .../typeArgumentInferenceErrors.errors.txt | 30 +-- ...ntInferenceWithClassExpression2.errors.txt | 10 +- ...rgumentInferenceWithConstraints.errors.txt | 30 +-- .../typeGuardFunctionErrors.errors.txt | 28 +- ...ypeParameterArgumentEquivalence.errors.txt | 20 +- ...peParameterArgumentEquivalence2.errors.txt | 20 +- ...peParameterArgumentEquivalence3.errors.txt | 12 +- ...peParameterArgumentEquivalence4.errors.txt | 12 +- ...peParameterArgumentEquivalence5.errors.txt | 24 +- ...gWithContextSensitiveArguments2.errors.txt | 10 +- ...gWithContextSensitiveArguments3.errors.txt | 10 +- .../undeclaredModuleError.errors.txt | 6 +- 121 files changed, 987 insertions(+), 1695 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 81e1a14bdf6..d490004ae76 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5453,7 +5453,7 @@ namespace ts { localErrors = false; } } - if (reportErrors) { + if (localErrors) { reportError(Diagnostics.Signature_0_has_no_corresponding_signature_in_1, signatureToString(t, /*enclosingDeclaration*/ undefined, /*flags*/ undefined, kind), typeToString(source)); diff --git a/tests/baselines/reference/addMoreOverloadsToBaseSignature.errors.txt b/tests/baselines/reference/addMoreOverloadsToBaseSignature.errors.txt index be20b673287..4b6255688f8 100644 --- a/tests/baselines/reference/addMoreOverloadsToBaseSignature.errors.txt +++ b/tests/baselines/reference/addMoreOverloadsToBaseSignature.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/addMoreOverloadsToBaseSignature.ts(5,11): error TS2430: Interface 'Bar' incorrectly extends interface 'Foo'. Types of property 'f' are incompatible. Type '(key: string) => string' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in '(key: string) => string' ==== tests/cases/compiler/addMoreOverloadsToBaseSignature.ts (1 errors) ==== @@ -14,7 +13,6 @@ tests/cases/compiler/addMoreOverloadsToBaseSignature.ts(5,11): error TS2430: Int !!! error TS2430: Interface 'Bar' incorrectly extends interface 'Foo'. !!! error TS2430: Types of property 'f' are incompatible. !!! error TS2430: Type '(key: string) => string' is not assignable to type '() => string'. -!!! error TS2430: Signature '(): string' has no corresponding signature in '(key: string) => string' f(key: string): string; } \ No newline at end of file diff --git a/tests/baselines/reference/arityAndOrderCompatibility01.errors.txt b/tests/baselines/reference/arityAndOrderCompatibility01.errors.txt index a766bab8a96..d60f0b7d03c 100644 --- a/tests/baselines/reference/arityAndOrderCompatibility01.errors.txt +++ b/tests/baselines/reference/arityAndOrderCompatibility01.errors.txt @@ -29,15 +29,13 @@ tests/cases/conformance/types/tuple/arityAndOrderCompatibility01.ts(24,5): error tests/cases/conformance/types/tuple/arityAndOrderCompatibility01.ts(25,5): error TS2322: Type '[string, number]' is not assignable to type '[string]'. Types of property 'pop' are incompatible. Type '() => string | number' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in '() => string | number' - Type 'string | number' is not assignable to type 'string'. - Type 'number' is not assignable to type 'string'. + Type 'string | number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/tuple/arityAndOrderCompatibility01.ts(26,5): error TS2322: Type 'StrNum' is not assignable to type '[string]'. Types of property 'pop' are incompatible. Type '() => string | number' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in '() => string | number' - Type 'string | number' is not assignable to type 'string'. - Type 'number' is not assignable to type 'string'. + Type 'string | number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/tuple/arityAndOrderCompatibility01.ts(27,5): error TS2322: Type '{ 0: string; 1: number; }' is not assignable to type '[string]'. Property 'length' is missing in type '{ 0: string; 1: number; }'. tests/cases/conformance/types/tuple/arityAndOrderCompatibility01.ts(28,5): error TS2322: Type '[string, number]' is not assignable to type '[number, string]'. @@ -122,17 +120,15 @@ tests/cases/conformance/types/tuple/arityAndOrderCompatibility01.ts(30,5): error !!! error TS2322: Type '[string, number]' is not assignable to type '[string]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => string | number' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in '() => string | number' -!!! error TS2322: Type 'string | number' is not assignable to type 'string'. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Type 'string | number' is not assignable to type 'string'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var m2: [string] = y; ~~ !!! error TS2322: Type 'StrNum' is not assignable to type '[string]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => string | number' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in '() => string | number' -!!! error TS2322: Type 'string | number' is not assignable to type 'string'. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Type 'string | number' is not assignable to type 'string'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var m3: [string] = z; ~~ !!! error TS2322: Type '{ 0: string; 1: number; }' is not assignable to type '[string]'. diff --git a/tests/baselines/reference/arrayLiteralExpressionContextualTyping.errors.txt b/tests/baselines/reference/arrayLiteralExpressionContextualTyping.errors.txt index b7ea49c7283..72ba1411320 100644 --- a/tests/baselines/reference/arrayLiteralExpressionContextualTyping.errors.txt +++ b/tests/baselines/reference/arrayLiteralExpressionContextualTyping.errors.txt @@ -1,9 +1,8 @@ tests/cases/conformance/expressions/contextualTyping/arrayLiteralExpressionContextualTyping.ts(8,5): error TS2322: Type '[number, number, number, string]' is not assignable to type '[number, number, number]'. Types of property 'pop' are incompatible. Type '() => number | string' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '() => number | string' - Type 'number | string' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. + Type 'number | string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/contextualTyping/arrayLiteralExpressionContextualTyping.ts(14,5): error TS2322: Type 'number[]' is not assignable to type '[number, number, number]'. Property '0' is missing in type 'number[]'. @@ -21,9 +20,8 @@ tests/cases/conformance/expressions/contextualTyping/arrayLiteralExpressionConte !!! error TS2322: Type '[number, number, number, string]' is not assignable to type '[number, number, number]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => number | string' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '() => number | string' -!!! error TS2322: Type 'number | string' is not assignable to type 'number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Type 'number | string' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. // In a contextually typed array literal expression containing one or more spread elements, // an element expression at index N is contextually typed by the numeric index type of the contextual type, if any. diff --git a/tests/baselines/reference/arrayLiterals3.errors.txt b/tests/baselines/reference/arrayLiterals3.errors.txt index a3d3611cf55..637fb3e3bc4 100644 --- a/tests/baselines/reference/arrayLiterals3.errors.txt +++ b/tests/baselines/reference/arrayLiterals3.errors.txt @@ -6,9 +6,8 @@ tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(11,5): error tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(17,5): error TS2322: Type '[number, number, string, boolean]' is not assignable to type '[number, number]'. Types of property 'pop' are incompatible. Type '() => number | string | boolean' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '() => number | string | boolean' - Type 'number | string | boolean' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. + Type 'number | string | boolean' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(32,5): error TS2322: Type '(number[] | string[])[]' is not assignable to type 'tup'. Property '0' is missing in type '(number[] | string[])[]'. tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(33,5): error TS2322: Type 'number[]' is not assignable to type '[number, number, number]'. @@ -16,11 +15,10 @@ tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(33,5): error tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(34,5): error TS2322: Type '(number | string)[]' is not assignable to type 'myArray'. Types of property 'push' are incompatible. Type '(...items: (number | string)[]) => number' is not assignable to type '(...items: Number[]) => number'. - Signature '(...items: Number[]): number' has no corresponding signature in '(...items: (number | string)[]) => number' - Types of parameters 'items' and 'items' are incompatible. - Type 'number | string' is not assignable to type 'Number'. - Type 'string' is not assignable to type 'Number'. - Property 'toFixed' is missing in type 'String'. + Types of parameters 'items' and 'items' are incompatible. + Type 'number | string' is not assignable to type 'Number'. + Type 'string' is not assignable to type 'Number'. + Property 'toFixed' is missing in type 'String'. ==== tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts (6 errors) ==== @@ -52,9 +50,8 @@ tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(34,5): error !!! error TS2322: Type '[number, number, string, boolean]' is not assignable to type '[number, number]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => number | string | boolean' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '() => number | string | boolean' -!!! error TS2322: Type 'number | string | boolean' is not assignable to type 'number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Type 'number | string | boolean' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. // The resulting type an array literal expression is determined as follows: // - the resulting type is an array type with an element type that is the union of the types of the @@ -82,9 +79,8 @@ tests/cases/conformance/expressions/arrayLiterals/arrayLiterals3.ts(34,5): error !!! error TS2322: Type '(number | string)[]' is not assignable to type 'myArray'. !!! error TS2322: Types of property 'push' are incompatible. !!! error TS2322: Type '(...items: (number | string)[]) => number' is not assignable to type '(...items: Number[]) => number'. -!!! error TS2322: Signature '(...items: Number[]): number' has no corresponding signature in '(...items: (number | string)[]) => number' -!!! error TS2322: Types of parameters 'items' and 'items' are incompatible. -!!! error TS2322: Type 'number | string' is not assignable to type 'Number'. -!!! error TS2322: Type 'string' is not assignable to type 'Number'. -!!! error TS2322: Property 'toFixed' is missing in type 'String'. +!!! error TS2322: Types of parameters 'items' and 'items' are incompatible. +!!! error TS2322: Type 'number | string' is not assignable to type 'Number'. +!!! error TS2322: Type 'string' is not assignable to type 'Number'. +!!! error TS2322: Property 'toFixed' is missing in type 'String'. \ No newline at end of file diff --git a/tests/baselines/reference/asOperatorContextualType.errors.txt b/tests/baselines/reference/asOperatorContextualType.errors.txt index 6c52114625b..c53b407b5cf 100644 --- a/tests/baselines/reference/asOperatorContextualType.errors.txt +++ b/tests/baselines/reference/asOperatorContextualType.errors.txt @@ -1,6 +1,5 @@ tests/cases/conformance/expressions/asOperator/asOperatorContextualType.ts(2,9): error TS2352: Neither type '(v: number) => number' nor type '(x: number) => string' is assignable to the other. - Signature '(x: number): string' has no corresponding signature in '(v: number) => number' - Type 'number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. ==== tests/cases/conformance/expressions/asOperator/asOperatorContextualType.ts (1 errors) ==== @@ -8,5 +7,4 @@ tests/cases/conformance/expressions/asOperator/asOperatorContextualType.ts(2,9): var x = (v => v) as (x: number) => string; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2352: Neither type '(v: number) => number' nor type '(x: number) => string' is assignable to the other. -!!! error TS2352: Signature '(x: number): string' has no corresponding signature in '(v: number) => number' -!!! error TS2352: Type 'number' is not assignable to type 'string'. \ No newline at end of file +!!! error TS2352: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/assignFromBooleanInterface2.errors.txt b/tests/baselines/reference/assignFromBooleanInterface2.errors.txt index f20050a5b9e..c03eab60c74 100644 --- a/tests/baselines/reference/assignFromBooleanInterface2.errors.txt +++ b/tests/baselines/reference/assignFromBooleanInterface2.errors.txt @@ -1,8 +1,7 @@ tests/cases/conformance/types/primitives/boolean/assignFromBooleanInterface2.ts(14,1): error TS2322: Type 'NotBoolean' is not assignable to type 'Boolean'. Types of property 'valueOf' are incompatible. Type '() => Object' is not assignable to type '() => boolean'. - Signature '(): boolean' has no corresponding signature in '() => Object' - Type 'Object' is not assignable to type 'boolean'. + Type 'Object' is not assignable to type 'boolean'. tests/cases/conformance/types/primitives/boolean/assignFromBooleanInterface2.ts(19,1): error TS2322: Type 'Boolean' is not assignable to type 'boolean'. tests/cases/conformance/types/primitives/boolean/assignFromBooleanInterface2.ts(20,1): error TS2322: Type 'NotBoolean' is not assignable to type 'boolean'. @@ -26,8 +25,7 @@ tests/cases/conformance/types/primitives/boolean/assignFromBooleanInterface2.ts( !!! error TS2322: Type 'NotBoolean' is not assignable to type 'Boolean'. !!! error TS2322: Types of property 'valueOf' are incompatible. !!! error TS2322: Type '() => Object' is not assignable to type '() => boolean'. -!!! error TS2322: Signature '(): boolean' has no corresponding signature in '() => Object' -!!! error TS2322: Type 'Object' is not assignable to type 'boolean'. +!!! error TS2322: Type 'Object' is not assignable to type 'boolean'. b = a; b = x; diff --git a/tests/baselines/reference/assignmentCompatBetweenTupleAndArray.errors.txt b/tests/baselines/reference/assignmentCompatBetweenTupleAndArray.errors.txt index 16fff660c1d..c7552c3fdb2 100644 --- a/tests/baselines/reference/assignmentCompatBetweenTupleAndArray.errors.txt +++ b/tests/baselines/reference/assignmentCompatBetweenTupleAndArray.errors.txt @@ -1,9 +1,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatBetweenTupleAndArray.ts(17,1): error TS2322: Type '[number, string]' is not assignable to type 'number[]'. Types of property 'pop' are incompatible. Type '() => number | string' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '() => number | string' - Type 'number | string' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. + Type 'number | string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatBetweenTupleAndArray.ts(18,1): error TS2322: Type '{}[]' is not assignable to type '[{}]'. Property '0' is missing in type '{}[]'. @@ -30,9 +29,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type '[number, string]' is not assignable to type 'number[]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => number | string' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '() => number | string' -!!! error TS2322: Type 'number | string' is not assignable to type 'number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Type 'number | string' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. emptyObjTuple = emptyObjArray; ~~~~~~~~~~~~~ !!! error TS2322: Type '{}[]' is not assignable to type '[{}]'. diff --git a/tests/baselines/reference/assignmentCompatBug5.errors.txt b/tests/baselines/reference/assignmentCompatBug5.errors.txt index f8b1a1094e2..1b5e3d80259 100644 --- a/tests/baselines/reference/assignmentCompatBug5.errors.txt +++ b/tests/baselines/reference/assignmentCompatBug5.errors.txt @@ -3,12 +3,10 @@ tests/cases/compiler/assignmentCompatBug5.ts(2,8): error TS2345: Argument of typ tests/cases/compiler/assignmentCompatBug5.ts(5,6): error TS2345: Argument of type 'string[]' is not assignable to parameter of type 'number[]'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/assignmentCompatBug5.ts(8,6): error TS2345: Argument of type '(s: string) => void' is not assignable to parameter of type '(n: number) => number'. - Signature '(n: number): number' has no corresponding signature in '(s: string) => void' - Types of parameters 's' and 'n' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 's' and 'n' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/assignmentCompatBug5.ts(9,6): error TS2345: Argument of type '(n: number) => void' is not assignable to parameter of type '(n: number) => number'. - Signature '(n: number): number' has no corresponding signature in '(n: number) => void' - Type 'void' is not assignable to type 'number'. + Type 'void' is not assignable to type 'number'. ==== tests/cases/compiler/assignmentCompatBug5.ts (4 errors) ==== @@ -28,13 +26,11 @@ tests/cases/compiler/assignmentCompatBug5.ts(9,6): error TS2345: Argument of typ foo3((s:string) => { }); ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(s: string) => void' is not assignable to parameter of type '(n: number) => number'. -!!! error TS2345: Signature '(n: number): number' has no corresponding signature in '(s: string) => void' -!!! error TS2345: Types of parameters 's' and 'n' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Types of parameters 's' and 'n' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. foo3((n) => { return; }); ~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(n: number) => void' is not assignable to parameter of type '(n: number) => number'. -!!! error TS2345: Signature '(n: number): number' has no corresponding signature in '(n: number) => void' -!!! error TS2345: Type 'void' is not assignable to type 'number'. +!!! error TS2345: Type 'void' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignatures.errors.txt index 194b1834a61..6a221ef144e 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures.errors.txt @@ -1,35 +1,27 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(35,1): error TS2322: Type 'S2' is not assignable to type 'T'. - Signature '(x: number): void' has no corresponding signature in 'S2' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(36,1): error TS2322: Type '(x: string) => void' is not assignable to type 'T'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => void' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(37,1): error TS2322: Type '(x: string) => number' is not assignable to type 'T'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => number' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(38,1): error TS2322: Type '(x: string) => string' is not assignable to type 'T'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => string' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(39,1): error TS2322: Type 'S2' is not assignable to type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in 'S2' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(40,1): error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => void' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(41,1): error TS2322: Type '(x: string) => number' is not assignable to type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => number' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts(42,1): error TS2322: Type '(x: string) => string' is not assignable to type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => string' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures.ts (8 errors) ==== @@ -70,49 +62,41 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme t = s2; ~ !!! error TS2322: Type 'S2' is not assignable to type 'T'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in 'S2' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. t = a3; ~ !!! error TS2322: Type '(x: string) => void' is not assignable to type 'T'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. t = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type 'T'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => number' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. t = function (x: string) { return ''; } ~ !!! error TS2322: Type '(x: string) => string' is not assignable to type 'T'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = s2; ~ !!! error TS2322: Type 'S2' is not assignable to type '(x: number) => void'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in 'S2' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = a3; ~ !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type '(x: number) => void'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => number' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = function (x: string) { return ''; } ~ !!! error TS2322: Type '(x: string) => string' is not assignable to type '(x: number) => void'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures2.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignatures2.errors.txt index fdcc9fe6ec9..e67f0a930c2 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures2.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures2.errors.txt @@ -9,15 +9,13 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(42,1): error TS2322: Type 'S2' is not assignable to type 'T'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => void' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(43,1): error TS2322: Type '{ f(x: string): void; }' is not assignable to type 'T'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => void' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(44,1): error TS2322: Type '(x: string) => number' is not assignable to type 'T'. Property 'f' is missing in type '(x: string) => number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(45,1): error TS2322: Type '(x: string) => string' is not assignable to type 'T'. @@ -25,15 +23,13 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(46,1): error TS2322: Type 'S2' is not assignable to type '{ f(x: number): void; }'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => void' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(47,1): error TS2322: Type '{ f(x: string): void; }' is not assignable to type '{ f(x: number): void; }'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => void' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(48,1): error TS2322: Type '(x: string) => number' is not assignable to type '{ f(x: number): void; }'. Property 'f' is missing in type '(x: string) => number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(49,1): error TS2322: Type '(x: string) => string' is not assignable to type '{ f(x: number): void; }'. @@ -99,17 +95,15 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type 'S2' is not assignable to type 'T'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. t = a3; ~ !!! error TS2322: Type '{ f(x: string): void; }' is not assignable to type 'T'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. t = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type 'T'. @@ -123,17 +117,15 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type 'S2' is not assignable to type '{ f(x: number): void; }'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = a3; ~ !!! error TS2322: Type '{ f(x: string): void; }' is not assignable to type '{ f(x: number): void; }'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type '{ f(x: number): void; }'. diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures4.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignatures4.errors.txt index 3620fb0e8c3..e00d1eea042 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures4.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures4.errors.txt @@ -1,16 +1,13 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures4.ts(52,9): error TS2322: Type '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. - Signature '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' - Types of parameters 'y' and 'y' are incompatible. - Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. - Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' - Types of parameters 'arg2' and 'arg2' are incompatible. - Type '{ foo: number; }' is not assignable to type 'Base'. - Types of property 'foo' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'y' and 'y' are incompatible. + Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. + Types of parameters 'arg2' and 'arg2' are incompatible. + Type '{ foo: number; }' is not assignable to type 'Base'. + Types of property 'foo' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures4.ts(53,9): error TS2322: Type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' is not assignable to type '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U'. - Signature '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U): (r: T) => U' has no corresponding signature in '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' - Types of parameters 'y' and 'y' are incompatible. - Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. + Types of parameters 'y' and 'y' are incompatible. + Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures4.ts (2 errors) ==== @@ -68,20 +65,17 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a8 = b8; // error, { foo: number } and Base are incompatible ~~ !!! error TS2322: Type '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. -!!! error TS2322: Signature '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. -!!! error TS2322: Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' -!!! error TS2322: Types of parameters 'arg2' and 'arg2' are incompatible. -!!! error TS2322: Type '{ foo: number; }' is not assignable to type 'Base'. -!!! error TS2322: Types of property 'foo' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. +!!! error TS2322: Types of parameters 'arg2' and 'arg2' are incompatible. +!!! error TS2322: Type '{ foo: number; }' is not assignable to type 'Base'. +!!! error TS2322: Types of property 'foo' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. b8 = a8; // error, { foo: number } and Base are incompatible ~~ !!! error TS2322: Type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' is not assignable to type '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U'. -!!! error TS2322: Signature '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U): (r: T) => U' has no corresponding signature in '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. var b10: (...x: T[]) => T; diff --git a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.errors.txt index 504f6d70799..f89bbfa5798 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.errors.txt @@ -1,17 +1,10 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(16,5): error TS2322: Type '(x: number) => number' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '(x: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(19,5): error TS2322: Type '(x: number) => number' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '(x: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(20,5): error TS2322: Type '(x: number, y?: number) => number' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '(x: number, y?: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(22,5): error TS2322: Type '(x: number, y: number) => number' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '(x: number, y: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(33,5): error TS2322: Type '(x: number, y: number) => number' is not assignable to type '(x?: number) => number'. - Signature '(x?: number): number' has no corresponding signature in '(x: number, y: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(39,5): error TS2322: Type '(x: number, y: number) => number' is not assignable to type '(x: number) => number'. - Signature '(x: number): number' has no corresponding signature in '(x: number, y: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts(45,5): error TS2322: Type '(x: number, y: number) => number' is not assignable to type '(x: number) => number'. - Signature '(x: number): number' has no corresponding signature in '(x: number, y: number) => number' ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithOptionalParameters.ts (7 errors) ==== @@ -33,22 +26,18 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a = (x: number) => 1; // error, too many required params ~ !!! error TS2322: Type '(x: number) => number' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '(x: number) => number' a = b.a; // ok a = b.a2; // ok a = b.a3; // error ~ !!! error TS2322: Type '(x: number) => number' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '(x: number) => number' a = b.a4; // error ~ !!! error TS2322: Type '(x: number, y?: number) => number' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '(x: number, y?: number) => number' a = b.a5; // ok a = b.a6; // error ~ !!! error TS2322: Type '(x: number, y: number) => number' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '(x: number, y: number) => number' var a2: (x?: number) => number; a2 = () => 1; // ok, same number of required params @@ -62,7 +51,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a2 = b.a6; // error ~~ !!! error TS2322: Type '(x: number, y: number) => number' is not assignable to type '(x?: number) => number'. -!!! error TS2322: Signature '(x?: number): number' has no corresponding signature in '(x: number, y: number) => number' var a3: (x: number) => number; a3 = () => 1; // ok, fewer required params @@ -71,7 +59,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a3 = (x: number, y: number) => 1; // error, too many required params ~~ !!! error TS2322: Type '(x: number, y: number) => number' is not assignable to type '(x: number) => number'. -!!! error TS2322: Signature '(x: number): number' has no corresponding signature in '(x: number, y: number) => number' a3 = b.a; // ok a3 = b.a2; // ok a3 = b.a3; // ok @@ -80,7 +67,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a3 = b.a6; // error ~~ !!! error TS2322: Type '(x: number, y: number) => number' is not assignable to type '(x: number) => number'. -!!! error TS2322: Signature '(x: number): number' has no corresponding signature in '(x: number, y: number) => number' var a4: (x: number, y?: number) => number; a4 = () => 1; // ok, fewer required params diff --git a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithRestParameters.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithRestParameters.errors.txt index e785ab663ca..8eec8503e70 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithRestParameters.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithRestParameters.errors.txt @@ -1,39 +1,30 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(13,5): error TS2322: Type '(...args: string[]) => number' is not assignable to type '(...args: number[]) => number'. - Signature '(...args: number[]): number' has no corresponding signature in '(...args: string[]) => number' - Types of parameters 'args' and 'args' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'args' and 'args' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(17,5): error TS2322: Type '(x?: string) => number' is not assignable to type '(...args: number[]) => number'. - Signature '(...args: number[]): number' has no corresponding signature in '(x?: string) => number' - Types of parameters 'x' and 'args' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'args' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(26,5): error TS2322: Type '(x: number, ...args: string[]) => number' is not assignable to type '(x: number, ...z: number[]) => number'. - Signature '(x: number, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' - Types of parameters 'args' and 'z' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'args' and 'z' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(35,5): error TS2322: Type '(x: number, y?: number, z?: number) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number, z?: number) => number' - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(36,5): error TS2322: Type '(x: number, ...z: number[]) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...z: number[]) => number' - Types of parameters 'z' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'z' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(37,5): error TS2322: Type '(x: string, y?: string, z?: string) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: string, y?: string, z?: string) => number' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(41,5): error TS2322: Type '(x?: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x?: number, y?: number) => number' - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(43,5): error TS2322: Type '(x: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number) => number' - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts(45,5): error TS2322: Type '(x: number, ...args: string[]) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' - Types of parameters 'args' and 'z' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'args' and 'z' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignaturesWithRestParameters.ts (9 errors) ==== @@ -52,18 +43,16 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a = (...args: string[]) => 1; // error, type mismatch ~ !!! error TS2322: Type '(...args: string[]) => number' is not assignable to type '(...args: number[]) => number'. -!!! error TS2322: Signature '(...args: number[]): number' has no corresponding signature in '(...args: string[]) => number' -!!! error TS2322: Types of parameters 'args' and 'args' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'args' and 'args' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = (x?: number) => 1; // ok, same number of required params a = (x?: number, y?: number, z?: number) => 1; // ok, same number of required params a = (x: number) => 1; // ok, rest param corresponds to infinite number of params a = (x?: string) => 1; // error, incompatible type ~ !!! error TS2322: Type '(x?: string) => number' is not assignable to type '(...args: number[]) => number'. -!!! error TS2322: Signature '(...args: number[]): number' has no corresponding signature in '(x?: string) => number' -!!! error TS2322: Types of parameters 'x' and 'args' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'args' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var a2: (x: number, ...z: number[]) => number; @@ -75,9 +64,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a2 = (x: number, ...args: string[]) => 1; // should be type mismatch error ~~ !!! error TS2322: Type '(x: number, ...args: string[]) => number' is not assignable to type '(x: number, ...z: number[]) => number'. -!!! error TS2322: Signature '(x: number, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' -!!! error TS2322: Types of parameters 'args' and 'z' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'args' and 'z' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a2 = (x: number, y: number) => 1; // ok, rest param corresponds to infinite number of params a2 = (x: number, y?: number) => 1; // ok, same number of required params @@ -89,41 +77,35 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a3 = (x: number, y?: number, z?: number) => 1; // error ~~ !!! error TS2322: Type '(x: number, y?: number, z?: number) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2322: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number, z?: number) => number' -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. a3 = (x: number, ...z: number[]) => 1; // error ~~ !!! error TS2322: Type '(x: number, ...z: number[]) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2322: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...z: number[]) => number' -!!! error TS2322: Types of parameters 'z' and 'y' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'z' and 'y' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. a3 = (x: string, y?: string, z?: string) => 1; // error ~~ !!! error TS2322: Type '(x: string, y?: string, z?: string) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2322: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: string, y?: string, z?: string) => number' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var a4: (x?: number, y?: string, ...z: number[]) => number; a4 = () => 1; // ok, fewer required params a4 = (x?: number, y?: number) => 1; // error, type mismatch ~~ !!! error TS2322: Type '(x?: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2322: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x?: number, y?: number) => number' -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. a4 = (x: number) => 1; // ok, all present params match a4 = (x: number, y?: number) => 1; // error, second param has type mismatch ~~ !!! error TS2322: Type '(x: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2322: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number) => number' -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. a4 = (x?: number, y?: string) => 1; // ok, same number of required params with matching types a4 = (x: number, ...args: string[]) => 1; // error, rest params have type mismatch ~~ !!! error TS2322: Type '(x: number, ...args: string[]) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2322: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' -!!! error TS2322: Types of parameters 'args' and 'z' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file +!!! error TS2322: Types of parameters 'args' and 'z' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt index 3a771411b53..8835b6280c4 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt @@ -1,34 +1,27 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(52,9): error TS2322: Type 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. - Signature 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' - Types of parameters 'y' and 'y' are incompatible. - Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. - Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' - Types of parameters 'arg2' and 'arg2' are incompatible. - Type '{ foo: number; }' is not assignable to type 'Base'. - Types of property 'foo' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'y' and 'y' are incompatible. + Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. + Types of parameters 'arg2' and 'arg2' are incompatible. + Type '{ foo: number; }' is not assignable to type 'Base'. + Types of property 'foo' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(53,9): error TS2322: Type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' is not assignable to type 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U'. - Signature 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U): (r: T) => U' has no corresponding signature in 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' - Types of parameters 'y' and 'y' are incompatible. - Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. + Types of parameters 'y' and 'y' are incompatible. + Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(77,9): error TS2322: Type 'new (x: (a: T) => T) => T[]' is not assignable to type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }'. - Signature 'new (x: { new (a: number): number; new (a?: number): number; }): number[]' has no corresponding signature in 'new (x: (a: T) => T) => T[]' - Types of parameters 'x' and 'x' are incompatible. - Type '(a: any) => any' is not assignable to type '{ new (a: number): number; new (a?: number): number; }'. - Signature 'new (a: number): number' has no corresponding signature in '(a: any) => any' + Types of parameters 'x' and 'x' are incompatible. + Type '(a: any) => any' is not assignable to type '{ new (a: number): number; new (a?: number): number; }'. + Signature 'new (a: number): number' has no corresponding signature in '(a: any) => any' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(78,9): error TS2322: Type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }' is not assignable to type 'new (x: (a: T) => T) => T[]'. - Signature 'new (x: (a: T) => T): T[]' has no corresponding signature in '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }' - Types of parameters 'x' and 'x' are incompatible. - Type '{ new (a: number): number; new (a?: number): number; }' is not assignable to type '(a: any) => any'. + Types of parameters 'x' and 'x' are incompatible. + Type '{ new (a: number): number; new (a?: number): number; }' is not assignable to type '(a: any) => any'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(81,9): error TS2322: Type 'new (x: (a: T) => T) => any[]' is not assignable to type '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }'. - Signature 'new (x: { new (a: T): T; new (a: T): T; }): any[]' has no corresponding signature in 'new (x: (a: T) => T) => any[]' - Types of parameters 'x' and 'x' are incompatible. - Type '(a: any) => any' is not assignable to type '{ new (a: T): T; new (a: T): T; }'. - Signature 'new (a: T): T' has no corresponding signature in '(a: any) => any' + Types of parameters 'x' and 'x' are incompatible. + Type '(a: any) => any' is not assignable to type '{ new (a: T): T; new (a: T): T; }'. + Signature 'new (a: T): T' has no corresponding signature in '(a: any) => any' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(82,9): error TS2322: Type '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }' is not assignable to type 'new (x: (a: T) => T) => any[]'. - Signature 'new (x: (a: T) => T): any[]' has no corresponding signature in '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }' - Types of parameters 'x' and 'x' are incompatible. - Type '{ new (a: T): T; new (a: T): T; }' is not assignable to type '(a: any) => any'. + Types of parameters 'x' and 'x' are incompatible. + Type '{ new (a: T): T; new (a: T): T; }' is not assignable to type '(a: any) => any'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts (6 errors) ==== @@ -86,20 +79,17 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a8 = b8; // error, type mismatch ~~ !!! error TS2322: Type 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. -!!! error TS2322: Signature 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. -!!! error TS2322: Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' -!!! error TS2322: Types of parameters 'arg2' and 'arg2' are incompatible. -!!! error TS2322: Type '{ foo: number; }' is not assignable to type 'Base'. -!!! error TS2322: Types of property 'foo' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. +!!! error TS2322: Types of parameters 'arg2' and 'arg2' are incompatible. +!!! error TS2322: Type '{ foo: number; }' is not assignable to type 'Base'. +!!! error TS2322: Types of property 'foo' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. b8 = a8; // error ~~ !!! error TS2322: Type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' is not assignable to type 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U'. -!!! error TS2322: Signature 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U): (r: T) => U' has no corresponding signature in 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived' -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type '(arg2: Base) => Derived' is not assignable to type '(arg2: { foo: number; }) => any'. var b10: new (...x: T[]) => T; @@ -126,31 +116,27 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a16 = b16; // error ~~~ !!! error TS2322: Type 'new (x: (a: T) => T) => T[]' is not assignable to type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }'. -!!! error TS2322: Signature 'new (x: { new (a: number): number; new (a?: number): number; }): number[]' has no corresponding signature in 'new (x: (a: T) => T) => T[]' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type '(a: any) => any' is not assignable to type '{ new (a: number): number; new (a?: number): number; }'. -!!! error TS2322: Signature 'new (a: number): number' has no corresponding signature in '(a: any) => any' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type '(a: any) => any' is not assignable to type '{ new (a: number): number; new (a?: number): number; }'. +!!! error TS2322: Signature 'new (a: number): number' has no corresponding signature in '(a: any) => any' b16 = a16; // error ~~~ !!! error TS2322: Type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }' is not assignable to type 'new (x: (a: T) => T) => T[]'. -!!! error TS2322: Signature 'new (x: (a: T) => T): T[]' has no corresponding signature in '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type '{ new (a: number): number; new (a?: number): number; }' is not assignable to type '(a: any) => any'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type '{ new (a: number): number; new (a?: number): number; }' is not assignable to type '(a: any) => any'. var b17: new (x: (a: T) => T) => any[]; a17 = b17; // error ~~~ !!! error TS2322: Type 'new (x: (a: T) => T) => any[]' is not assignable to type '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }'. -!!! error TS2322: Signature 'new (x: { new (a: T): T; new (a: T): T; }): any[]' has no corresponding signature in 'new (x: (a: T) => T) => any[]' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type '(a: any) => any' is not assignable to type '{ new (a: T): T; new (a: T): T; }'. -!!! error TS2322: Signature 'new (a: T): T' has no corresponding signature in '(a: any) => any' +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type '(a: any) => any' is not assignable to type '{ new (a: T): T; new (a: T): T; }'. +!!! error TS2322: Signature 'new (a: T): T' has no corresponding signature in '(a: any) => any' b17 = a17; // error ~~~ !!! error TS2322: Type '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }' is not assignable to type 'new (x: (a: T) => T) => any[]'. -!!! error TS2322: Signature 'new (x: (a: T) => T): any[]' has no corresponding signature in '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type '{ new (a: T): T; new (a: T): T; }' is not assignable to type '(a: any) => any'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type '{ new (a: T): T; new (a: T): T; }' is not assignable to type '(a: any) => any'. } module WithGenericSignaturesInBaseType { diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/assignmentCompatWithConstructSignaturesWithOptionalParameters.errors.txt index 4ba4ec9a3c3..df56af3ee98 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithConstructSignaturesWithOptionalParameters.errors.txt @@ -1,13 +1,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts(16,5): error TS2322: Type 'new (x: number) => number' is not assignable to type 'new () => number'. - Signature 'new (): number' has no corresponding signature in 'new (x: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts(17,5): error TS2322: Type 'new (x: number, y?: number) => number' is not assignable to type 'new () => number'. - Signature 'new (): number' has no corresponding signature in 'new (x: number, y?: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts(19,5): error TS2322: Type 'new (x: number, y: number) => number' is not assignable to type 'new () => number'. - Signature 'new (): number' has no corresponding signature in 'new (x: number, y: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts(27,5): error TS2322: Type 'new (x: number, y: number) => number' is not assignable to type 'new (x?: number) => number'. - Signature 'new (x?: number): number' has no corresponding signature in 'new (x: number, y: number) => number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts(35,5): error TS2322: Type 'new (x: number, y: number) => number' is not assignable to type 'new (x: number) => number'. - Signature 'new (x: number): number' has no corresponding signature in 'new (x: number, y: number) => number' ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignaturesWithOptionalParameters.ts (5 errors) ==== @@ -29,16 +24,13 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a = b.a3; // error ~ !!! error TS2322: Type 'new (x: number) => number' is not assignable to type 'new () => number'. -!!! error TS2322: Signature 'new (): number' has no corresponding signature in 'new (x: number) => number' a = b.a4; // error ~ !!! error TS2322: Type 'new (x: number, y?: number) => number' is not assignable to type 'new () => number'. -!!! error TS2322: Signature 'new (): number' has no corresponding signature in 'new (x: number, y?: number) => number' a = b.a5; // ok a = b.a6; // error ~ !!! error TS2322: Type 'new (x: number, y: number) => number' is not assignable to type 'new () => number'. -!!! error TS2322: Signature 'new (): number' has no corresponding signature in 'new (x: number, y: number) => number' var a2: new (x?: number) => number; a2 = b.a; // ok @@ -49,7 +41,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a2 = b.a6; // error ~~ !!! error TS2322: Type 'new (x: number, y: number) => number' is not assignable to type 'new (x?: number) => number'. -!!! error TS2322: Signature 'new (x?: number): number' has no corresponding signature in 'new (x: number, y: number) => number' var a3: new (x: number) => number; a3 = b.a; // ok @@ -60,7 +51,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme a3 = b.a6; // error ~~ !!! error TS2322: Type 'new (x: number, y: number) => number' is not assignable to type 'new (x: number) => number'. -!!! error TS2322: Signature 'new (x: number): number' has no corresponding signature in 'new (x: number, y: number) => number' var a4: new (x: number, y?: number) => number; a4 = b.a; // ok diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.errors.txt index 229ec114d39..a18da8fd8f7 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.errors.txt @@ -1,15 +1,9 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts(14,13): error TS2322: Type '(x: T) => any' is not assignable to type '() => T'. - Signature '(): T' has no corresponding signature in '(x: T) => any' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts(23,13): error TS2322: Type '(x: T, y: T) => any' is not assignable to type '(x: T) => T'. - Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => any' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts(65,9): error TS2322: Type '(x: T) => T' is not assignable to type '() => T'. - Signature '(): T' has no corresponding signature in '(x: T) => T' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts(66,9): error TS2322: Type '(x: T, y?: T) => T' is not assignable to type '() => T'. - Signature '(): T' has no corresponding signature in '(x: T, y?: T) => T' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts(107,13): error TS2322: Type '(x: T) => any' is not assignable to type '() => T'. - Signature '(): T' has no corresponding signature in '(x: T) => any' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts(116,13): error TS2322: Type '(x: T, y: T) => any' is not assignable to type '(x: T) => T'. - Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => any' ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.ts (6 errors) ==== @@ -29,7 +23,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme this.a = (x: T) => null; // error, too many required params ~~~~~~ !!! error TS2322: Type '(x: T) => any' is not assignable to type '() => T'. -!!! error TS2322: Signature '(): T' has no corresponding signature in '(x: T) => any' this.a2 = () => null; // ok, same T of required params this.a2 = (x?: T) => null; // ok, same T of required params @@ -41,7 +34,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme this.a3 = (x: T, y: T) => null; // error, too many required params ~~~~~~~ !!! error TS2322: Type '(x: T, y: T) => any' is not assignable to type '(x: T) => T'. -!!! error TS2322: Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => any' this.a4 = () => null; // ok, fewer required params this.a4 = (x?: T, y?: T) => null; // ok, fewer required params @@ -86,11 +78,9 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme b.a = t.a3; ~~~ !!! error TS2322: Type '(x: T) => T' is not assignable to type '() => T'. -!!! error TS2322: Signature '(): T' has no corresponding signature in '(x: T) => T' b.a = t.a4; ~~~ !!! error TS2322: Type '(x: T, y?: T) => T' is not assignable to type '() => T'. -!!! error TS2322: Signature '(): T' has no corresponding signature in '(x: T, y?: T) => T' b.a = t.a5; b.a2 = t.a; @@ -134,7 +124,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme this.a = (x: T) => null; // error, too many required params ~~~~~~ !!! error TS2322: Type '(x: T) => any' is not assignable to type '() => T'. -!!! error TS2322: Signature '(): T' has no corresponding signature in '(x: T) => any' this.a2 = () => null; // ok, same T of required params this.a2 = (x?: T) => null; // ok, same T of required params @@ -146,7 +135,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme this.a3 = (x: T, y: T) => null; // error, too many required params ~~~~~~~ !!! error TS2322: Type '(x: T, y: T) => any' is not assignable to type '(x: T) => T'. -!!! error TS2322: Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => any' this.a4 = () => null; // ok, fewer required params this.a4 = (x?: T, y?: T) => null; // ok, fewer required params diff --git a/tests/baselines/reference/assignmentCompatWithOverloads.errors.txt b/tests/baselines/reference/assignmentCompatWithOverloads.errors.txt index 1def25bf372..3bea0c46716 100644 --- a/tests/baselines/reference/assignmentCompatWithOverloads.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithOverloads.errors.txt @@ -1,17 +1,13 @@ tests/cases/compiler/assignmentCompatWithOverloads.ts(17,1): error TS2322: Type '(x: string) => string' is not assignable to type '(s1: string) => number'. - Signature '(s1: string): number' has no corresponding signature in '(x: string) => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/assignmentCompatWithOverloads.ts(19,1): error TS2322: Type '(x: number) => number' is not assignable to type '(s1: string) => number'. - Signature '(s1: string): number' has no corresponding signature in '(x: number) => number' - Types of parameters 'x' and 's1' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 's1' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/assignmentCompatWithOverloads.ts(21,1): error TS2322: Type '{ (x: string): string; (x: number): number; }' is not assignable to type '(s1: string) => number'. - Signature '(s1: string): number' has no corresponding signature in '{ (x: string): string; (x: number): number; }' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/assignmentCompatWithOverloads.ts(30,1): error TS2322: Type 'typeof C' is not assignable to type 'new (x: number) => void'. - Signature 'new (x: number): void' has no corresponding signature in 'typeof C' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/assignmentCompatWithOverloads.ts (4 errors) ==== @@ -34,21 +30,18 @@ tests/cases/compiler/assignmentCompatWithOverloads.ts(30,1): error TS2322: Type g = f2; // Error ~ !!! error TS2322: Type '(x: string) => string' is not assignable to type '(s1: string) => number'. -!!! error TS2322: Signature '(s1: string): number' has no corresponding signature in '(x: string) => string' -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. g = f3; // Error ~ !!! error TS2322: Type '(x: number) => number' is not assignable to type '(s1: string) => number'. -!!! error TS2322: Signature '(s1: string): number' has no corresponding signature in '(x: number) => number' -!!! error TS2322: Types of parameters 'x' and 's1' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'x' and 's1' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. g = f4; // Error ~ !!! error TS2322: Type '{ (x: string): string; (x: number): number; }' is not assignable to type '(s1: string) => number'. -!!! error TS2322: Signature '(s1: string): number' has no corresponding signature in '{ (x: string): string; (x: number): number; }' -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. class C { constructor(x: string); @@ -60,6 +53,5 @@ tests/cases/compiler/assignmentCompatWithOverloads.ts(30,1): error TS2322: Type d = C; // Error ~ !!! error TS2322: Type 'typeof C' is not assignable to type 'new (x: number) => void'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in 'typeof C' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/asyncFunctionDeclaration15_es6.errors.txt b/tests/baselines/reference/asyncFunctionDeclaration15_es6.errors.txt index 8aa24d79ac0..bc1ef24127a 100644 --- a/tests/baselines/reference/asyncFunctionDeclaration15_es6.errors.txt +++ b/tests/baselines/reference/asyncFunctionDeclaration15_es6.errors.txt @@ -3,12 +3,10 @@ tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration1 tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(8,16): error TS1055: Type 'number' is not a valid async function return type. tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(9,16): error TS1055: Type 'PromiseLike' is not a valid async function return type. tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(10,16): error TS1055: Type 'typeof Thenable' is not a valid async function return type. - Signature 'new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void): PromiseLike' has no corresponding signature in 'typeof Thenable' - Type 'Thenable' is not assignable to type 'PromiseLike'. - Types of property 'then' are incompatible. - Type '() => void' is not assignable to type '{ (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike; (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => void): PromiseLike; }'. - Signature '(onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike' has no corresponding signature in '() => void' - Type 'void' is not assignable to type 'PromiseLike'. + Type 'Thenable' is not assignable to type 'PromiseLike'. + Types of property 'then' are incompatible. + Type '() => void' is not assignable to type '{ (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike; (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => void): PromiseLike; }'. + Type 'void' is not assignable to type 'PromiseLike'. tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(17,16): error TS1059: Return expression in async function does not have a valid callable 'then' member. tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(23,25): error TS1058: Operand for 'await' does not have a valid callable 'then' member. @@ -34,12 +32,10 @@ tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration1 async function fn6(): Thenable { } // error ~~~ !!! error TS1055: Type 'typeof Thenable' is not a valid async function return type. -!!! error TS1055: Signature 'new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void): PromiseLike' has no corresponding signature in 'typeof Thenable' -!!! error TS1055: Type 'Thenable' is not assignable to type 'PromiseLike'. -!!! error TS1055: Types of property 'then' are incompatible. -!!! error TS1055: Type '() => void' is not assignable to type '{ (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike; (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => void): PromiseLike; }'. -!!! error TS1055: Signature '(onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike' has no corresponding signature in '() => void' -!!! error TS1055: Type 'void' is not assignable to type 'PromiseLike'. +!!! error TS1055: Type 'Thenable' is not assignable to type 'PromiseLike'. +!!! error TS1055: Types of property 'then' are incompatible. +!!! error TS1055: Type '() => void' is not assignable to type '{ (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): PromiseLike; (onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => void): PromiseLike; }'. +!!! error TS1055: Type 'void' is not assignable to type 'PromiseLike'. async function fn7() { return; } // valid: Promise async function fn8() { return 1; } // valid: Promise async function fn9() { return null; } // valid: Promise diff --git a/tests/baselines/reference/booleanAssignment.errors.txt b/tests/baselines/reference/booleanAssignment.errors.txt index b16cca5c1bb..454bd7ef707 100644 --- a/tests/baselines/reference/booleanAssignment.errors.txt +++ b/tests/baselines/reference/booleanAssignment.errors.txt @@ -1,18 +1,15 @@ tests/cases/compiler/booleanAssignment.ts(2,1): error TS2322: Type 'number' is not assignable to type 'Boolean'. Types of property 'valueOf' are incompatible. Type '() => number' is not assignable to type '() => boolean'. - Signature '(): boolean' has no corresponding signature in '() => number' - Type 'number' is not assignable to type 'boolean'. + Type 'number' is not assignable to type 'boolean'. tests/cases/compiler/booleanAssignment.ts(3,1): error TS2322: Type 'string' is not assignable to type 'Boolean'. Types of property 'valueOf' are incompatible. Type '() => string' is not assignable to type '() => boolean'. - Signature '(): boolean' has no corresponding signature in '() => string' - Type 'string' is not assignable to type 'boolean'. + Type 'string' is not assignable to type 'boolean'. tests/cases/compiler/booleanAssignment.ts(4,1): error TS2322: Type '{}' is not assignable to type 'Boolean'. Types of property 'valueOf' are incompatible. Type '() => Object' is not assignable to type '() => boolean'. - Signature '(): boolean' has no corresponding signature in '() => Object' - Type 'Object' is not assignable to type 'boolean'. + Type 'Object' is not assignable to type 'boolean'. ==== tests/cases/compiler/booleanAssignment.ts (3 errors) ==== @@ -22,22 +19,19 @@ tests/cases/compiler/booleanAssignment.ts(4,1): error TS2322: Type '{}' is not a !!! error TS2322: Type 'number' is not assignable to type 'Boolean'. !!! error TS2322: Types of property 'valueOf' are incompatible. !!! error TS2322: Type '() => number' is not assignable to type '() => boolean'. -!!! error TS2322: Signature '(): boolean' has no corresponding signature in '() => number' -!!! error TS2322: Type 'number' is not assignable to type 'boolean'. +!!! error TS2322: Type 'number' is not assignable to type 'boolean'. b = "a"; // Error ~ !!! error TS2322: Type 'string' is not assignable to type 'Boolean'. !!! error TS2322: Types of property 'valueOf' are incompatible. !!! error TS2322: Type '() => string' is not assignable to type '() => boolean'. -!!! error TS2322: Signature '(): boolean' has no corresponding signature in '() => string' -!!! error TS2322: Type 'string' is not assignable to type 'boolean'. +!!! error TS2322: Type 'string' is not assignable to type 'boolean'. b = {}; // Error ~ !!! error TS2322: Type '{}' is not assignable to type 'Boolean'. !!! error TS2322: Types of property 'valueOf' are incompatible. !!! error TS2322: Type '() => Object' is not assignable to type '() => boolean'. -!!! error TS2322: Signature '(): boolean' has no corresponding signature in '() => Object' -!!! error TS2322: Type 'Object' is not assignable to type 'boolean'. +!!! error TS2322: Type 'Object' is not assignable to type 'boolean'. var o = {}; o = b; // OK diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance.errors.txt b/tests/baselines/reference/callSignatureAssignabilityInInheritance.errors.txt index 3e66787b54d..d6efdd66868 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance.errors.txt +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance.errors.txt @@ -1,8 +1,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance.ts(57,15): error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type '(x: number) => string' is not assignable to type '(x: number) => number'. - Signature '(x: number): number' has no corresponding signature in '(x: number) => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance.ts (1 errors) ==== @@ -67,8 +66,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSign !!! error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x: number) => string' is not assignable to type '(x: number) => number'. -!!! error TS2430: Signature '(x: number): number' has no corresponding signature in '(x: number) => string' -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Type 'string' is not assignable to type 'number'. // N's a: (x: number) => string; // error because base returns non-void; } diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance3.errors.txt b/tests/baselines/reference/callSignatureAssignabilityInInheritance3.errors.txt index b3bdb17ea71..7e9d75b1b41 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance3.errors.txt +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance3.errors.txt @@ -1,20 +1,17 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance3.ts(51,19): error TS2430: Interface 'I2' incorrectly extends interface 'A'. Types of property 'a2' are incompatible. Type '(x: T) => U[]' is not assignable to type '(x: number) => string[]'. - Signature '(x: number): string[]' has no corresponding signature in '(x: T) => U[]' - Types of parameters 'x' and 'x' are incompatible. - Type 'T' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'T' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance3.ts(60,19): error TS2430: Interface 'I4' incorrectly extends interface 'A'. Types of property 'a8' are incompatible. Type '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. - Signature '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' - Types of parameters 'y' and 'y' are incompatible. - Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. - Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' - Types of parameters 'arg2' and 'arg2' are incompatible. - Type '{ foo: number; }' is not assignable to type 'Base'. - Types of property 'foo' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'y' and 'y' are incompatible. + Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. + Types of parameters 'arg2' and 'arg2' are incompatible. + Type '{ foo: number; }' is not assignable to type 'Base'. + Types of property 'foo' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance3.ts (2 errors) ==== @@ -73,9 +70,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSign !!! error TS2430: Interface 'I2' incorrectly extends interface 'A'. !!! error TS2430: Types of property 'a2' are incompatible. !!! error TS2430: Type '(x: T) => U[]' is not assignable to type '(x: number) => string[]'. -!!! error TS2430: Signature '(x: number): string[]' has no corresponding signature in '(x: T) => U[]' -!!! error TS2430: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2430: Type 'T' is not assignable to type 'number'. +!!! error TS2430: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2430: Type 'T' is not assignable to type 'number'. a2: (x: T) => U[]; // error, no contextual signature instantiation since I2.a2 is not generic } @@ -89,14 +85,12 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSign !!! error TS2430: Interface 'I4' incorrectly extends interface 'A'. !!! error TS2430: Types of property 'a8' are incompatible. !!! error TS2430: Type '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. -!!! error TS2430: Signature '(x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in '(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' -!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2430: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. -!!! error TS2430: Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' -!!! error TS2430: Types of parameters 'arg2' and 'arg2' are incompatible. -!!! error TS2430: Type '{ foo: number; }' is not assignable to type 'Base'. -!!! error TS2430: Types of property 'foo' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2430: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. +!!! error TS2430: Types of parameters 'arg2' and 'arg2' are incompatible. +!!! error TS2430: Type '{ foo: number; }' is not assignable to type 'Base'. +!!! error TS2430: Types of property 'foo' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a8: (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U; // error, type mismatch } diff --git a/tests/baselines/reference/castingTuple.errors.txt b/tests/baselines/reference/castingTuple.errors.txt index cdf40eeeff6..62a36c9c156 100644 --- a/tests/baselines/reference/castingTuple.errors.txt +++ b/tests/baselines/reference/castingTuple.errors.txt @@ -13,9 +13,8 @@ tests/cases/conformance/types/tuple/castingTuple.ts(30,5): error TS2403: Subsequ tests/cases/conformance/types/tuple/castingTuple.ts(30,14): error TS2352: Neither type '[number, string]' nor type 'number[]' is assignable to the other. Types of property 'pop' are incompatible. Type '() => number | string' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '() => number | string' - Type 'number | string' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. + Type 'number | string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/tuple/castingTuple.ts(31,1): error TS2304: Cannot find name 't4'. @@ -71,9 +70,8 @@ tests/cases/conformance/types/tuple/castingTuple.ts(31,1): error TS2304: Cannot !!! error TS2352: Neither type '[number, string]' nor type 'number[]' is assignable to the other. !!! error TS2352: Types of property 'pop' are incompatible. !!! error TS2352: Type '() => number | string' is not assignable to type '() => number'. -!!! error TS2352: Signature '(): number' has no corresponding signature in '() => number | string' -!!! error TS2352: Type 'number | string' is not assignable to type 'number'. -!!! error TS2352: Type 'string' is not assignable to type 'number'. +!!! error TS2352: Type 'number | string' is not assignable to type 'number'. +!!! error TS2352: Type 'string' is not assignable to type 'number'. t4[2] = 10; ~~ !!! error TS2304: Cannot find name 't4'. diff --git a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.errors.txt b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.errors.txt index 579f6c47138..181bfcc907d 100644 --- a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.errors.txt +++ b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts(19,59): error TS2345: Argument of type '(c: C) => B' is not assignable to parameter of type '(x: C) => C'. - Signature '(x: C): C' has no corresponding signature in '(c: C) => B' - Type 'B' is not assignable to type 'C'. - Property 'z' is missing in type 'B'. + Type 'B' is not assignable to type 'C'. + Property 'z' is missing in type 'B'. ==== tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.ts (1 errors) ==== @@ -26,6 +25,5 @@ tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParamete (new Chain(new A)).then(a => new B).then(b => new C).then(c => new B).then(b => new A); ~~~~~~~~~~ !!! error TS2345: Argument of type '(c: C) => B' is not assignable to parameter of type '(x: C) => C'. -!!! error TS2345: Signature '(x: C): C' has no corresponding signature in '(c: C) => B' -!!! error TS2345: Type 'B' is not assignable to type 'C'. -!!! error TS2345: Property 'z' is missing in type 'B'. \ No newline at end of file +!!! error TS2345: Type 'B' is not assignable to type 'C'. +!!! error TS2345: Property 'z' is missing in type 'B'. \ No newline at end of file diff --git a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.errors.txt b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.errors.txt index 1de7ead6e04..8f5924586df 100644 --- a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.errors.txt +++ b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.errors.txt @@ -1,9 +1,7 @@ tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(7,43): error TS2345: Argument of type '(ss: S) => T' is not assignable to parameter of type '(x: S) => S'. - Signature '(x: S): S' has no corresponding signature in '(ss: S) => T' - Type 'T' is not assignable to type 'S'. + Type 'T' is not assignable to type 'S'. tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(10,29): error TS2345: Argument of type '(ss: S) => T' is not assignable to parameter of type '(x: S) => S'. - Signature '(x: S): S' has no corresponding signature in '(ss: S) => T' - Type 'T' is not assignable to type 'S'. + Type 'T' is not assignable to type 'S'. tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(32,9): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(36,9): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.ts(37,9): error TS2322: Type 'string' is not assignable to type 'number'. @@ -19,15 +17,13 @@ tests/cases/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParamete (new Chain(t)).then(tt => s).then(ss => t); ~~~~~~~ !!! error TS2345: Argument of type '(ss: S) => T' is not assignable to parameter of type '(x: S) => S'. -!!! error TS2345: Signature '(x: S): S' has no corresponding signature in '(ss: S) => T' -!!! error TS2345: Type 'T' is not assignable to type 'S'. +!!! error TS2345: Type 'T' is not assignable to type 'S'. // But error to try to climb up the chain (new Chain(s)).then(ss => t); ~~~~~~~ !!! error TS2345: Argument of type '(ss: S) => T' is not assignable to parameter of type '(x: S) => S'. -!!! error TS2345: Signature '(x: S): S' has no corresponding signature in '(ss: S) => T' -!!! error TS2345: Type 'T' is not assignable to type 'S'. +!!! error TS2345: Type 'T' is not assignable to type 'S'. // Staying at T or S should be fine (new Chain(t)).then(tt => t).then(tt => t).then(tt => t); diff --git a/tests/baselines/reference/classSideInheritance3.errors.txt b/tests/baselines/reference/classSideInheritance3.errors.txt index 4d6a5a9b018..c845defa5b8 100644 --- a/tests/baselines/reference/classSideInheritance3.errors.txt +++ b/tests/baselines/reference/classSideInheritance3.errors.txt @@ -1,7 +1,5 @@ tests/cases/compiler/classSideInheritance3.ts(16,5): error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. - Signature 'new (x: string): A' has no corresponding signature in 'typeof B' tests/cases/compiler/classSideInheritance3.ts(17,5): error TS2322: Type 'typeof B' is not assignable to type 'new (x: string) => A'. - Signature 'new (x: string): A' has no corresponding signature in 'typeof B' ==== tests/cases/compiler/classSideInheritance3.ts (2 errors) ==== @@ -23,9 +21,7 @@ tests/cases/compiler/classSideInheritance3.ts(17,5): error TS2322: Type 'typeof var r1: typeof A = B; // error ~~ !!! error TS2322: Type 'typeof B' is not assignable to type 'typeof A'. -!!! error TS2322: Signature 'new (x: string): A' has no corresponding signature in 'typeof B' var r2: new (x: string) => A = B; // error ~~ !!! error TS2322: Type 'typeof B' is not assignable to type 'new (x: string) => A'. -!!! error TS2322: Signature 'new (x: string): A' has no corresponding signature in 'typeof B' var r3: typeof A = C; // ok \ No newline at end of file diff --git a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt index 867a044420d..2fa13333058 100644 --- a/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt +++ b/tests/baselines/reference/conditionalOperatorWithoutIdenticalBCT.errors.txt @@ -6,16 +6,13 @@ tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithou Property 'propertyB' is missing in type 'A'. tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(19,5): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => number'. Type '(n: X) => string' is not assignable to type '(t: X) => number'. - Signature '(t: X): number' has no corresponding signature in '(n: X) => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(20,5): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => string'. Type '(m: X) => number' is not assignable to type '(t: X) => string'. - Signature '(t: X): string' has no corresponding signature in '(m: X) => number' - Type 'number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(21,5): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => boolean'. Type '(m: X) => number' is not assignable to type '(t: X) => boolean'. - Signature '(t: X): boolean' has no corresponding signature in '(m: X) => number' - Type 'number' is not assignable to type 'boolean'. + Type 'number' is not assignable to type 'boolean'. ==== tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts (5 errors) ==== @@ -49,19 +46,16 @@ tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithou ~~~~~~~ !!! error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => number'. !!! error TS2322: Type '(n: X) => string' is not assignable to type '(t: X) => number'. -!!! error TS2322: Signature '(t: X): number' has no corresponding signature in '(n: X) => string' -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var result5: (t: X) => string = true ? (m) => m.propertyX1 : (n) => n.propertyX2; ~~~~~~~ !!! error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => string'. !!! error TS2322: Type '(m: X) => number' is not assignable to type '(t: X) => string'. -!!! error TS2322: Signature '(t: X): string' has no corresponding signature in '(m: X) => number' -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var result6: (t: X) => boolean = true ? (m) => m.propertyX1 : (n) => n.propertyX2; ~~~~~~~ !!! error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => boolean'. !!! error TS2322: Type '(m: X) => number' is not assignable to type '(t: X) => boolean'. -!!! error TS2322: Signature '(t: X): boolean' has no corresponding signature in '(m: X) => number' -!!! error TS2322: Type 'number' is not assignable to type 'boolean'. +!!! error TS2322: Type 'number' is not assignable to type 'boolean'. var result61: (t: X) => number| string = true ? (m) => m.propertyX1 : (n) => n.propertyX2; \ No newline at end of file diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance.errors.txt b/tests/baselines/reference/constructSignatureAssignabilityInInheritance.errors.txt index 178239b729e..51278fc3f44 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance.errors.txt +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance.errors.txt @@ -1,8 +1,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance.ts(61,15): error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type 'new (x: number) => string' is not assignable to type 'new (x: number) => number'. - Signature 'new (x: number): number' has no corresponding signature in 'new (x: number) => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance.ts (1 errors) ==== @@ -71,8 +70,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/construc !!! error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type 'new (x: number) => string' is not assignable to type 'new (x: number) => number'. -!!! error TS2430: Signature 'new (x: number): number' has no corresponding signature in 'new (x: number) => string' -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Type 'string' is not assignable to type 'number'. // N's a: new (x: number) => string; // error because base returns non-void; } diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.errors.txt b/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.errors.txt index 5125fc27301..8d6273804f7 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.errors.txt +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.errors.txt @@ -1,20 +1,17 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance3.ts(41,19): error TS2430: Interface 'I2' incorrectly extends interface 'A'. Types of property 'a2' are incompatible. Type 'new (x: T) => U[]' is not assignable to type 'new (x: number) => string[]'. - Signature 'new (x: number): string[]' has no corresponding signature in 'new (x: T) => U[]' - Types of parameters 'x' and 'x' are incompatible. - Type 'T' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'T' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance3.ts(50,19): error TS2430: Interface 'I4' incorrectly extends interface 'A'. Types of property 'a8' are incompatible. Type 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. - Signature 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' - Types of parameters 'y' and 'y' are incompatible. - Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. - Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' - Types of parameters 'arg2' and 'arg2' are incompatible. - Type '{ foo: number; }' is not assignable to type 'Base'. - Types of property 'foo' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'y' and 'y' are incompatible. + Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. + Types of parameters 'arg2' and 'arg2' are incompatible. + Type '{ foo: number; }' is not assignable to type 'Base'. + Types of property 'foo' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance3.ts (2 errors) ==== @@ -63,9 +60,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/construc !!! error TS2430: Interface 'I2' incorrectly extends interface 'A'. !!! error TS2430: Types of property 'a2' are incompatible. !!! error TS2430: Type 'new (x: T) => U[]' is not assignable to type 'new (x: number) => string[]'. -!!! error TS2430: Signature 'new (x: number): string[]' has no corresponding signature in 'new (x: T) => U[]' -!!! error TS2430: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2430: Type 'T' is not assignable to type 'number'. +!!! error TS2430: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2430: Type 'T' is not assignable to type 'number'. a2: new (x: T) => U[]; // error, no contextual signature instantiation since I2.a2 is not generic } @@ -79,14 +75,12 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/construc !!! error TS2430: Interface 'I4' incorrectly extends interface 'A'. !!! error TS2430: Types of property 'a8' are incompatible. !!! error TS2430: Type 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' is not assignable to type 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived'. -!!! error TS2430: Signature 'new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived): (r: Base) => Derived' has no corresponding signature in 'new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U' -!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2430: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. -!!! error TS2430: Signature '(arg2: Base): Derived' has no corresponding signature in '(arg2: { foo: number; }) => any' -!!! error TS2430: Types of parameters 'arg2' and 'arg2' are incompatible. -!!! error TS2430: Type '{ foo: number; }' is not assignable to type 'Base'. -!!! error TS2430: Types of property 'foo' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2430: Type '(arg2: { foo: number; }) => any' is not assignable to type '(arg2: Base) => Derived'. +!!! error TS2430: Types of parameters 'arg2' and 'arg2' are incompatible. +!!! error TS2430: Type '{ foo: number; }' is not assignable to type 'Base'. +!!! error TS2430: Types of property 'foo' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a8: new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U; // error, type mismatch } diff --git a/tests/baselines/reference/contextualTypeWithTuple.errors.txt b/tests/baselines/reference/contextualTypeWithTuple.errors.txt index 249e96c8829..e447ed62b39 100644 --- a/tests/baselines/reference/contextualTypeWithTuple.errors.txt +++ b/tests/baselines/reference/contextualTypeWithTuple.errors.txt @@ -1,10 +1,9 @@ tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(3,5): error TS2322: Type '[number, string, boolean]' is not assignable to type '[number, string]'. Types of property 'pop' are incompatible. Type '() => number | string | boolean' is not assignable to type '() => number | string'. - Signature '(): number | string' has no corresponding signature in '() => number | string | boolean' - Type 'number | string | boolean' is not assignable to type 'number | string'. - Type 'boolean' is not assignable to type 'number | string'. - Type 'boolean' is not assignable to type 'string'. + Type 'number | string | boolean' is not assignable to type 'number | string'. + Type 'boolean' is not assignable to type 'number | string'. + Type 'boolean' is not assignable to type 'string'. tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(15,1): error TS2322: Type '[number, string, boolean]' is not assignable to type '[number, string]'. tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(18,1): error TS2322: Type '[{}, number]' is not assignable to type '[{ a: string; }, number]'. Types of property '0' are incompatible. @@ -15,9 +14,8 @@ tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(19,1): error TS23 tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(20,5): error TS2322: Type '[string, string, number]' is not assignable to type '[string, string]'. Types of property 'pop' are incompatible. Type '() => string | number' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in '() => string | number' - Type 'string | number' is not assignable to type 'string'. - Type 'number' is not assignable to type 'string'. + Type 'string | number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(24,1): error TS2322: Type '[C, string | number]' is not assignable to type '[C, string | number, D]'. Property '2' is missing in type '[C, string | number]'. tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(25,1): error TS2322: Type '[number, string | number]' is not assignable to type '[number, string]'. @@ -34,10 +32,9 @@ tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(25,1): error TS23 !!! error TS2322: Type '[number, string, boolean]' is not assignable to type '[number, string]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => number | string | boolean' is not assignable to type '() => number | string'. -!!! error TS2322: Signature '(): number | string' has no corresponding signature in '() => number | string | boolean' -!!! error TS2322: Type 'number | string | boolean' is not assignable to type 'number | string'. -!!! error TS2322: Type 'boolean' is not assignable to type 'number | string'. -!!! error TS2322: Type 'boolean' is not assignable to type 'string'. +!!! error TS2322: Type 'number | string | boolean' is not assignable to type 'number | string'. +!!! error TS2322: Type 'boolean' is not assignable to type 'number | string'. +!!! error TS2322: Type 'boolean' is not assignable to type 'string'. var numStrBoolTuple: [number, string, boolean] = [5, "foo", true]; var objNumTuple: [{ a: string }, number] = [{ a: "world" }, 5]; var strTupleTuple: [string, [number, {}]] = ["bar", [5, { x: 1, y: 1 }]]; @@ -69,9 +66,8 @@ tests/cases/conformance/types/tuple/contextualTypeWithTuple.ts(25,1): error TS23 !!! error TS2322: Type '[string, string, number]' is not assignable to type '[string, string]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => string | number' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in '() => string | number' -!!! error TS2322: Type 'string | number' is not assignable to type 'string'. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Type 'string | number' is not assignable to type 'string'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. unionTuple = unionTuple1; unionTuple = unionTuple2; diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.errors.txt b/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.errors.txt index 1e0865de8db..8be323f9af4 100644 --- a/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.errors.txt +++ b/tests/baselines/reference/contextualTypeWithUnionTypeObjectLiteral.errors.txt @@ -27,9 +27,8 @@ tests/cases/conformance/types/union/contextualTypeWithUnionTypeObjectLiteral.ts( Type '{ commonMethodDifferentReturnType: (a: string, b: number) => string | number; }' is not assignable to type 'I21'. Types of property 'commonMethodDifferentReturnType' are incompatible. Type '(a: string, b: number) => string | number' is not assignable to type '(a: string, b: number) => number'. - Signature '(a: string, b: number): number' has no corresponding signature in '(a: string, b: number) => string | number' - Type 'string | number' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. + Type 'string | number' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/union/contextualTypeWithUnionTypeObjectLiteral.ts (6 errors) ==== @@ -125,8 +124,7 @@ tests/cases/conformance/types/union/contextualTypeWithUnionTypeObjectLiteral.ts( !!! error TS2322: Type '{ commonMethodDifferentReturnType: (a: string, b: number) => string | number; }' is not assignable to type 'I21'. !!! error TS2322: Types of property 'commonMethodDifferentReturnType' are incompatible. !!! error TS2322: Type '(a: string, b: number) => string | number' is not assignable to type '(a: string, b: number) => number'. -!!! error TS2322: Signature '(a: string, b: number): number' has no corresponding signature in '(a: string, b: number) => string | number' -!!! error TS2322: Type 'string | number' is not assignable to type 'number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Type 'string | number' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. commonMethodDifferentReturnType: (a, b) => strOrNumber, }; \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping24.errors.txt b/tests/baselines/reference/contextualTyping24.errors.txt index 1d1fd191944..68cb8e3d853 100644 --- a/tests/baselines/reference/contextualTyping24.errors.txt +++ b/tests/baselines/reference/contextualTyping24.errors.txt @@ -1,15 +1,13 @@ tests/cases/compiler/contextualTyping24.ts(1,55): error TS2322: Type '(a: string) => number' is not assignable to type '(a: { (): number; (i: number): number; }) => number'. - Signature '(a: { (): number; (i: number): number; }): number' has no corresponding signature in '(a: string) => number' - Types of parameters 'a' and 'a' are incompatible. - Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. - Signature '(): number' has no corresponding signature in 'String' + Types of parameters 'a' and 'a' are incompatible. + Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. + Signature '(): number' has no corresponding signature in 'String' ==== tests/cases/compiler/contextualTyping24.ts (1 errors) ==== var foo:(a:{():number; (i:number):number; })=>number; foo = function(a:string){return 5}; ~~~ !!! error TS2322: Type '(a: string) => number' is not assignable to type '(a: { (): number; (i: number): number; }) => number'. -!!! error TS2322: Signature '(a: { (): number; (i: number): number; }): number' has no corresponding signature in '(a: string) => number' -!!! error TS2322: Types of parameters 'a' and 'a' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. -!!! error TS2322: Signature '(): number' has no corresponding signature in 'String' \ No newline at end of file +!!! error TS2322: Types of parameters 'a' and 'a' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. +!!! error TS2322: Signature '(): number' has no corresponding signature in 'String' \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping39.errors.txt b/tests/baselines/reference/contextualTyping39.errors.txt index 3cf5e5aa9ff..e43624fbead 100644 --- a/tests/baselines/reference/contextualTyping39.errors.txt +++ b/tests/baselines/reference/contextualTyping39.errors.txt @@ -1,11 +1,9 @@ tests/cases/compiler/contextualTyping39.ts(1,11): error TS2352: Neither type '() => string' nor type '() => number' is assignable to the other. - Signature '(): number' has no corresponding signature in '() => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/contextualTyping39.ts (1 errors) ==== var foo = <{ (): number; }> function() { return "err"; }; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2352: Neither type '() => string' nor type '() => number' is assignable to the other. -!!! error TS2352: Signature '(): number' has no corresponding signature in '() => string' -!!! error TS2352: Type 'string' is not assignable to type 'number'. \ No newline at end of file +!!! error TS2352: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping41.errors.txt b/tests/baselines/reference/contextualTyping41.errors.txt index a3e33f26ddd..1ed6da1b782 100644 --- a/tests/baselines/reference/contextualTyping41.errors.txt +++ b/tests/baselines/reference/contextualTyping41.errors.txt @@ -1,11 +1,9 @@ tests/cases/compiler/contextualTyping41.ts(1,11): error TS2352: Neither type '() => string' nor type '{ (): number; (i: number): number; }' is assignable to the other. - Signature '(): number' has no corresponding signature in '() => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/contextualTyping41.ts (1 errors) ==== var foo = <{():number; (i:number):number; }> (function(){return "err";}); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2352: Neither type '() => string' nor type '{ (): number; (i: number): number; }' is assignable to the other. -!!! error TS2352: Signature '(): number' has no corresponding signature in '() => string' -!!! error TS2352: Type 'string' is not assignable to type 'number'. \ No newline at end of file +!!! error TS2352: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTypingOfConditionalExpression2.errors.txt b/tests/baselines/reference/contextualTypingOfConditionalExpression2.errors.txt index 6fbf1b12967..08fe22c08e0 100644 --- a/tests/baselines/reference/contextualTypingOfConditionalExpression2.errors.txt +++ b/tests/baselines/reference/contextualTypingOfConditionalExpression2.errors.txt @@ -1,9 +1,8 @@ tests/cases/compiler/contextualTypingOfConditionalExpression2.ts(11,5): error TS2322: Type '((a: C) => number) | ((b: number) => void)' is not assignable to type '(a: A) => void'. Type '(b: number) => void' is not assignable to type '(a: A) => void'. - Signature '(a: A): void' has no corresponding signature in '(b: number) => void' - Types of parameters 'b' and 'a' are incompatible. - Type 'number' is not assignable to type 'A'. - Property 'foo' is missing in type 'Number'. + Types of parameters 'b' and 'a' are incompatible. + Type 'number' is not assignable to type 'A'. + Property 'foo' is missing in type 'Number'. ==== tests/cases/compiler/contextualTypingOfConditionalExpression2.ts (1 errors) ==== @@ -21,8 +20,7 @@ tests/cases/compiler/contextualTypingOfConditionalExpression2.ts(11,5): error TS ~~ !!! error TS2322: Type '((a: C) => number) | ((b: number) => void)' is not assignable to type '(a: A) => void'. !!! error TS2322: Type '(b: number) => void' is not assignable to type '(a: A) => void'. -!!! error TS2322: Signature '(a: A): void' has no corresponding signature in '(b: number) => void' -!!! error TS2322: Types of parameters 'b' and 'a' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'A'. -!!! error TS2322: Property 'foo' is missing in type 'Number'. +!!! error TS2322: Types of parameters 'b' and 'a' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'A'. +!!! error TS2322: Property 'foo' is missing in type 'Number'. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.errors.txt b/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.errors.txt index 530993a7e23..a11f0009016 100644 --- a/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.errors.txt +++ b/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.errors.txt @@ -1,10 +1,8 @@ tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts(16,32): error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => Date'. - Signature '(x: number): Date' has no corresponding signature in '(x: number) => string' - Type 'string' is not assignable to type 'Date'. - Property 'toDateString' is missing in type 'String'. + Type 'string' is not assignable to type 'Date'. + Property 'toDateString' is missing in type 'String'. tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts(17,32): error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => Date'. - Signature '(x: number): Date' has no corresponding signature in '(x: number) => string' - Type 'string' is not assignable to type 'Date'. + Type 'string' is not assignable to type 'Date'. ==== tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts (2 errors) ==== @@ -26,12 +24,10 @@ tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts(17,32): var r5 = _.forEach(c2, f); ~ !!! error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => Date'. -!!! error TS2345: Signature '(x: number): Date' has no corresponding signature in '(x: number) => string' -!!! error TS2345: Type 'string' is not assignable to type 'Date'. -!!! error TS2345: Property 'toDateString' is missing in type 'String'. +!!! error TS2345: Type 'string' is not assignable to type 'Date'. +!!! error TS2345: Property 'toDateString' is missing in type 'String'. var r6 = _.forEach(c2, (x) => { return x.toFixed() }); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => Date'. -!!! error TS2345: Signature '(x: number): Date' has no corresponding signature in '(x: number) => string' -!!! error TS2345: Type 'string' is not assignable to type 'Date'. +!!! error TS2345: Type 'string' is not assignable to type 'Date'. \ No newline at end of file diff --git a/tests/baselines/reference/derivedClassTransitivity.errors.txt b/tests/baselines/reference/derivedClassTransitivity.errors.txt index 5f47163f13f..c6b620beb18 100644 --- a/tests/baselines/reference/derivedClassTransitivity.errors.txt +++ b/tests/baselines/reference/derivedClassTransitivity.errors.txt @@ -1,9 +1,8 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity.ts(18,1): error TS2322: Type 'E' is not assignable to type 'C'. Types of property 'foo' are incompatible. Type '(x?: string) => void' is not assignable to type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x?: string) => void' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity.ts (1 errors) ==== @@ -29,8 +28,7 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTra !!! error TS2322: Type 'E' is not assignable to type 'C'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x?: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x?: string) => void' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var r = c.foo(1); var r2 = e.foo(''); \ No newline at end of file diff --git a/tests/baselines/reference/derivedClassTransitivity2.errors.txt b/tests/baselines/reference/derivedClassTransitivity2.errors.txt index 16aa54ef101..a8d2003c876 100644 --- a/tests/baselines/reference/derivedClassTransitivity2.errors.txt +++ b/tests/baselines/reference/derivedClassTransitivity2.errors.txt @@ -1,9 +1,8 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity2.ts(18,1): error TS2322: Type 'E' is not assignable to type 'C'. Types of property 'foo' are incompatible. Type '(x: number, y?: string) => void' is not assignable to type '(x: number, y: number) => void'. - Signature '(x: number, y: number): void' has no corresponding signature in '(x: number, y?: string) => void' - Types of parameters 'y' and 'y' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'y' and 'y' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity2.ts (1 errors) ==== @@ -29,8 +28,7 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTra !!! error TS2322: Type 'E' is not assignable to type 'C'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x: number, y?: string) => void' is not assignable to type '(x: number, y: number) => void'. -!!! error TS2322: Signature '(x: number, y: number): void' has no corresponding signature in '(x: number, y?: string) => void' -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var r = c.foo(1, 1); var r2 = e.foo(1, ''); \ No newline at end of file diff --git a/tests/baselines/reference/derivedClassTransitivity3.errors.txt b/tests/baselines/reference/derivedClassTransitivity3.errors.txt index 837c6db67c4..9d301255dfd 100644 --- a/tests/baselines/reference/derivedClassTransitivity3.errors.txt +++ b/tests/baselines/reference/derivedClassTransitivity3.errors.txt @@ -1,9 +1,8 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity3.ts(18,1): error TS2322: Type 'E' is not assignable to type 'C'. Types of property 'foo' are incompatible. Type '(x: string, y?: number) => void' is not assignable to type '(x: string, y: string) => void'. - Signature '(x: string, y: string): void' has no corresponding signature in '(x: string, y?: number) => void' - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity3.ts (1 errors) ==== @@ -29,8 +28,7 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTra !!! error TS2322: Type 'E' is not assignable to type 'C'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x: string, y?: number) => void' is not assignable to type '(x: string, y: string) => void'. -!!! error TS2322: Signature '(x: string, y: string): void' has no corresponding signature in '(x: string, y?: number) => void' -!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var r = c.foo('', ''); var r2 = e.foo('', 1); \ No newline at end of file diff --git a/tests/baselines/reference/derivedClassTransitivity4.errors.txt b/tests/baselines/reference/derivedClassTransitivity4.errors.txt index 47d1d767fbd..c1a80e0a1d7 100644 --- a/tests/baselines/reference/derivedClassTransitivity4.errors.txt +++ b/tests/baselines/reference/derivedClassTransitivity4.errors.txt @@ -1,9 +1,8 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity4.ts(18,1): error TS2322: Type 'E' is not assignable to type 'C'. Types of property 'foo' are incompatible. Type '(x?: string) => void' is not assignable to type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x?: string) => void' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTransitivity4.ts(19,9): error TS2445: Property 'foo' is protected and only accessible within class 'C' and its subclasses. @@ -30,9 +29,8 @@ tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassTra !!! error TS2322: Type 'E' is not assignable to type 'C'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x?: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x?: string) => void' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var r = c.foo(1); ~~~~~ !!! error TS2445: Property 'foo' is protected and only accessible within class 'C' and its subclasses. diff --git a/tests/baselines/reference/derivedInterfaceCallSignature.errors.txt b/tests/baselines/reference/derivedInterfaceCallSignature.errors.txt index 6f088a12a9a..ae8fbe2ff5d 100644 --- a/tests/baselines/reference/derivedInterfaceCallSignature.errors.txt +++ b/tests/baselines/reference/derivedInterfaceCallSignature.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/derivedInterfaceCallSignature.ts(11,11): error TS2430: Interface 'D3SvgArea' incorrectly extends interface 'D3SvgPath'. Types of property 'x' are incompatible. Type '(x: (data: any, index?: number) => number) => D3SvgArea' is not assignable to type '() => (data: any, index?: number) => number'. - Signature '(): (data: any, index?: number) => number' has no corresponding signature in '(x: (data: any, index?: number) => number) => D3SvgArea' ==== tests/cases/compiler/derivedInterfaceCallSignature.ts (1 errors) ==== @@ -20,7 +19,6 @@ tests/cases/compiler/derivedInterfaceCallSignature.ts(11,11): error TS2430: Inte !!! error TS2430: Interface 'D3SvgArea' incorrectly extends interface 'D3SvgPath'. !!! error TS2430: Types of property 'x' are incompatible. !!! error TS2430: Type '(x: (data: any, index?: number) => number) => D3SvgArea' is not assignable to type '() => (data: any, index?: number) => number'. -!!! error TS2430: Signature '(): (data: any, index?: number) => number' has no corresponding signature in '(x: (data: any, index?: number) => number) => D3SvgArea' x(x: (data: any, index?: number) => number): D3SvgArea; y(y: (data: any, index?: number) => number): D3SvgArea; y0(): (data: any, index?: number) => number; diff --git a/tests/baselines/reference/destructuringParameterDeclaration2.errors.txt b/tests/baselines/reference/destructuringParameterDeclaration2.errors.txt index a3311319960..c8037255a32 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration2.errors.txt +++ b/tests/baselines/reference/destructuringParameterDeclaration2.errors.txt @@ -5,11 +5,10 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts( tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(8,4): error TS2345: Argument of type '[number, number, string[][], string]' is not assignable to parameter of type '[number, number, string[][]]'. Types of property 'pop' are incompatible. Type '() => number | string[][] | string' is not assignable to type '() => number | string[][]'. - Signature '(): number | string[][]' has no corresponding signature in '() => number | string[][] | string' - Type 'number | string[][] | string' is not assignable to type 'number | string[][]'. - Type 'string' is not assignable to type 'number | string[][]'. - Type 'string' is not assignable to type 'string[][]'. - Property 'push' is missing in type 'String'. + Type 'number | string[][] | string' is not assignable to type 'number | string[][]'. + Type 'string' is not assignable to type 'number | string[][]'. + Type 'string' is not assignable to type 'string[][]'. + Property 'push' is missing in type 'String'. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(16,8): error TS2371: A parameter initializer is only allowed in a function or constructor implementation. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(16,16): error TS2371: A parameter initializer is only allowed in a function or constructor implementation. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(23,14): error TS2345: Argument of type '{ x: string; y: boolean; }' is not assignable to parameter of type '{ x: number; y: any; }'. @@ -48,10 +47,9 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts( tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(55,7): error TS2420: Class 'C4' incorrectly implements interface 'F2'. Types of property 'd4' are incompatible. Type '({x, y, c}: { x: any; y: any; c: any; }) => void' is not assignable to type '({x, y, z}?: { x: any; y: any; z: any; }) => any'. - Signature '({x, y, z}?: { x: any; y: any; z: any; }): any' has no corresponding signature in '({x, y, c}: { x: any; y: any; c: any; }) => void' - Types of parameters '__0' and '__0' are incompatible. - Type '{ x: any; y: any; c: any; }' is not assignable to type '{ x: any; y: any; z: any; }'. - Property 'z' is missing in type '{ x: any; y: any; c: any; }'. + Types of parameters '__0' and '__0' are incompatible. + Type '{ x: any; y: any; c: any; }' is not assignable to type '{ x: any; y: any; z: any; }'. + Property 'z' is missing in type '{ x: any; y: any; c: any; }'. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(56,8): error TS2463: A binding pattern parameter cannot be optional in an implementation signature. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(65,18): error TS2300: Duplicate identifier 'number'. tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts(65,26): error TS2300: Duplicate identifier 'number'. @@ -77,11 +75,10 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts( !!! error TS2345: Argument of type '[number, number, string[][], string]' is not assignable to parameter of type '[number, number, string[][]]'. !!! error TS2345: Types of property 'pop' are incompatible. !!! error TS2345: Type '() => number | string[][] | string' is not assignable to type '() => number | string[][]'. -!!! error TS2345: Signature '(): number | string[][]' has no corresponding signature in '() => number | string[][] | string' -!!! error TS2345: Type 'number | string[][] | string' is not assignable to type 'number | string[][]'. -!!! error TS2345: Type 'string' is not assignable to type 'number | string[][]'. -!!! error TS2345: Type 'string' is not assignable to type 'string[][]'. -!!! error TS2345: Property 'push' is missing in type 'String'. +!!! error TS2345: Type 'number | string[][] | string' is not assignable to type 'number | string[][]'. +!!! error TS2345: Type 'string' is not assignable to type 'number | string[][]'. +!!! error TS2345: Type 'string' is not assignable to type 'string[][]'. +!!! error TS2345: Property 'push' is missing in type 'String'. // If the declaration includes an initializer expression (which is permitted only @@ -182,10 +179,9 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration2.ts( !!! error TS2420: Class 'C4' incorrectly implements interface 'F2'. !!! error TS2420: Types of property 'd4' are incompatible. !!! error TS2420: Type '({x, y, c}: { x: any; y: any; c: any; }) => void' is not assignable to type '({x, y, z}?: { x: any; y: any; z: any; }) => any'. -!!! error TS2420: Signature '({x, y, z}?: { x: any; y: any; z: any; }): any' has no corresponding signature in '({x, y, c}: { x: any; y: any; c: any; }) => void' -!!! error TS2420: Types of parameters '__0' and '__0' are incompatible. -!!! error TS2420: Type '{ x: any; y: any; c: any; }' is not assignable to type '{ x: any; y: any; z: any; }'. -!!! error TS2420: Property 'z' is missing in type '{ x: any; y: any; c: any; }'. +!!! error TS2420: Types of parameters '__0' and '__0' are incompatible. +!!! error TS2420: Type '{ x: any; y: any; c: any; }' is not assignable to type '{ x: any; y: any; z: any; }'. +!!! error TS2420: Property 'z' is missing in type '{ x: any; y: any; c: any; }'. d3([a, b, c]?) { } // Error, binding pattern can't be optional in implementation signature ~~~~~~~~~~ !!! error TS2463: A binding pattern parameter cannot be optional in an implementation signature. diff --git a/tests/baselines/reference/errorElaboration.errors.txt b/tests/baselines/reference/errorElaboration.errors.txt index 42903f7fa04..94742d7d98b 100644 --- a/tests/baselines/reference/errorElaboration.errors.txt +++ b/tests/baselines/reference/errorElaboration.errors.txt @@ -1,8 +1,7 @@ tests/cases/compiler/errorElaboration.ts(12,5): error TS2345: Argument of type '() => Container>' is not assignable to parameter of type '() => Container>'. - Signature '(): Container>' has no corresponding signature in '() => Container>' - Type 'Container>' is not assignable to type 'Container>'. - Type 'Ref' is not assignable to type 'Ref'. - Type 'string' is not assignable to type 'number'. + Type 'Container>' is not assignable to type 'Container>'. + Type 'Ref' is not assignable to type 'Ref'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/errorElaboration.ts (1 errors) ==== @@ -20,8 +19,7 @@ tests/cases/compiler/errorElaboration.ts(12,5): error TS2345: Argument of type ' foo(a); ~ !!! error TS2345: Argument of type '() => Container>' is not assignable to parameter of type '() => Container>'. -!!! error TS2345: Signature '(): Container>' has no corresponding signature in '() => Container>' -!!! error TS2345: Type 'Container>' is not assignable to type 'Container>'. -!!! error TS2345: Type 'Ref' is not assignable to type 'Ref'. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Type 'Container>' is not assignable to type 'Container>'. +!!! error TS2345: Type 'Ref' is not assignable to type 'Ref'. +!!! error TS2345: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/errorOnContextuallyTypedReturnType.errors.txt b/tests/baselines/reference/errorOnContextuallyTypedReturnType.errors.txt index 8fbd4052bf9..403e79b8742 100644 --- a/tests/baselines/reference/errorOnContextuallyTypedReturnType.errors.txt +++ b/tests/baselines/reference/errorOnContextuallyTypedReturnType.errors.txt @@ -1,6 +1,5 @@ tests/cases/compiler/errorOnContextuallyTypedReturnType.ts(1,5): error TS2322: Type '() => void' is not assignable to type '() => boolean'. - Signature '(): boolean' has no corresponding signature in '() => void' - Type 'void' is not assignable to type 'boolean'. + Type 'void' is not assignable to type 'boolean'. tests/cases/compiler/errorOnContextuallyTypedReturnType.ts(2,37): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. @@ -8,8 +7,7 @@ tests/cases/compiler/errorOnContextuallyTypedReturnType.ts(2,37): error TS2355: var n1: () => boolean = function () { }; // expect an error here ~~ !!! error TS2322: Type '() => void' is not assignable to type '() => boolean'. -!!! error TS2322: Signature '(): boolean' has no corresponding signature in '() => void' -!!! error TS2322: Type 'void' is not assignable to type 'boolean'. +!!! error TS2322: Type 'void' is not assignable to type 'boolean'. var n2: () => boolean = function ():boolean { }; // expect an error here ~~~~~~~ !!! error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. diff --git a/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt b/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt index 6cacd56eb17..12478442472 100644 --- a/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt +++ b/tests/baselines/reference/everyTypeWithAnnotationAndInvalidInitializer.errors.txt @@ -16,26 +16,21 @@ tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAnd Types of property 'id' are incompatible. Type 'number' is not assignable to type 'string'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(46,5): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. - Signature '(x: string): number' has no corresponding signature in '(x: number) => boolean' - Types of parameters 'x' and 'x' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'x' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(47,5): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. - Signature '(x: string): number' has no corresponding signature in '(x: number) => boolean' - Types of parameters 'x' and 'x' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'x' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(48,5): error TS2322: Type '(x: string) => string' is not assignable to type '(x: string) => number'. - Signature '(x: string): number' has no corresponding signature in '(x: string) => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(50,5): error TS2322: Type 'typeof N' is not assignable to type 'typeof M'. Types of property 'A' are incompatible. Type 'typeof N.A' is not assignable to type 'typeof M.A'. - Signature 'new (): A' has no corresponding signature in 'typeof A' - Type 'N.A' is not assignable to type 'M.A'. - Property 'name' is missing in type 'A'. + Type 'N.A' is not assignable to type 'M.A'. + Property 'name' is missing in type 'A'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(51,5): error TS2322: Type 'N.A' is not assignable to type 'M.A'. tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts(52,5): error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: number) => string'. - Signature '(x: number): string' has no corresponding signature in '(x: number) => boolean' - Type 'boolean' is not assignable to type 'string'. + Type 'boolean' is not assignable to type 'string'. ==== tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInvalidInitializer.ts (15 errors) ==== @@ -113,36 +108,31 @@ tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAnd var aFunction: typeof F = F2; ~~~~~~~~~ !!! error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. -!!! error TS2322: Signature '(x: string): number' has no corresponding signature in '(x: number) => boolean' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var anOtherFunction: (x: string) => number = F2; ~~~~~~~~~~~~~~~ !!! error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: string) => number'. -!!! error TS2322: Signature '(x: string): number' has no corresponding signature in '(x: number) => boolean' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var aLambda: typeof F = (x) => 'a string'; ~~~~~~~ !!! error TS2322: Type '(x: string) => string' is not assignable to type '(x: string) => number'. -!!! error TS2322: Signature '(x: string): number' has no corresponding signature in '(x: string) => string' -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var aModule: typeof M = N; ~~~~~~~ !!! error TS2322: Type 'typeof N' is not assignable to type 'typeof M'. !!! error TS2322: Types of property 'A' are incompatible. !!! error TS2322: Type 'typeof N.A' is not assignable to type 'typeof M.A'. -!!! error TS2322: Signature 'new (): A' has no corresponding signature in 'typeof A' -!!! error TS2322: Type 'N.A' is not assignable to type 'M.A'. -!!! error TS2322: Property 'name' is missing in type 'A'. +!!! error TS2322: Type 'N.A' is not assignable to type 'M.A'. +!!! error TS2322: Property 'name' is missing in type 'A'. var aClassInModule: M.A = new N.A(); ~~~~~~~~~~~~~~ !!! error TS2322: Type 'N.A' is not assignable to type 'M.A'. var aFunctionInModule: typeof M.F2 = F2; ~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '(x: number) => boolean' is not assignable to type '(x: number) => string'. -!!! error TS2322: Signature '(x: number): string' has no corresponding signature in '(x: number) => boolean' -!!! error TS2322: Type 'boolean' is not assignable to type 'string'. +!!! error TS2322: Type 'boolean' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/extendAndImplementTheSameBaseType2.errors.txt b/tests/baselines/reference/extendAndImplementTheSameBaseType2.errors.txt index 448851640cd..a44c95377dc 100644 --- a/tests/baselines/reference/extendAndImplementTheSameBaseType2.errors.txt +++ b/tests/baselines/reference/extendAndImplementTheSameBaseType2.errors.txt @@ -1,8 +1,7 @@ tests/cases/compiler/extendAndImplementTheSameBaseType2.ts(7,7): error TS2420: Class 'D' incorrectly implements interface 'C'. Types of property 'bar' are incompatible. Type '() => string' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '() => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/extendAndImplementTheSameBaseType2.ts(12,5): error TS2322: Type 'number' is not assignable to type 'string'. tests/cases/compiler/extendAndImplementTheSameBaseType2.ts(16,5): error TS2322: Type 'string' is not assignable to type 'number'. @@ -19,8 +18,7 @@ tests/cases/compiler/extendAndImplementTheSameBaseType2.ts(16,5): error TS2322: !!! error TS2420: Class 'D' incorrectly implements interface 'C'. !!! error TS2420: Types of property 'bar' are incompatible. !!! error TS2420: Type '() => string' is not assignable to type '() => number'. -!!! error TS2420: Signature '(): number' has no corresponding signature in '() => string' -!!! error TS2420: Type 'string' is not assignable to type 'number'. +!!! error TS2420: Type 'string' is not assignable to type 'number'. baz() { } } diff --git a/tests/baselines/reference/fixingTypeParametersRepeatedly2.errors.txt b/tests/baselines/reference/fixingTypeParametersRepeatedly2.errors.txt index ca0c6bb9dca..e56b58a268d 100644 --- a/tests/baselines/reference/fixingTypeParametersRepeatedly2.errors.txt +++ b/tests/baselines/reference/fixingTypeParametersRepeatedly2.errors.txt @@ -1,10 +1,8 @@ tests/cases/compiler/fixingTypeParametersRepeatedly2.ts(11,27): error TS2345: Argument of type '(d: Derived) => Base' is not assignable to parameter of type '(p: Derived) => Derived'. - Signature '(p: Derived): Derived' has no corresponding signature in '(d: Derived) => Base' - Type 'Base' is not assignable to type 'Derived'. - Property 'toBase' is missing in type 'Base'. + Type 'Base' is not assignable to type 'Derived'. + Property 'toBase' is missing in type 'Base'. tests/cases/compiler/fixingTypeParametersRepeatedly2.ts(17,27): error TS2345: Argument of type '(d: Derived) => Base' is not assignable to parameter of type '(p: Derived) => Derived'. - Signature '(p: Derived): Derived' has no corresponding signature in '(d: Derived) => Base' - Type 'Base' is not assignable to type 'Derived'. + Type 'Base' is not assignable to type 'Derived'. ==== tests/cases/compiler/fixingTypeParametersRepeatedly2.ts (2 errors) ==== @@ -21,9 +19,8 @@ tests/cases/compiler/fixingTypeParametersRepeatedly2.ts(17,27): error TS2345: Ar var result = foo(derived, d => d.toBase()); ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(d: Derived) => Base' is not assignable to parameter of type '(p: Derived) => Derived'. -!!! error TS2345: Signature '(p: Derived): Derived' has no corresponding signature in '(d: Derived) => Base' -!!! error TS2345: Type 'Base' is not assignable to type 'Derived'. -!!! error TS2345: Property 'toBase' is missing in type 'Base'. +!!! error TS2345: Type 'Base' is not assignable to type 'Derived'. +!!! error TS2345: Property 'toBase' is missing in type 'Base'. // bar should type check just like foo. // The same error should be observed in both cases. @@ -32,5 +29,4 @@ tests/cases/compiler/fixingTypeParametersRepeatedly2.ts(17,27): error TS2345: Ar var result = bar(derived, d => d.toBase()); ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(d: Derived) => Base' is not assignable to parameter of type '(p: Derived) => Derived'. -!!! error TS2345: Signature '(p: Derived): Derived' has no corresponding signature in '(d: Derived) => Base' -!!! error TS2345: Type 'Base' is not assignable to type 'Derived'. \ No newline at end of file +!!! error TS2345: Type 'Base' is not assignable to type 'Derived'. \ No newline at end of file diff --git a/tests/baselines/reference/for-of30.errors.txt b/tests/baselines/reference/for-of30.errors.txt index 85c04fffdd0..24dcb4dee53 100644 --- a/tests/baselines/reference/for-of30.errors.txt +++ b/tests/baselines/reference/for-of30.errors.txt @@ -1,11 +1,10 @@ tests/cases/conformance/es6/for-ofStatements/for-of30.ts(1,15): error TS2322: Type 'StringIterator' is not assignable to type 'Iterable'. Types of property '[Symbol.iterator]' are incompatible. Type '() => StringIterator' is not assignable to type '() => Iterator'. - Signature '(): Iterator' has no corresponding signature in '() => StringIterator' - Type 'StringIterator' is not assignable to type 'Iterator'. - Types of property 'return' are incompatible. - Type 'number' is not assignable to type '(value?: any) => IteratorResult'. - Signature '(value?: any): IteratorResult' has no corresponding signature in 'Number' + Type 'StringIterator' is not assignable to type 'Iterator'. + Types of property 'return' are incompatible. + Type 'number' is not assignable to type '(value?: any) => IteratorResult'. + Signature '(value?: any): IteratorResult' has no corresponding signature in 'Number' ==== tests/cases/conformance/es6/for-ofStatements/for-of30.ts (1 errors) ==== @@ -14,11 +13,10 @@ tests/cases/conformance/es6/for-ofStatements/for-of30.ts(1,15): error TS2322: Ty !!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterable'. !!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. !!! error TS2322: Type '() => StringIterator' is not assignable to type '() => Iterator'. -!!! error TS2322: Signature '(): Iterator' has no corresponding signature in '() => StringIterator' -!!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterator'. -!!! error TS2322: Types of property 'return' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type '(value?: any) => IteratorResult'. -!!! error TS2322: Signature '(value?: any): IteratorResult' has no corresponding signature in 'Number' +!!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterator'. +!!! error TS2322: Types of property 'return' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type '(value?: any) => IteratorResult'. +!!! error TS2322: Signature '(value?: any): IteratorResult' has no corresponding signature in 'Number' class StringIterator { next() { diff --git a/tests/baselines/reference/for-of31.errors.txt b/tests/baselines/reference/for-of31.errors.txt index 111235d2f57..6d5f6e816be 100644 --- a/tests/baselines/reference/for-of31.errors.txt +++ b/tests/baselines/reference/for-of31.errors.txt @@ -1,13 +1,11 @@ tests/cases/conformance/es6/for-ofStatements/for-of31.ts(1,15): error TS2322: Type 'StringIterator' is not assignable to type 'Iterable'. Types of property '[Symbol.iterator]' are incompatible. Type '() => StringIterator' is not assignable to type '() => Iterator'. - Signature '(): Iterator' has no corresponding signature in '() => StringIterator' - Type 'StringIterator' is not assignable to type 'Iterator'. - Types of property 'next' are incompatible. - Type '() => { value: string; }' is not assignable to type '(value?: any) => IteratorResult'. - Signature '(value?: any): IteratorResult' has no corresponding signature in '() => { value: string; }' - Type '{ value: string; }' is not assignable to type 'IteratorResult'. - Property 'done' is missing in type '{ value: string; }'. + Type 'StringIterator' is not assignable to type 'Iterator'. + Types of property 'next' are incompatible. + Type '() => { value: string; }' is not assignable to type '(value?: any) => IteratorResult'. + Type '{ value: string; }' is not assignable to type 'IteratorResult'. + Property 'done' is missing in type '{ value: string; }'. ==== tests/cases/conformance/es6/for-ofStatements/for-of31.ts (1 errors) ==== @@ -16,13 +14,11 @@ tests/cases/conformance/es6/for-ofStatements/for-of31.ts(1,15): error TS2322: Ty !!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterable'. !!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. !!! error TS2322: Type '() => StringIterator' is not assignable to type '() => Iterator'. -!!! error TS2322: Signature '(): Iterator' has no corresponding signature in '() => StringIterator' -!!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterator'. -!!! error TS2322: Types of property 'next' are incompatible. -!!! error TS2322: Type '() => { value: string; }' is not assignable to type '(value?: any) => IteratorResult'. -!!! error TS2322: Signature '(value?: any): IteratorResult' has no corresponding signature in '() => { value: string; }' -!!! error TS2322: Type '{ value: string; }' is not assignable to type 'IteratorResult'. -!!! error TS2322: Property 'done' is missing in type '{ value: string; }'. +!!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterator'. +!!! error TS2322: Types of property 'next' are incompatible. +!!! error TS2322: Type '() => { value: string; }' is not assignable to type '(value?: any) => IteratorResult'. +!!! error TS2322: Type '{ value: string; }' is not assignable to type 'IteratorResult'. +!!! error TS2322: Property 'done' is missing in type '{ value: string; }'. class StringIterator { next() { diff --git a/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt b/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt index baf2af9794b..bfcb8bc8a3b 100644 --- a/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt +++ b/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt @@ -5,15 +5,13 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(23,14): error TS2345: Argument of type 'Function' is not assignable to parameter of type '(x: string) => string'. Signature '(x: string): string' has no corresponding signature in 'Function' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(24,15): error TS2345: Argument of type '(x: string[]) => string[]' is not assignable to parameter of type '(x: string) => string'. - Signature '(x: string): string' has no corresponding signature in '(x: string[]) => string[]' - Types of parameters 'x' and 'x' are incompatible. - Type 'string[]' is not assignable to type 'string'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string[]' is not assignable to type 'string'. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(25,15): error TS2345: Argument of type 'typeof C' is not assignable to parameter of type '(x: string) => string'. Signature '(x: string): string' has no corresponding signature in 'typeof C' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(26,15): error TS2345: Argument of type 'new (x: string) => string' is not assignable to parameter of type '(x: string) => string'. Signature '(x: string): string' has no corresponding signature in 'new (x: string) => string' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(28,16): error TS2345: Argument of type '(x: U, y: V) => U' is not assignable to parameter of type '(x: string) => string'. - Signature '(x: string): string' has no corresponding signature in '(x: U, y: V) => U' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(29,16): error TS2345: Argument of type 'typeof C2' is not assignable to parameter of type '(x: string) => string'. Signature '(x: string): string' has no corresponding signature in 'typeof C2' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(30,16): error TS2345: Argument of type 'new (x: T) => T' is not assignable to parameter of type '(x: string) => string'. @@ -63,9 +61,8 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain var r2 = foo2((x: string[]) => x); ~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string[]) => string[]' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Signature '(x: string): string' has no corresponding signature in '(x: string[]) => string[]' -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string[]' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string[]' is not assignable to type 'string'. var r6 = foo2(C); ~ !!! error TS2345: Argument of type 'typeof C' is not assignable to parameter of type '(x: string) => string'. @@ -78,7 +75,6 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain var r11 = foo2((x: U, y: V) => x); ~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: U, y: V) => U' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Signature '(x: string): string' has no corresponding signature in '(x: U, y: V) => U' var r13 = foo2(C2); ~~ !!! error TS2345: Argument of type 'typeof C2' is not assignable to parameter of type '(x: string) => string'. diff --git a/tests/baselines/reference/functionExpressionContextualTyping2.errors.txt b/tests/baselines/reference/functionExpressionContextualTyping2.errors.txt index 6ac40bcf2d9..6a3a7998f09 100644 --- a/tests/baselines/reference/functionExpressionContextualTyping2.errors.txt +++ b/tests/baselines/reference/functionExpressionContextualTyping2.errors.txt @@ -1,7 +1,6 @@ tests/cases/conformance/expressions/contextualTyping/functionExpressionContextualTyping2.ts(11,1): error TS2322: Type '(foo: number, bar: string) => boolean' is not assignable to type '((n: number, s: string) => number) | ((n: number, s: string) => string)'. Type '(foo: number, bar: string) => boolean' is not assignable to type '(n: number, s: string) => string'. - Signature '(n: number, s: string): string' has no corresponding signature in '(foo: number, bar: string) => boolean' - Type 'boolean' is not assignable to type 'string'. + Type 'boolean' is not assignable to type 'string'. ==== tests/cases/conformance/expressions/contextualTyping/functionExpressionContextualTyping2.ts (1 errors) ==== @@ -19,5 +18,4 @@ tests/cases/conformance/expressions/contextualTyping/functionExpressionContextua ~~ !!! error TS2322: Type '(foo: number, bar: string) => boolean' is not assignable to type '((n: number, s: string) => number) | ((n: number, s: string) => string)'. !!! error TS2322: Type '(foo: number, bar: string) => boolean' is not assignable to type '(n: number, s: string) => string'. -!!! error TS2322: Signature '(n: number, s: string): string' has no corresponding signature in '(foo: number, bar: string) => boolean' -!!! error TS2322: Type 'boolean' is not assignable to type 'string'. \ No newline at end of file +!!! error TS2322: Type 'boolean' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/functionSignatureAssignmentCompat1.errors.txt b/tests/baselines/reference/functionSignatureAssignmentCompat1.errors.txt index 86f89e94b04..86c4728dda2 100644 --- a/tests/baselines/reference/functionSignatureAssignmentCompat1.errors.txt +++ b/tests/baselines/reference/functionSignatureAssignmentCompat1.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/functionSignatureAssignmentCompat1.ts(10,5): error TS2322: Type '(delimiter?: string) => ParserFunc' is not assignable to type 'ParserFunc'. - Signature '(eventEmitter: number, buffer: string): void' has no corresponding signature in '(delimiter?: string) => ParserFunc' - Types of parameters 'delimiter' and 'eventEmitter' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'delimiter' and 'eventEmitter' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/functionSignatureAssignmentCompat1.ts (1 errors) ==== @@ -17,7 +16,6 @@ tests/cases/compiler/functionSignatureAssignmentCompat1.ts(10,5): error TS2322: var d: ParserFunc = parsers.readline; // not ok ~ !!! error TS2322: Type '(delimiter?: string) => ParserFunc' is not assignable to type 'ParserFunc'. -!!! error TS2322: Signature '(eventEmitter: number, buffer: string): void' has no corresponding signature in '(delimiter?: string) => ParserFunc' -!!! error TS2322: Types of parameters 'delimiter' and 'eventEmitter' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'delimiter' and 'eventEmitter' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var e: ParserFunc = parsers.readline(); // ok \ No newline at end of file diff --git a/tests/baselines/reference/generatorTypeCheck25.errors.txt b/tests/baselines/reference/generatorTypeCheck25.errors.txt index 65aa94001b5..8d414c7c471 100644 --- a/tests/baselines/reference/generatorTypeCheck25.errors.txt +++ b/tests/baselines/reference/generatorTypeCheck25.errors.txt @@ -1,17 +1,14 @@ tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck25.ts(4,5): error TS2322: Type '() => IterableIterator' is not assignable to type '() => Iterable'. - Signature '(): Iterable' has no corresponding signature in '() => IterableIterator' - Type 'IterableIterator' is not assignable to type 'Iterable'. - Types of property '[Symbol.iterator]' are incompatible. - Type '() => IterableIterator' is not assignable to type '() => Iterator'. - Signature '(): Iterator' has no corresponding signature in '() => IterableIterator' - Type 'IterableIterator' is not assignable to type 'Iterator'. - Types of property 'next' are incompatible. - Type '(value?: any) => IteratorResult' is not assignable to type '(value?: any) => IteratorResult'. - Signature '(value?: any): IteratorResult' has no corresponding signature in '(value?: any) => IteratorResult' - Type 'IteratorResult' is not assignable to type 'IteratorResult'. - Type 'Bar | Baz' is not assignable to type 'Foo'. - Type 'Baz' is not assignable to type 'Foo'. - Property 'x' is missing in type 'Baz'. + Type 'IterableIterator' is not assignable to type 'Iterable'. + Types of property '[Symbol.iterator]' are incompatible. + Type '() => IterableIterator' is not assignable to type '() => Iterator'. + Type 'IterableIterator' is not assignable to type 'Iterator'. + Types of property 'next' are incompatible. + Type '(value?: any) => IteratorResult' is not assignable to type '(value?: any) => IteratorResult'. + Type 'IteratorResult' is not assignable to type 'IteratorResult'. + Type 'Bar | Baz' is not assignable to type 'Foo'. + Type 'Baz' is not assignable to type 'Foo'. + Property 'x' is missing in type 'Baz'. ==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck25.ts (1 errors) ==== @@ -21,19 +18,16 @@ tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck25.ts(4,5): error var g3: () => Iterable = function* () { ~~ !!! error TS2322: Type '() => IterableIterator' is not assignable to type '() => Iterable'. -!!! error TS2322: Signature '(): Iterable' has no corresponding signature in '() => IterableIterator' -!!! error TS2322: Type 'IterableIterator' is not assignable to type 'Iterable'. -!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. -!!! error TS2322: Type '() => IterableIterator' is not assignable to type '() => Iterator'. -!!! error TS2322: Signature '(): Iterator' has no corresponding signature in '() => IterableIterator' -!!! error TS2322: Type 'IterableIterator' is not assignable to type 'Iterator'. -!!! error TS2322: Types of property 'next' are incompatible. -!!! error TS2322: Type '(value?: any) => IteratorResult' is not assignable to type '(value?: any) => IteratorResult'. -!!! error TS2322: Signature '(value?: any): IteratorResult' has no corresponding signature in '(value?: any) => IteratorResult' -!!! error TS2322: Type 'IteratorResult' is not assignable to type 'IteratorResult'. -!!! error TS2322: Type 'Bar | Baz' is not assignable to type 'Foo'. -!!! error TS2322: Type 'Baz' is not assignable to type 'Foo'. -!!! error TS2322: Property 'x' is missing in type 'Baz'. +!!! error TS2322: Type 'IterableIterator' is not assignable to type 'Iterable'. +!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. +!!! error TS2322: Type '() => IterableIterator' is not assignable to type '() => Iterator'. +!!! error TS2322: Type 'IterableIterator' is not assignable to type 'Iterator'. +!!! error TS2322: Types of property 'next' are incompatible. +!!! error TS2322: Type '(value?: any) => IteratorResult' is not assignable to type '(value?: any) => IteratorResult'. +!!! error TS2322: Type 'IteratorResult' is not assignable to type 'IteratorResult'. +!!! error TS2322: Type 'Bar | Baz' is not assignable to type 'Foo'. +!!! error TS2322: Type 'Baz' is not assignable to type 'Foo'. +!!! error TS2322: Property 'x' is missing in type 'Baz'. yield; yield new Bar; yield new Baz; diff --git a/tests/baselines/reference/generatorTypeCheck8.errors.txt b/tests/baselines/reference/generatorTypeCheck8.errors.txt index abd1db46bd1..cedfecda60b 100644 --- a/tests/baselines/reference/generatorTypeCheck8.errors.txt +++ b/tests/baselines/reference/generatorTypeCheck8.errors.txt @@ -1,9 +1,8 @@ tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck8.ts(2,17): error TS2322: Type 'IterableIterator' is not assignable to type 'BadGenerator'. Types of property 'next' are incompatible. Type '(value?: any) => IteratorResult' is not assignable to type '(value?: any) => IteratorResult'. - Signature '(value?: any): IteratorResult' has no corresponding signature in '(value?: any) => IteratorResult' - Type 'IteratorResult' is not assignable to type 'IteratorResult'. - Type 'string' is not assignable to type 'number'. + Type 'IteratorResult' is not assignable to type 'IteratorResult'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck8.ts (1 errors) ==== @@ -13,6 +12,5 @@ tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck8.ts(2,17): error !!! error TS2322: Type 'IterableIterator' is not assignable to type 'BadGenerator'. !!! error TS2322: Types of property 'next' are incompatible. !!! error TS2322: Type '(value?: any) => IteratorResult' is not assignable to type '(value?: any) => IteratorResult'. -!!! error TS2322: Signature '(value?: any): IteratorResult' has no corresponding signature in '(value?: any) => IteratorResult' -!!! error TS2322: Type 'IteratorResult' is not assignable to type 'IteratorResult'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file +!!! error TS2322: Type 'IteratorResult' is not assignable to type 'IteratorResult'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.errors.txt b/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.errors.txt index 3b52ed1e597..f335319cafd 100644 --- a/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.errors.txt +++ b/tests/baselines/reference/genericAssignmentCompatWithInterfaces1.errors.txt @@ -3,9 +3,8 @@ tests/cases/compiler/genericAssignmentCompatWithInterfaces1.ts(12,5): error TS23 Type 'A' is not assignable to type 'Comparable'. Types of property 'compareTo' are incompatible. Type '(other: number) => number' is not assignable to type '(other: string) => number'. - Signature '(other: string): number' has no corresponding signature in '(other: number) => number' - Types of parameters 'other' and 'other' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'other' and 'other' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/genericAssignmentCompatWithInterfaces1.ts(13,5): error TS2322: Type '{ x: A; }' is not assignable to type 'I'. Types of property 'x' are incompatible. Type 'A' is not assignable to type 'Comparable'. @@ -36,9 +35,8 @@ tests/cases/compiler/genericAssignmentCompatWithInterfaces1.ts(17,5): error TS23 !!! error TS2322: Type 'A' is not assignable to type 'Comparable'. !!! error TS2322: Types of property 'compareTo' are incompatible. !!! error TS2322: Type '(other: number) => number' is not assignable to type '(other: string) => number'. -!!! error TS2322: Signature '(other: string): number' has no corresponding signature in '(other: number) => number' -!!! error TS2322: Types of parameters 'other' and 'other' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'other' and 'other' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. var a2: I = function (): { x: A } { ~~ !!! error TS2322: Type '{ x: A; }' is not assignable to type 'I'. diff --git a/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt b/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt index a6c6de7ffa7..428ebecf5b0 100644 --- a/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt +++ b/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.errors.txt @@ -1,19 +1,15 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(24,38): error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. - Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; }' - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'string'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(53,38): error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. - Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; }' - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'string'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(69,38): error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. - Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; }' - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'string'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(85,38): error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; (b: boolean): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. - Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; (b: boolean): Promise; }' - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'boolean'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'boolean'. ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts (4 errors) ==== @@ -43,9 +39,8 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverl var newPromise = numPromise.then(testFunction); ~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. -!!! error TS2345: Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; }' -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. } ////////////////////////////////////// @@ -77,9 +72,8 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverl var newPromise = numPromise.then(testFunction); ~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. -!!! error TS2345: Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; }' -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. } ////////////////////////////////////// @@ -98,9 +92,8 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverl var newPromise = numPromise.then(testFunction); ~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. -!!! error TS2345: Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; }' -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. } ////////////////////////////////////// @@ -119,8 +112,7 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverl var newPromise = numPromise.then(testFunction); ~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (n: number): Promise; (s: string): Promise; (b: boolean): Promise; }' is not assignable to parameter of type '(x: number) => Promise'. -!!! error TS2345: Signature '(x: number): Promise' has no corresponding signature in '{ (n: number): Promise; (s: string): Promise; (b: boolean): Promise; }' -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'boolean'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'boolean'. } \ No newline at end of file diff --git a/tests/baselines/reference/genericCallWithConstructorTypedArguments5.errors.txt b/tests/baselines/reference/genericCallWithConstructorTypedArguments5.errors.txt index 451a9e2900d..a014ef85b6c 100644 --- a/tests/baselines/reference/genericCallWithConstructorTypedArguments5.errors.txt +++ b/tests/baselines/reference/genericCallWithConstructorTypedArguments5.errors.txt @@ -1,11 +1,9 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstructorTypedArguments5.ts(11,14): error TS2345: Argument of type '{ cb: new (x: T, y: T) => string; }' is not assignable to parameter of type '{ cb: new (t: any) => string; }'. Types of property 'cb' are incompatible. Type 'new (x: T, y: T) => string' is not assignable to type 'new (t: any) => string'. - Signature 'new (t: any): string' has no corresponding signature in 'new (x: T, y: T) => string' tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstructorTypedArguments5.ts(13,14): error TS2345: Argument of type '{ cb: new (x: string, y: number) => string; }' is not assignable to parameter of type '{ cb: new (t: string) => string; }'. Types of property 'cb' are incompatible. Type 'new (x: string, y: number) => string' is not assignable to type 'new (t: string) => string'. - Signature 'new (t: string): string' has no corresponding signature in 'new (x: string, y: number) => string' ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstructorTypedArguments5.ts (2 errors) ==== @@ -24,14 +22,12 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithCon !!! error TS2345: Argument of type '{ cb: new (x: T, y: T) => string; }' is not assignable to parameter of type '{ cb: new (t: any) => string; }'. !!! error TS2345: Types of property 'cb' are incompatible. !!! error TS2345: Type 'new (x: T, y: T) => string' is not assignable to type 'new (t: any) => string'. -!!! error TS2345: Signature 'new (t: any): string' has no corresponding signature in 'new (x: T, y: T) => string' var arg3: { cb: new (x: string, y: number) => string }; var r3 = foo(arg3); // error ~~~~ !!! error TS2345: Argument of type '{ cb: new (x: string, y: number) => string; }' is not assignable to parameter of type '{ cb: new (t: string) => string; }'. !!! error TS2345: Types of property 'cb' are incompatible. !!! error TS2345: Type 'new (x: string, y: number) => string' is not assignable to type 'new (t: string) => string'. -!!! error TS2345: Signature 'new (t: string): string' has no corresponding signature in 'new (x: string, y: number) => string' function foo2(arg: { cb: new(t: T, t2: T) => U }) { return new arg.cb(null, null); diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments2.errors.txt b/tests/baselines/reference/genericCallWithGenericSignatureArguments2.errors.txt index 4677d24164d..c264058ad9f 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments2.errors.txt +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments2.errors.txt @@ -3,21 +3,18 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(15,21): error TS2345: Argument of type 'Date' is not assignable to parameter of type 'T'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(16,22): error TS2345: Argument of type 'number' is not assignable to parameter of type 'T'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(25,23): error TS2345: Argument of type '(a: T) => T' is not assignable to parameter of type '(x: Date) => Date'. - Signature '(x: Date): Date' has no corresponding signature in '(a: T) => T' - Types of parameters 'a' and 'x' are incompatible. - Type 'T' is not assignable to type 'Date'. - Type 'RegExp' is not assignable to type 'Date'. - Property 'toDateString' is missing in type 'RegExp'. + Types of parameters 'a' and 'x' are incompatible. + Type 'T' is not assignable to type 'Date'. + Type 'RegExp' is not assignable to type 'Date'. + Property 'toDateString' is missing in type 'RegExp'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(37,36): error TS2345: Argument of type '(x: E) => F' is not assignable to parameter of type '(x: E) => E'. - Signature '(x: E): E' has no corresponding signature in '(x: E) => F' - Type 'F' is not assignable to type 'E'. + Type 'F' is not assignable to type 'E'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(50,21): error TS2345: Argument of type 'Date' is not assignable to parameter of type 'T'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(51,22): error TS2345: Argument of type 'number' is not assignable to parameter of type 'T'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(60,23): error TS2345: Argument of type '(a: T) => T' is not assignable to parameter of type '(x: Date) => Date'. - Signature '(x: Date): Date' has no corresponding signature in '(a: T) => T' - Types of parameters 'a' and 'x' are incompatible. - Type 'T' is not assignable to type 'Date'. - Type 'RegExp' is not assignable to type 'Date'. + Types of parameters 'a' and 'x' are incompatible. + Type 'T' is not assignable to type 'Date'. + Type 'RegExp' is not assignable to type 'Date'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(67,51): error TS2304: Cannot find name 'U'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments2.ts(67,57): error TS2304: Cannot find name 'U'. @@ -57,11 +54,10 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen var r7 = foo2((a: T) => a, (b: T) => b); // error ~~~~~~~~~~~ !!! error TS2345: Argument of type '(a: T) => T' is not assignable to parameter of type '(x: Date) => Date'. -!!! error TS2345: Signature '(x: Date): Date' has no corresponding signature in '(a: T) => T' -!!! error TS2345: Types of parameters 'a' and 'x' are incompatible. -!!! error TS2345: Type 'T' is not assignable to type 'Date'. -!!! error TS2345: Type 'RegExp' is not assignable to type 'Date'. -!!! error TS2345: Property 'toDateString' is missing in type 'RegExp'. +!!! error TS2345: Types of parameters 'a' and 'x' are incompatible. +!!! error TS2345: Type 'T' is not assignable to type 'Date'. +!!! error TS2345: Type 'RegExp' is not assignable to type 'Date'. +!!! error TS2345: Property 'toDateString' is missing in type 'RegExp'. var r7b = foo2((a) => a, (b) => b); // valid, T is inferred to be Date } @@ -76,8 +72,7 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen var r7 = foo3(E.A, (x) => E.A, (x) => F.A); // error ~~~~~~~~~~ !!! error TS2345: Argument of type '(x: E) => F' is not assignable to parameter of type '(x: E) => E'. -!!! error TS2345: Signature '(x: E): E' has no corresponding signature in '(x: E) => F' -!!! error TS2345: Type 'F' is not assignable to type 'E'. +!!! error TS2345: Type 'F' is not assignable to type 'E'. } module TU { @@ -107,10 +102,9 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen var r7 = foo2((a: T) => a, (b: T) => b); ~~~~~~~~~~~ !!! error TS2345: Argument of type '(a: T) => T' is not assignable to parameter of type '(x: Date) => Date'. -!!! error TS2345: Signature '(x: Date): Date' has no corresponding signature in '(a: T) => T' -!!! error TS2345: Types of parameters 'a' and 'x' are incompatible. -!!! error TS2345: Type 'T' is not assignable to type 'Date'. -!!! error TS2345: Type 'RegExp' is not assignable to type 'Date'. +!!! error TS2345: Types of parameters 'a' and 'x' are incompatible. +!!! error TS2345: Type 'T' is not assignable to type 'Date'. +!!! error TS2345: Type 'RegExp' is not assignable to type 'Date'. var r7b = foo2((a) => a, (b) => b); } diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt b/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt index cfee8e336b3..52c5e03912e 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt @@ -1,7 +1,6 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments3.ts(32,11): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '(y: string) => string' is not a valid type argument because it is not a supertype of candidate '(a: string) => boolean'. - Signature '(y: string): string' has no corresponding signature in '(a: string) => boolean' - Type 'boolean' is not assignable to type 'string'. + Type 'boolean' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments3.ts(33,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '(n: Object) => number' is not a valid type argument because it is not a supertype of candidate 'number'. Signature '(n: Object): number' has no corresponding signature in 'Number' @@ -43,8 +42,7 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen ~~~~ !!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '(y: string) => string' is not a valid type argument because it is not a supertype of candidate '(a: string) => boolean'. -!!! error TS2453: Signature '(y: string): string' has no corresponding signature in '(a: string) => boolean' -!!! error TS2453: Type 'boolean' is not assignable to type 'string'. +!!! error TS2453: Type 'boolean' is not assignable to type 'string'. var r12 = foo2(x, (a1: (y: string) => boolean) => (n: Object) => 1, (a2: (z: string) => boolean) => 2); // error ~~~~ !!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. diff --git a/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.errors.txt b/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.errors.txt index 230311a6642..80bcf12494a 100644 --- a/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.errors.txt +++ b/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.errors.txt @@ -1,5 +1,4 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOverloadedConstructorTypedArguments2.ts(31,20): error TS2345: Argument of type 'new (x: T, y: T) => string' is not assignable to parameter of type '{ new (x: any): string; new (x: any, y?: any): string; }'. - Signature 'new (x: any): string' has no corresponding signature in 'new (x: T, y: T) => string' ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOverloadedConstructorTypedArguments2.ts (1 errors) ==== @@ -36,7 +35,6 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOve var r10 = foo6(b); // error ~ !!! error TS2345: Argument of type 'new (x: T, y: T) => string' is not assignable to parameter of type '{ new (x: any): string; new (x: any, y?: any): string; }'. -!!! error TS2345: Signature 'new (x: any): string' has no corresponding signature in 'new (x: T, y: T) => string' function foo7(x:T, cb: { new(x: T): string; new(x: T, y?: T): string }) { return cb; diff --git a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.errors.txt b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.errors.txt index 0e2481feee8..32fe6a09344 100644 --- a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.errors.txt +++ b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.errors.txt @@ -1,5 +1,4 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOverloadedFunctionTypedArguments2.ts(28,20): error TS2345: Argument of type '(x: T, y: T) => string' is not assignable to parameter of type '{ (x: any): string; (x: any, y?: any): string; }'. - Signature '(x: any): string' has no corresponding signature in '(x: T, y: T) => string' ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOverloadedFunctionTypedArguments2.ts (1 errors) ==== @@ -33,7 +32,6 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOve var r10 = foo6((x: T, y: T) => ''); // error ~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, y: T) => string' is not assignable to parameter of type '{ (x: any): string; (x: any, y?: any): string; }'. -!!! error TS2345: Signature '(x: any): string' has no corresponding signature in '(x: T, y: T) => string' function foo7(x:T, cb: { (x: T): string; (x: T, y?: T): string }) { return cb; diff --git a/tests/baselines/reference/genericCallWithTupleType.errors.txt b/tests/baselines/reference/genericCallWithTupleType.errors.txt index 518a4714247..d03f8d5e68a 100644 --- a/tests/baselines/reference/genericCallWithTupleType.errors.txt +++ b/tests/baselines/reference/genericCallWithTupleType.errors.txt @@ -1,10 +1,9 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithTupleType.ts(12,1): error TS2322: Type '[string, number, boolean, boolean]' is not assignable to type '[string, number]'. Types of property 'pop' are incompatible. Type '() => string | number | boolean' is not assignable to type '() => string | number'. - Signature '(): string | number' has no corresponding signature in '() => string | number | boolean' - Type 'string | number | boolean' is not assignable to type 'string | number'. - Type 'boolean' is not assignable to type 'string | number'. - Type 'boolean' is not assignable to type 'number'. + Type 'string | number | boolean' is not assignable to type 'string | number'. + Type 'boolean' is not assignable to type 'string | number'. + Type 'boolean' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithTupleType.ts(14,1): error TS2322: Type '{ a: string; }' is not assignable to type 'string | number'. Type '{ a: string; }' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithTupleType.ts(22,1): error TS2322: Type '[number, string]' is not assignable to type '[string, number]'. @@ -34,10 +33,9 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithTup !!! error TS2322: Type '[string, number, boolean, boolean]' is not assignable to type '[string, number]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => string | number | boolean' is not assignable to type '() => string | number'. -!!! error TS2322: Signature '(): string | number' has no corresponding signature in '() => string | number | boolean' -!!! error TS2322: Type 'string | number | boolean' is not assignable to type 'string | number'. -!!! error TS2322: Type 'boolean' is not assignable to type 'string | number'. -!!! error TS2322: Type 'boolean' is not assignable to type 'number'. +!!! error TS2322: Type 'string | number | boolean' is not assignable to type 'string | number'. +!!! error TS2322: Type 'boolean' is not assignable to type 'string | number'. +!!! error TS2322: Type 'boolean' is not assignable to type 'number'. var e3 = i1.tuple1[2]; // {} i1.tuple1[3] = { a: "string" }; ~~~~~~~~~~~~ diff --git a/tests/baselines/reference/genericCombinators2.errors.txt b/tests/baselines/reference/genericCombinators2.errors.txt index 3dcc1b3c873..d590f1030c3 100644 --- a/tests/baselines/reference/genericCombinators2.errors.txt +++ b/tests/baselines/reference/genericCombinators2.errors.txt @@ -1,10 +1,8 @@ tests/cases/compiler/genericCombinators2.ts(15,43): error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. - Signature '(x: number, y: string): Date' has no corresponding signature in '(x: number, y: string) => string' - Type 'string' is not assignable to type 'Date'. - Property 'toDateString' is missing in type 'String'. + Type 'string' is not assignable to type 'Date'. + Property 'toDateString' is missing in type 'String'. tests/cases/compiler/genericCombinators2.ts(16,43): error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. - Signature '(x: number, y: string): Date' has no corresponding signature in '(x: number, y: string) => string' - Type 'string' is not assignable to type 'Date'. + Type 'string' is not assignable to type 'Date'. ==== tests/cases/compiler/genericCombinators2.ts (2 errors) ==== @@ -25,11 +23,9 @@ tests/cases/compiler/genericCombinators2.ts(16,43): error TS2345: Argument of ty var r5a = _.map(c2, (x, y) => { return x.toFixed() }); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. -!!! error TS2345: Signature '(x: number, y: string): Date' has no corresponding signature in '(x: number, y: string) => string' -!!! error TS2345: Type 'string' is not assignable to type 'Date'. -!!! error TS2345: Property 'toDateString' is missing in type 'String'. +!!! error TS2345: Type 'string' is not assignable to type 'Date'. +!!! error TS2345: Property 'toDateString' is missing in type 'String'. var r5b = _.map(c2, rf1); ~~~ !!! error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'. -!!! error TS2345: Signature '(x: number, y: string): Date' has no corresponding signature in '(x: number, y: string) => string' -!!! error TS2345: Type 'string' is not assignable to type 'Date'. \ No newline at end of file +!!! error TS2345: Type 'string' is not assignable to type 'Date'. \ No newline at end of file diff --git a/tests/baselines/reference/genericSpecializations3.errors.txt b/tests/baselines/reference/genericSpecializations3.errors.txt index abfdf7a6640..ccaa839f9d0 100644 --- a/tests/baselines/reference/genericSpecializations3.errors.txt +++ b/tests/baselines/reference/genericSpecializations3.errors.txt @@ -1,21 +1,18 @@ tests/cases/compiler/genericSpecializations3.ts(8,7): error TS2420: Class 'IntFooBad' incorrectly implements interface 'IFoo'. Types of property 'foo' are incompatible. Type '(x: string) => string' is not assignable to type '(x: number) => number'. - Signature '(x: number): number' has no corresponding signature in '(x: string) => string' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/genericSpecializations3.ts(28,1): error TS2322: Type 'StringFoo2' is not assignable to type 'IntFoo'. Types of property 'foo' are incompatible. Type '(x: string) => string' is not assignable to type '(x: number) => number'. - Signature '(x: number): number' has no corresponding signature in '(x: string) => string' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/genericSpecializations3.ts(29,1): error TS2322: Type 'IntFoo' is not assignable to type 'StringFoo2'. Types of property 'foo' are incompatible. Type '(x: number) => number' is not assignable to type '(x: string) => string'. - Signature '(x: string): string' has no corresponding signature in '(x: number) => number' - Types of parameters 'x' and 'x' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'x' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/compiler/genericSpecializations3.ts (3 errors) ==== @@ -31,9 +28,8 @@ tests/cases/compiler/genericSpecializations3.ts(29,1): error TS2322: Type 'IntFo !!! error TS2420: Class 'IntFooBad' incorrectly implements interface 'IFoo'. !!! error TS2420: Types of property 'foo' are incompatible. !!! error TS2420: Type '(x: string) => string' is not assignable to type '(x: number) => number'. -!!! error TS2420: Signature '(x: number): number' has no corresponding signature in '(x: string) => string' -!!! error TS2420: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2420: Type 'string' is not assignable to type 'number'. +!!! error TS2420: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2420: Type 'string' is not assignable to type 'number'. foo(x: string): string { return null; } } @@ -58,17 +54,15 @@ tests/cases/compiler/genericSpecializations3.ts(29,1): error TS2322: Type 'IntFo !!! error TS2322: Type 'StringFoo2' is not assignable to type 'IntFoo'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x: string) => string' is not assignable to type '(x: number) => number'. -!!! error TS2322: Signature '(x: number): number' has no corresponding signature in '(x: string) => string' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. stringFoo2 = intFoo; // error ~~~~~~~~~~ !!! error TS2322: Type 'IntFoo' is not assignable to type 'StringFoo2'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x: number) => number' is not assignable to type '(x: string) => string'. -!!! error TS2322: Signature '(x: string): string' has no corresponding signature in '(x: number) => number' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. class StringFoo3 implements IFoo { // error diff --git a/tests/baselines/reference/genericTypeAssertions2.errors.txt b/tests/baselines/reference/genericTypeAssertions2.errors.txt index 72bdf8a23a6..eda4c83646c 100644 --- a/tests/baselines/reference/genericTypeAssertions2.errors.txt +++ b/tests/baselines/reference/genericTypeAssertions2.errors.txt @@ -1,9 +1,8 @@ tests/cases/compiler/genericTypeAssertions2.ts(10,5): error TS2322: Type 'B' is not assignable to type 'A'. Types of property 'foo' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => void' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/genericTypeAssertions2.ts(11,5): error TS2322: Type 'A' is not assignable to type 'B'. Property 'bar' is missing in type 'A'. tests/cases/compiler/genericTypeAssertions2.ts(13,21): error TS2352: Neither type 'undefined[]' nor type 'A' is assignable to the other. @@ -25,9 +24,8 @@ tests/cases/compiler/genericTypeAssertions2.ts(13,21): error TS2352: Neither typ !!! error TS2322: Type 'B' is not assignable to type 'A'. !!! error TS2322: Types of property 'foo' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type '(x: number) => void'. -!!! error TS2322: Signature '(x: number): void' has no corresponding signature in '(x: string) => void' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var r3: B = >new B(); // error ~~ !!! error TS2322: Type 'A' is not assignable to type 'B'. diff --git a/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt b/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt index d8bd78992a7..0fe15afcf33 100644 --- a/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt +++ b/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.errors.txt @@ -1,20 +1,18 @@ tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts(4,7): error TS2420: Class 'X' incorrectly implements interface 'I'. Types of property 'f' are incompatible. Type '(a: T) => void' is not assignable to type '(a: { a: number; }) => void'. - Signature '(a: { a: number; }): void' has no corresponding signature in '(a: T) => void' - Types of parameters 'a' and 'a' are incompatible. - Type 'T' is not assignable to type '{ a: number; }'. - Type '{ a: string; }' is not assignable to type '{ a: number; }'. - Types of property 'a' are incompatible. - Type 'string' is not assignable to type 'number'. -tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts(8,5): error TS2322: Type 'X<{ a: string; }>' is not assignable to type 'I'. - Types of property 'f' are incompatible. - Type '(a: { a: string; }) => void' is not assignable to type '(a: { a: number; }) => void'. - Signature '(a: { a: number; }): void' has no corresponding signature in '(a: { a: string; }) => void' - Types of parameters 'a' and 'a' are incompatible. + Types of parameters 'a' and 'a' are incompatible. + Type 'T' is not assignable to type '{ a: number; }'. Type '{ a: string; }' is not assignable to type '{ a: number; }'. Types of property 'a' are incompatible. Type 'string' is not assignable to type 'number'. +tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts(8,5): error TS2322: Type 'X<{ a: string; }>' is not assignable to type 'I'. + Types of property 'f' are incompatible. + Type '(a: { a: string; }) => void' is not assignable to type '(a: { a: number; }) => void'. + Types of parameters 'a' and 'a' are incompatible. + Type '{ a: string; }' is not assignable to type '{ a: number; }'. + Types of property 'a' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts (2 errors) ==== @@ -26,12 +24,11 @@ tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts(8,5): error TS2322 !!! error TS2420: Class 'X' incorrectly implements interface 'I'. !!! error TS2420: Types of property 'f' are incompatible. !!! error TS2420: Type '(a: T) => void' is not assignable to type '(a: { a: number; }) => void'. -!!! error TS2420: Signature '(a: { a: number; }): void' has no corresponding signature in '(a: T) => void' -!!! error TS2420: Types of parameters 'a' and 'a' are incompatible. -!!! error TS2420: Type 'T' is not assignable to type '{ a: number; }'. -!!! error TS2420: Type '{ a: string; }' is not assignable to type '{ a: number; }'. -!!! error TS2420: Types of property 'a' are incompatible. -!!! error TS2420: Type 'string' is not assignable to type 'number'. +!!! error TS2420: Types of parameters 'a' and 'a' are incompatible. +!!! error TS2420: Type 'T' is not assignable to type '{ a: number; }'. +!!! error TS2420: Type '{ a: string; }' is not assignable to type '{ a: number; }'. +!!! error TS2420: Types of property 'a' are incompatible. +!!! error TS2420: Type 'string' is not assignable to type 'number'. f(a: T): void { } } var x = new X<{ a: string }>(); @@ -40,9 +37,8 @@ tests/cases/compiler/genericTypeWithNonGenericBaseMisMatch.ts(8,5): error TS2322 !!! error TS2322: Type 'X<{ a: string; }>' is not assignable to type 'I'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(a: { a: string; }) => void' is not assignable to type '(a: { a: number; }) => void'. -!!! error TS2322: Signature '(a: { a: number; }): void' has no corresponding signature in '(a: { a: string; }) => void' -!!! error TS2322: Types of parameters 'a' and 'a' are incompatible. -!!! error TS2322: Type '{ a: string; }' is not assignable to type '{ a: number; }'. -!!! error TS2322: Types of property 'a' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'a' and 'a' are incompatible. +!!! error TS2322: Type '{ a: string; }' is not assignable to type '{ a: number; }'. +!!! error TS2322: Types of property 'a' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/generics4.errors.txt b/tests/baselines/reference/generics4.errors.txt index 93828628bd2..06bfa122901 100644 --- a/tests/baselines/reference/generics4.errors.txt +++ b/tests/baselines/reference/generics4.errors.txt @@ -2,8 +2,7 @@ tests/cases/compiler/generics4.ts(7,1): error TS2322: Type 'C' is not assigna Type 'Y' is not assignable to type 'X'. Types of property 'f' are incompatible. Type '() => boolean' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in '() => boolean' - Type 'boolean' is not assignable to type 'string'. + Type 'boolean' is not assignable to type 'string'. ==== tests/cases/compiler/generics4.ts (1 errors) ==== @@ -19,5 +18,4 @@ tests/cases/compiler/generics4.ts(7,1): error TS2322: Type 'C' is not assigna !!! error TS2322: Type 'Y' is not assignable to type 'X'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '() => boolean' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in '() => boolean' -!!! error TS2322: Type 'boolean' is not assignable to type 'string'. \ No newline at end of file +!!! error TS2322: Type 'boolean' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/implementGenericWithMismatchedTypes.errors.txt b/tests/baselines/reference/implementGenericWithMismatchedTypes.errors.txt index 9699ab80862..7a128b87764 100644 --- a/tests/baselines/reference/implementGenericWithMismatchedTypes.errors.txt +++ b/tests/baselines/reference/implementGenericWithMismatchedTypes.errors.txt @@ -1,14 +1,12 @@ tests/cases/compiler/implementGenericWithMismatchedTypes.ts(7,7): error TS2420: Class 'C' incorrectly implements interface 'IFoo'. Types of property 'foo' are incompatible. Type '(x: string) => number' is not assignable to type '(x: T) => T'. - Signature '(x: T): T' has no corresponding signature in '(x: string) => number' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'T'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'T'. tests/cases/compiler/implementGenericWithMismatchedTypes.ts(16,7): error TS2420: Class 'C2' incorrectly implements interface 'IFoo2'. Types of property 'foo' are incompatible. Type '(x: Tstring) => number' is not assignable to type '(x: T) => T'. - Signature '(x: T): T' has no corresponding signature in '(x: Tstring) => number' - Type 'number' is not assignable to type 'T'. + Type 'number' is not assignable to type 'T'. ==== tests/cases/compiler/implementGenericWithMismatchedTypes.ts (2 errors) ==== @@ -23,9 +21,8 @@ tests/cases/compiler/implementGenericWithMismatchedTypes.ts(16,7): error TS2420: !!! error TS2420: Class 'C' incorrectly implements interface 'IFoo'. !!! error TS2420: Types of property 'foo' are incompatible. !!! error TS2420: Type '(x: string) => number' is not assignable to type '(x: T) => T'. -!!! error TS2420: Signature '(x: T): T' has no corresponding signature in '(x: string) => number' -!!! error TS2420: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2420: Type 'string' is not assignable to type 'T'. +!!! error TS2420: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2420: Type 'string' is not assignable to type 'T'. foo(x: string): number { return null; } @@ -39,8 +36,7 @@ tests/cases/compiler/implementGenericWithMismatchedTypes.ts(16,7): error TS2420: !!! error TS2420: Class 'C2' incorrectly implements interface 'IFoo2'. !!! error TS2420: Types of property 'foo' are incompatible. !!! error TS2420: Type '(x: Tstring) => number' is not assignable to type '(x: T) => T'. -!!! error TS2420: Signature '(x: T): T' has no corresponding signature in '(x: Tstring) => number' -!!! error TS2420: Type 'number' is not assignable to type 'T'. +!!! error TS2420: Type 'number' is not assignable to type 'T'. foo(x: Tstring): number { return null; } diff --git a/tests/baselines/reference/incompatibleTypes.errors.txt b/tests/baselines/reference/incompatibleTypes.errors.txt index eddd01cc979..2d6af3a74e2 100644 --- a/tests/baselines/reference/incompatibleTypes.errors.txt +++ b/tests/baselines/reference/incompatibleTypes.errors.txt @@ -1,14 +1,12 @@ tests/cases/compiler/incompatibleTypes.ts(5,7): error TS2420: Class 'C1' incorrectly implements interface 'IFoo1'. Types of property 'p1' are incompatible. Type '() => string' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '() => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/incompatibleTypes.ts(15,7): error TS2420: Class 'C2' incorrectly implements interface 'IFoo2'. Types of property 'p1' are incompatible. Type '(n: number) => number' is not assignable to type '(s: string) => number'. - Signature '(s: string): number' has no corresponding signature in '(n: number) => number' - Types of parameters 'n' and 's' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'n' and 's' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/incompatibleTypes.ts(25,7): error TS2420: Class 'C3' incorrectly implements interface 'IFoo3'. Types of property 'p1' are incompatible. Type 'number' is not assignable to type 'string'. @@ -19,8 +17,7 @@ tests/cases/compiler/incompatibleTypes.ts(33,7): error TS2420: Class 'C4' incorr tests/cases/compiler/incompatibleTypes.ts(42,5): error TS2345: Argument of type 'C1' is not assignable to parameter of type 'IFoo2'. Types of property 'p1' are incompatible. Type '() => string' is not assignable to type '(s: string) => number'. - Signature '(s: string): number' has no corresponding signature in '() => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/incompatibleTypes.ts(49,7): error TS2345: Argument of type '{ e: number; f: number; }' is not assignable to parameter of type '{ c: { b: string; }; d: string; }'. Object literal may only specify known properties, and 'e' does not exist in type '{ c: { b: string; }; d: string; }'. tests/cases/compiler/incompatibleTypes.ts(66,47): error TS2322: Type '{ e: number; f: number; }' is not assignable to type '{ a: { a: string; }; b: string; }'. @@ -28,7 +25,6 @@ tests/cases/compiler/incompatibleTypes.ts(66,47): error TS2322: Type '{ e: numbe tests/cases/compiler/incompatibleTypes.ts(72,5): error TS2322: Type 'number' is not assignable to type '() => string'. Signature '(): string' has no corresponding signature in 'Number' tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => number' is not assignable to type '() => any'. - Signature '(): any' has no corresponding signature in '(a: any) => number' ==== tests/cases/compiler/incompatibleTypes.ts (9 errors) ==== @@ -41,8 +37,7 @@ tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => !!! error TS2420: Class 'C1' incorrectly implements interface 'IFoo1'. !!! error TS2420: Types of property 'p1' are incompatible. !!! error TS2420: Type '() => string' is not assignable to type '() => number'. -!!! error TS2420: Signature '(): number' has no corresponding signature in '() => string' -!!! error TS2420: Type 'string' is not assignable to type 'number'. +!!! error TS2420: Type 'string' is not assignable to type 'number'. public p1() { return "s"; } @@ -57,9 +52,8 @@ tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => !!! error TS2420: Class 'C2' incorrectly implements interface 'IFoo2'. !!! error TS2420: Types of property 'p1' are incompatible. !!! error TS2420: Type '(n: number) => number' is not assignable to type '(s: string) => number'. -!!! error TS2420: Signature '(s: string): number' has no corresponding signature in '(n: number) => number' -!!! error TS2420: Types of parameters 'n' and 's' are incompatible. -!!! error TS2420: Type 'number' is not assignable to type 'string'. +!!! error TS2420: Types of parameters 'n' and 's' are incompatible. +!!! error TS2420: Type 'number' is not assignable to type 'string'. public p1(n:number) { return 0; } @@ -100,8 +94,7 @@ tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => !!! error TS2345: Argument of type 'C1' is not assignable to parameter of type 'IFoo2'. !!! error TS2345: Types of property 'p1' are incompatible. !!! error TS2345: Type '() => string' is not assignable to type '(s: string) => number'. -!!! error TS2345: Signature '(s: string): number' has no corresponding signature in '() => string' -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Type 'string' is not assignable to type 'number'. function of1(n: { a: { a: string; }; b: string; }): number; @@ -145,5 +138,4 @@ tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => var fp1: () =>any = a => 0; ~~~ !!! error TS2322: Type '(a: any) => number' is not assignable to type '() => any'. -!!! error TS2322: Signature '(): any' has no corresponding signature in '(a: any) => number' \ No newline at end of file diff --git a/tests/baselines/reference/inheritance.errors.txt b/tests/baselines/reference/inheritance.errors.txt index eef06b4c961..c667e8b001e 100644 --- a/tests/baselines/reference/inheritance.errors.txt +++ b/tests/baselines/reference/inheritance.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/inheritance.ts(30,7): error TS2415: Class 'Baad' incorrectly extends base class 'Good'. Types of property 'g' are incompatible. Type '(n: number) => number' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '(n: number) => number' tests/cases/compiler/inheritance.ts(31,12): error TS2425: Class 'Good' defines instance member property 'f', but extended class 'Baad' defines it as instance member function. @@ -40,7 +39,6 @@ tests/cases/compiler/inheritance.ts(31,12): error TS2425: Class 'Good' defines i !!! error TS2415: Class 'Baad' incorrectly extends base class 'Good'. !!! error TS2415: Types of property 'g' are incompatible. !!! error TS2415: Type '(n: number) => number' is not assignable to type '() => number'. -!!! error TS2415: Signature '(): number' has no corresponding signature in '(n: number) => number' public f(): number { return 0; } ~ !!! error TS2425: Class 'Good' defines instance member property 'f', but extended class 'Baad' defines it as instance member function. diff --git a/tests/baselines/reference/inheritedModuleMembersForClodule.errors.txt b/tests/baselines/reference/inheritedModuleMembersForClodule.errors.txt index 6c67e28e2f9..0b7e00d95ce 100644 --- a/tests/baselines/reference/inheritedModuleMembersForClodule.errors.txt +++ b/tests/baselines/reference/inheritedModuleMembersForClodule.errors.txt @@ -1,8 +1,7 @@ tests/cases/compiler/inheritedModuleMembersForClodule.ts(7,7): error TS2417: Class static side 'typeof D' incorrectly extends base class static side 'typeof C'. Types of property 'foo' are incompatible. Type '() => number' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in '() => number' - Type 'number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. ==== tests/cases/compiler/inheritedModuleMembersForClodule.ts (1 errors) ==== @@ -17,8 +16,7 @@ tests/cases/compiler/inheritedModuleMembersForClodule.ts(7,7): error TS2417: Cla !!! error TS2417: Class static side 'typeof D' incorrectly extends base class static side 'typeof C'. !!! error TS2417: Types of property 'foo' are incompatible. !!! error TS2417: Type '() => number' is not assignable to type '() => string'. -!!! error TS2417: Signature '(): string' has no corresponding signature in '() => number' -!!! error TS2417: Type 'number' is not assignable to type 'string'. +!!! error TS2417: Type 'number' is not assignable to type 'string'. } module D { diff --git a/tests/baselines/reference/instanceMemberAssignsToClassPrototype.errors.txt b/tests/baselines/reference/instanceMemberAssignsToClassPrototype.errors.txt index cca68d4ef96..080316f8daf 100644 --- a/tests/baselines/reference/instanceMemberAssignsToClassPrototype.errors.txt +++ b/tests/baselines/reference/instanceMemberAssignsToClassPrototype.errors.txt @@ -1,6 +1,5 @@ tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/instanceMemberAssignsToClassPrototype.ts(7,9): error TS2322: Type '() => void' is not assignable to type '(x: number) => number'. - Signature '(x: number): number' has no corresponding signature in '() => void' - Type 'void' is not assignable to type 'number'. + Type 'void' is not assignable to type 'number'. ==== tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/instanceMemberAssignsToClassPrototype.ts (1 errors) ==== @@ -13,8 +12,7 @@ tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclara C.prototype.bar = () => { } // error ~~~~~~~~~~~~~~~ !!! error TS2322: Type '() => void' is not assignable to type '(x: number) => number'. -!!! error TS2322: Signature '(x: number): number' has no corresponding signature in '() => void' -!!! error TS2322: Type 'void' is not assignable to type 'number'. +!!! error TS2322: Type 'void' is not assignable to type 'number'. C.prototype.bar = (x) => x; // ok C.prototype.bar = (x: number) => 1; // ok return 1; diff --git a/tests/baselines/reference/intTypeCheck.errors.txt b/tests/baselines/reference/intTypeCheck.errors.txt index d9f3f021887..02592bedb69 100644 --- a/tests/baselines/reference/intTypeCheck.errors.txt +++ b/tests/baselines/reference/intTypeCheck.errors.txt @@ -66,8 +66,7 @@ tests/cases/compiler/intTypeCheck.ts(170,17): error TS2350: Only a void function tests/cases/compiler/intTypeCheck.ts(171,5): error TS2322: Type 'Base' is not assignable to type 'i6'. Signature '(): any' has no corresponding signature in 'Base' tests/cases/compiler/intTypeCheck.ts(173,5): error TS2322: Type '() => void' is not assignable to type 'i6'. - Signature '(): number' has no corresponding signature in '() => void' - Type 'void' is not assignable to type 'number'. + Type 'void' is not assignable to type 'number'. tests/cases/compiler/intTypeCheck.ts(176,5): error TS2322: Type 'boolean' is not assignable to type 'i6'. Signature '(): any' has no corresponding signature in 'Boolean' tests/cases/compiler/intTypeCheck.ts(176,21): error TS1109: Expression expected. @@ -382,8 +381,7 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj61: i6 = function () { }; ~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'i6'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '() => void' -!!! error TS2322: Type 'void' is not assignable to type 'number'. +!!! error TS2322: Type 'void' is not assignable to type 'number'. //var obj62: i6 = function foo() { }; var obj63: i6 = anyVar; var obj64: i6 = new anyVar; diff --git a/tests/baselines/reference/interfaceAssignmentCompat.errors.txt b/tests/baselines/reference/interfaceAssignmentCompat.errors.txt index a1198d9fd37..237358b42de 100644 --- a/tests/baselines/reference/interfaceAssignmentCompat.errors.txt +++ b/tests/baselines/reference/interfaceAssignmentCompat.errors.txt @@ -1,8 +1,7 @@ tests/cases/compiler/interfaceAssignmentCompat.ts(32,18): error TS2345: Argument of type '(a: IFrenchEye, b: IFrenchEye) => number' is not assignable to parameter of type '(a: IEye, b: IEye) => number'. - Signature '(a: IEye, b: IEye): number' has no corresponding signature in '(a: IFrenchEye, b: IFrenchEye) => number' - Types of parameters 'a' and 'a' are incompatible. - Type 'IFrenchEye' is not assignable to type 'IEye'. - Property 'color' is missing in type 'IFrenchEye'. + Types of parameters 'a' and 'a' are incompatible. + Type 'IFrenchEye' is not assignable to type 'IEye'. + Property 'color' is missing in type 'IFrenchEye'. tests/cases/compiler/interfaceAssignmentCompat.ts(37,29): error TS2339: Property '_map' does not exist on type 'typeof Color'. tests/cases/compiler/interfaceAssignmentCompat.ts(42,13): error TS2322: Type 'IEye' is not assignable to type 'IFrenchEye'. Property 'coleur' is missing in type 'IEye'. @@ -45,10 +44,9 @@ tests/cases/compiler/interfaceAssignmentCompat.ts(44,9): error TS2322: Type 'IEy x=x.sort(CompareYeux); // parameter mismatch ~~~~~~~~~~~ !!! error TS2345: Argument of type '(a: IFrenchEye, b: IFrenchEye) => number' is not assignable to parameter of type '(a: IEye, b: IEye) => number'. -!!! error TS2345: Signature '(a: IEye, b: IEye): number' has no corresponding signature in '(a: IFrenchEye, b: IFrenchEye) => number' -!!! error TS2345: Types of parameters 'a' and 'a' are incompatible. -!!! error TS2345: Type 'IFrenchEye' is not assignable to type 'IEye'. -!!! error TS2345: Property 'color' is missing in type 'IFrenchEye'. +!!! error TS2345: Types of parameters 'a' and 'a' are incompatible. +!!! error TS2345: Type 'IFrenchEye' is not assignable to type 'IEye'. +!!! error TS2345: Property 'color' is missing in type 'IFrenchEye'. // type of z inferred from specialized array type var z=x.sort(CompareEyes); // ok diff --git a/tests/baselines/reference/interfaceImplementation7.errors.txt b/tests/baselines/reference/interfaceImplementation7.errors.txt index 531398ba532..b297015dfbe 100644 --- a/tests/baselines/reference/interfaceImplementation7.errors.txt +++ b/tests/baselines/reference/interfaceImplementation7.errors.txt @@ -3,9 +3,8 @@ tests/cases/compiler/interfaceImplementation7.ts(4,11): error TS2320: Interface tests/cases/compiler/interfaceImplementation7.ts(7,7): error TS2420: Class 'C1' incorrectly implements interface 'i4'. Types of property 'name' are incompatible. Type '() => string' is not assignable to type '() => { s: string; n: number; }'. - Signature '(): { s: string; n: number; }' has no corresponding signature in '() => string' - Type 'string' is not assignable to type '{ s: string; n: number; }'. - Property 's' is missing in type 'String'. + Type 'string' is not assignable to type '{ s: string; n: number; }'. + Property 's' is missing in type 'String'. ==== tests/cases/compiler/interfaceImplementation7.ts (2 errors) ==== @@ -23,9 +22,8 @@ tests/cases/compiler/interfaceImplementation7.ts(7,7): error TS2420: Class 'C1' !!! error TS2420: Class 'C1' incorrectly implements interface 'i4'. !!! error TS2420: Types of property 'name' are incompatible. !!! error TS2420: Type '() => string' is not assignable to type '() => { s: string; n: number; }'. -!!! error TS2420: Signature '(): { s: string; n: number; }' has no corresponding signature in '() => string' -!!! error TS2420: Type 'string' is not assignable to type '{ s: string; n: number; }'. -!!! error TS2420: Property 's' is missing in type 'String'. +!!! error TS2420: Type 'string' is not assignable to type '{ s: string; n: number; }'. +!!! error TS2420: Property 's' is missing in type 'String'. public name(): string { return ""; } } \ No newline at end of file diff --git a/tests/baselines/reference/iteratorSpreadInArray9.errors.txt b/tests/baselines/reference/iteratorSpreadInArray9.errors.txt index cc32db8a373..90b8bdbeb46 100644 --- a/tests/baselines/reference/iteratorSpreadInArray9.errors.txt +++ b/tests/baselines/reference/iteratorSpreadInArray9.errors.txt @@ -1,13 +1,11 @@ tests/cases/conformance/es6/spread/iteratorSpreadInArray9.ts(1,17): error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterable'. Types of property '[Symbol.iterator]' are incompatible. Type '() => SymbolIterator' is not assignable to type '() => Iterator'. - Signature '(): Iterator' has no corresponding signature in '() => SymbolIterator' - Type 'SymbolIterator' is not assignable to type 'Iterator'. - Types of property 'next' are incompatible. - Type '() => { value: symbol; }' is not assignable to type '(value?: any) => IteratorResult'. - Signature '(value?: any): IteratorResult' has no corresponding signature in '() => { value: symbol; }' - Type '{ value: symbol; }' is not assignable to type 'IteratorResult'. - Property 'done' is missing in type '{ value: symbol; }'. + Type 'SymbolIterator' is not assignable to type 'Iterator'. + Types of property 'next' are incompatible. + Type '() => { value: symbol; }' is not assignable to type '(value?: any) => IteratorResult'. + Type '{ value: symbol; }' is not assignable to type 'IteratorResult'. + Property 'done' is missing in type '{ value: symbol; }'. ==== tests/cases/conformance/es6/spread/iteratorSpreadInArray9.ts (1 errors) ==== @@ -16,13 +14,11 @@ tests/cases/conformance/es6/spread/iteratorSpreadInArray9.ts(1,17): error TS2322 !!! error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterable'. !!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. !!! error TS2322: Type '() => SymbolIterator' is not assignable to type '() => Iterator'. -!!! error TS2322: Signature '(): Iterator' has no corresponding signature in '() => SymbolIterator' -!!! error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterator'. -!!! error TS2322: Types of property 'next' are incompatible. -!!! error TS2322: Type '() => { value: symbol; }' is not assignable to type '(value?: any) => IteratorResult'. -!!! error TS2322: Signature '(value?: any): IteratorResult' has no corresponding signature in '() => { value: symbol; }' -!!! error TS2322: Type '{ value: symbol; }' is not assignable to type 'IteratorResult'. -!!! error TS2322: Property 'done' is missing in type '{ value: symbol; }'. +!!! error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterator'. +!!! error TS2322: Types of property 'next' are incompatible. +!!! error TS2322: Type '() => { value: symbol; }' is not assignable to type '(value?: any) => IteratorResult'. +!!! error TS2322: Type '{ value: symbol; }' is not assignable to type 'IteratorResult'. +!!! error TS2322: Property 'done' is missing in type '{ value: symbol; }'. class SymbolIterator { next() { diff --git a/tests/baselines/reference/lambdaArgCrash.errors.txt b/tests/baselines/reference/lambdaArgCrash.errors.txt index 658534334f5..bf1c4dd01bd 100644 --- a/tests/baselines/reference/lambdaArgCrash.errors.txt +++ b/tests/baselines/reference/lambdaArgCrash.errors.txt @@ -1,6 +1,5 @@ tests/cases/compiler/lambdaArgCrash.ts(27,25): error TS2304: Cannot find name 'ItemSet'. tests/cases/compiler/lambdaArgCrash.ts(29,14): error TS2345: Argument of type '(items: any) => void' is not assignable to parameter of type '() => any'. - Signature '(): any' has no corresponding signature in '(items: any) => void' ==== tests/cases/compiler/lambdaArgCrash.ts (2 errors) ==== @@ -37,7 +36,6 @@ tests/cases/compiler/lambdaArgCrash.ts(29,14): error TS2345: Argument of type '( super.add(listener); ~~~~~~~~ !!! error TS2345: Argument of type '(items: any) => void' is not assignable to parameter of type '() => any'. -!!! error TS2345: Signature '(): any' has no corresponding signature in '(items: any) => void' } diff --git a/tests/baselines/reference/multipleInheritance.errors.txt b/tests/baselines/reference/multipleInheritance.errors.txt index def2fcbd813..19ef1e755e3 100644 --- a/tests/baselines/reference/multipleInheritance.errors.txt +++ b/tests/baselines/reference/multipleInheritance.errors.txt @@ -3,7 +3,6 @@ tests/cases/compiler/multipleInheritance.ts(18,21): error TS1174: Classes can on tests/cases/compiler/multipleInheritance.ts(34,7): error TS2415: Class 'Baad' incorrectly extends base class 'Good'. Types of property 'g' are incompatible. Type '(n: number) => number' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '(n: number) => number' tests/cases/compiler/multipleInheritance.ts(35,12): error TS2425: Class 'Good' defines instance member property 'f', but extended class 'Baad' defines it as instance member function. @@ -50,7 +49,6 @@ tests/cases/compiler/multipleInheritance.ts(35,12): error TS2425: Class 'Good' d !!! error TS2415: Class 'Baad' incorrectly extends base class 'Good'. !!! error TS2415: Types of property 'g' are incompatible. !!! error TS2415: Type '(n: number) => number' is not assignable to type '() => number'. -!!! error TS2415: Signature '(): number' has no corresponding signature in '(n: number) => number' public f(): number { return 0; } ~ !!! error TS2425: Class 'Good' defines instance member property 'f', but extended class 'Baad' defines it as instance member function. diff --git a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.errors.txt b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.errors.txt index 6bc3ec86f72..c4ee3ea17b2 100644 --- a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.errors.txt +++ b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.errors.txt @@ -1,18 +1,15 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat.ts(7,1): error TS2322: Type 'I' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type '() => void' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in '() => void' - Type 'void' is not assignable to type 'string'. + Type 'void' is not assignable to type 'string'. tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat.ts(14,1): error TS2322: Type 'C' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type '() => void' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in '() => void' - Type 'void' is not assignable to type 'string'. + Type 'void' is not assignable to type 'string'. tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat.ts(20,1): error TS2322: Type '{ toString: () => void; }' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type '() => void' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in '() => void' - Type 'void' is not assignable to type 'string'. + Type 'void' is not assignable to type 'string'. ==== tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat.ts (3 errors) ==== @@ -27,8 +24,7 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentC !!! error TS2322: Type 'I' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => void' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in '() => void' -!!! error TS2322: Type 'void' is not assignable to type 'string'. +!!! error TS2322: Type 'void' is not assignable to type 'string'. i = o; // ok class C { @@ -40,8 +36,7 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentC !!! error TS2322: Type 'C' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => void' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in '() => void' -!!! error TS2322: Type 'void' is not assignable to type 'string'. +!!! error TS2322: Type 'void' is not assignable to type 'string'. c = o; // ok var a = { @@ -52,6 +47,5 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentC !!! error TS2322: Type '{ toString: () => void; }' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => void' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in '() => void' -!!! error TS2322: Type 'void' is not assignable to type 'string'. +!!! error TS2322: Type 'void' is not assignable to type 'string'. a = o; // ok \ No newline at end of file diff --git a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.errors.txt b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.errors.txt index 174707a8d22..a88796b390e 100644 --- a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.errors.txt +++ b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.errors.txt @@ -1,28 +1,23 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts(7,1): error TS2322: Type 'I' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type '() => number' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in '() => number' - Type 'number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts(8,1): error TS2322: Type 'Object' is not assignable to type 'I'. Types of property 'toString' are incompatible. Type '() => string' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '() => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts(14,1): error TS2322: Type 'C' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type '() => number' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in '() => number' - Type 'number' is not assignable to type 'string'. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts(15,1): error TS2322: Type 'Object' is not assignable to type 'C'. Types of property 'toString' are incompatible. Type '() => string' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '() => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts(20,1): error TS2322: Type '{ toString: () => void; }' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type '() => void' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in '() => void' - Type 'void' is not assignable to type 'string'. + Type 'void' is not assignable to type 'string'. ==== tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentCompat2.ts (5 errors) ==== @@ -37,15 +32,13 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentC !!! error TS2322: Type 'I' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => number' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in '() => number' -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. i = o; // error ~ !!! error TS2322: Type 'Object' is not assignable to type 'I'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => string' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '() => string' -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. class C { toString(): number { return 1; } @@ -56,15 +49,13 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentC !!! error TS2322: Type 'C' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => number' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in '() => number' -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. c = o; // error ~ !!! error TS2322: Type 'Object' is not assignable to type 'C'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => string' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '() => string' -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. var a = { toString: () => { } @@ -74,6 +65,5 @@ tests/cases/conformance/types/members/objectTypeHidingMembersOfObjectAssignmentC !!! error TS2322: Type '{ toString: () => void; }' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type '() => void' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in '() => void' -!!! error TS2322: Type 'void' is not assignable to type 'string'. +!!! error TS2322: Type 'void' is not assignable to type 'string'. a = o; // ok \ No newline at end of file diff --git a/tests/baselines/reference/optionalFunctionArgAssignability.errors.txt b/tests/baselines/reference/optionalFunctionArgAssignability.errors.txt index 43d7b633052..52fb45e40d2 100644 --- a/tests/baselines/reference/optionalFunctionArgAssignability.errors.txt +++ b/tests/baselines/reference/optionalFunctionArgAssignability.errors.txt @@ -1,10 +1,8 @@ tests/cases/compiler/optionalFunctionArgAssignability.ts(7,1): error TS2322: Type '(onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise' is not assignable to type '(onFulfill?: (value: string) => U, onReject?: (reason: any) => U) => Promise'. - Signature '(onFulfill?: (value: string) => U, onReject?: (reason: any) => U): Promise' has no corresponding signature in '(onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise' - Types of parameters 'onFulFill' and 'onFulfill' are incompatible. - Type '(value: number) => any' is not assignable to type '(value: string) => any'. - Signature '(value: string): any' has no corresponding signature in '(value: number) => any' - Types of parameters 'value' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'onFulFill' and 'onFulfill' are incompatible. + Type '(value: number) => any' is not assignable to type '(value: string) => any'. + Types of parameters 'value' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/compiler/optionalFunctionArgAssignability.ts (1 errors) ==== @@ -17,10 +15,8 @@ tests/cases/compiler/optionalFunctionArgAssignability.ts(7,1): error TS2322: Typ a = b; // error because number is not assignable to string ~ !!! error TS2322: Type '(onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise' is not assignable to type '(onFulfill?: (value: string) => U, onReject?: (reason: any) => U) => Promise'. -!!! error TS2322: Signature '(onFulfill?: (value: string) => U, onReject?: (reason: any) => U): Promise' has no corresponding signature in '(onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise' -!!! error TS2322: Types of parameters 'onFulFill' and 'onFulfill' are incompatible. -!!! error TS2322: Type '(value: number) => any' is not assignable to type '(value: string) => any'. -!!! error TS2322: Signature '(value: string): any' has no corresponding signature in '(value: number) => any' -!!! error TS2322: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'string'. +!!! error TS2322: Types of parameters 'onFulFill' and 'onFulfill' are incompatible. +!!! error TS2322: Type '(value: number) => any' is not assignable to type '(value: string) => any'. +!!! error TS2322: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/optionalParamAssignmentCompat.errors.txt b/tests/baselines/reference/optionalParamAssignmentCompat.errors.txt index 4d8f23385fd..de02509d124 100644 --- a/tests/baselines/reference/optionalParamAssignmentCompat.errors.txt +++ b/tests/baselines/reference/optionalParamAssignmentCompat.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/optionalParamAssignmentCompat.ts(10,5): error TS2322: Type '(p1?: string) => I1' is not assignable to type 'I1'. - Signature '(p1: number, p2: string): void' has no corresponding signature in '(p1?: string) => I1' - Types of parameters 'p1' and 'p1' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'p1' and 'p1' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/optionalParamAssignmentCompat.ts (1 errors) ==== @@ -17,7 +16,6 @@ tests/cases/compiler/optionalParamAssignmentCompat.ts(10,5): error TS2322: Type var d: I1 = i2.m1; // should error ~ !!! error TS2322: Type '(p1?: string) => I1' is not assignable to type 'I1'. -!!! error TS2322: Signature '(p1: number, p2: string): void' has no corresponding signature in '(p1?: string) => I1' -!!! error TS2322: Types of parameters 'p1' and 'p1' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'p1' and 'p1' are incompatible. +!!! error TS2322: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/optionalParamTypeComparison.errors.txt b/tests/baselines/reference/optionalParamTypeComparison.errors.txt index 8e3237a80b1..98a07570c65 100644 --- a/tests/baselines/reference/optionalParamTypeComparison.errors.txt +++ b/tests/baselines/reference/optionalParamTypeComparison.errors.txt @@ -1,11 +1,9 @@ tests/cases/compiler/optionalParamTypeComparison.ts(4,1): error TS2322: Type '(s: string, b?: boolean) => void' is not assignable to type '(s: string, n?: number) => void'. - Signature '(s: string, n?: number): void' has no corresponding signature in '(s: string, b?: boolean) => void' - Types of parameters 'b' and 'n' are incompatible. - Type 'boolean' is not assignable to type 'number'. + Types of parameters 'b' and 'n' are incompatible. + Type 'boolean' is not assignable to type 'number'. tests/cases/compiler/optionalParamTypeComparison.ts(5,1): error TS2322: Type '(s: string, n?: number) => void' is not assignable to type '(s: string, b?: boolean) => void'. - Signature '(s: string, b?: boolean): void' has no corresponding signature in '(s: string, n?: number) => void' - Types of parameters 'n' and 'b' are incompatible. - Type 'number' is not assignable to type 'boolean'. + Types of parameters 'n' and 'b' are incompatible. + Type 'number' is not assignable to type 'boolean'. ==== tests/cases/compiler/optionalParamTypeComparison.ts (2 errors) ==== @@ -15,12 +13,10 @@ tests/cases/compiler/optionalParamTypeComparison.ts(5,1): error TS2322: Type '(s f = g; ~ !!! error TS2322: Type '(s: string, b?: boolean) => void' is not assignable to type '(s: string, n?: number) => void'. -!!! error TS2322: Signature '(s: string, n?: number): void' has no corresponding signature in '(s: string, b?: boolean) => void' -!!! error TS2322: Types of parameters 'b' and 'n' are incompatible. -!!! error TS2322: Type 'boolean' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'b' and 'n' are incompatible. +!!! error TS2322: Type 'boolean' is not assignable to type 'number'. g = f; ~ !!! error TS2322: Type '(s: string, n?: number) => void' is not assignable to type '(s: string, b?: boolean) => void'. -!!! error TS2322: Signature '(s: string, b?: boolean): void' has no corresponding signature in '(s: string, n?: number) => void' -!!! error TS2322: Types of parameters 'n' and 'b' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'boolean'. \ No newline at end of file +!!! error TS2322: Types of parameters 'n' and 'b' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/overloadResolutionOverCTLambda.errors.txt b/tests/baselines/reference/overloadResolutionOverCTLambda.errors.txt index 54e43e0b248..9fc11b681c7 100644 --- a/tests/baselines/reference/overloadResolutionOverCTLambda.errors.txt +++ b/tests/baselines/reference/overloadResolutionOverCTLambda.errors.txt @@ -1,6 +1,5 @@ tests/cases/compiler/overloadResolutionOverCTLambda.ts(2,5): error TS2345: Argument of type '(a: number) => number' is not assignable to parameter of type '(item: number) => boolean'. - Signature '(item: number): boolean' has no corresponding signature in '(a: number) => number' - Type 'number' is not assignable to type 'boolean'. + Type 'number' is not assignable to type 'boolean'. ==== tests/cases/compiler/overloadResolutionOverCTLambda.ts (1 errors) ==== @@ -8,5 +7,4 @@ tests/cases/compiler/overloadResolutionOverCTLambda.ts(2,5): error TS2345: Argum foo(a => a); // can not convert (number)=>bool to (number)=>number ~~~~~~ !!! error TS2345: Argument of type '(a: number) => number' is not assignable to parameter of type '(item: number) => boolean'. -!!! error TS2345: Signature '(item: number): boolean' has no corresponding signature in '(a: number) => number' -!!! error TS2345: Type 'number' is not assignable to type 'boolean'. \ No newline at end of file +!!! error TS2345: Type 'number' is not assignable to type 'boolean'. \ No newline at end of file diff --git a/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.errors.txt b/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.errors.txt index 9658555f35b..45c9f99b691 100644 --- a/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.errors.txt +++ b/tests/baselines/reference/overloadresolutionWithConstraintCheckingDeferred.errors.txt @@ -4,10 +4,9 @@ tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(14,37): tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(16,5): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(16,38): error TS2344: Type 'D' does not satisfy the constraint 'A'. tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(18,27): error TS2345: Argument of type '(x: D) => G' is not assignable to parameter of type '(x: B) => any'. - Signature '(x: B): any' has no corresponding signature in '(x: D) => G' - Types of parameters 'x' and 'x' are incompatible. - Type 'D' is not assignable to type 'B'. - Property 'x' is missing in type 'D'. + Types of parameters 'x' and 'x' are incompatible. + Type 'D' is not assignable to type 'B'. + Property 'x' is missing in type 'D'. tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(19,14): error TS2344: Type 'D' does not satisfy the constraint 'A'. @@ -49,8 +48,7 @@ tests/cases/compiler/overloadresolutionWithConstraintCheckingDeferred.ts(19,14): }); ~ !!! error TS2345: Argument of type '(x: D) => G' is not assignable to parameter of type '(x: B) => any'. -!!! error TS2345: Signature '(x: B): any' has no corresponding signature in '(x: D) => G' -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'D' is not assignable to type 'B'. -!!! error TS2345: Property 'x' is missing in type 'D'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'D' is not assignable to type 'B'. +!!! error TS2345: Property 'x' is missing in type 'D'. \ No newline at end of file diff --git a/tests/baselines/reference/overloadsWithProvisionalErrors.errors.txt b/tests/baselines/reference/overloadsWithProvisionalErrors.errors.txt index edc11299c9e..daf057c9ebd 100644 --- a/tests/baselines/reference/overloadsWithProvisionalErrors.errors.txt +++ b/tests/baselines/reference/overloadsWithProvisionalErrors.errors.txt @@ -1,12 +1,10 @@ tests/cases/compiler/overloadsWithProvisionalErrors.ts(6,6): error TS2345: Argument of type '(s: string) => {}' is not assignable to parameter of type '(s: string) => { a: number; b: number; }'. - Signature '(s: string): { a: number; b: number; }' has no corresponding signature in '(s: string) => {}' - Type '{}' is not assignable to type '{ a: number; b: number; }'. - Property 'a' is missing in type '{}'. + Type '{}' is not assignable to type '{ a: number; b: number; }'. + Property 'a' is missing in type '{}'. tests/cases/compiler/overloadsWithProvisionalErrors.ts(7,17): error TS2304: Cannot find name 'blah'. tests/cases/compiler/overloadsWithProvisionalErrors.ts(8,6): error TS2345: Argument of type '(s: string) => { a: any; }' is not assignable to parameter of type '(s: string) => { a: number; b: number; }'. - Signature '(s: string): { a: number; b: number; }' has no corresponding signature in '(s: string) => { a: any; }' - Type '{ a: any; }' is not assignable to type '{ a: number; b: number; }'. - Property 'b' is missing in type '{ a: any; }'. + Type '{ a: any; }' is not assignable to type '{ a: number; b: number; }'. + Property 'b' is missing in type '{ a: any; }'. tests/cases/compiler/overloadsWithProvisionalErrors.ts(8,17): error TS2304: Cannot find name 'blah'. @@ -19,17 +17,15 @@ tests/cases/compiler/overloadsWithProvisionalErrors.ts(8,17): error TS2304: Cann func(s => ({})); // Error for no applicable overload (object type is missing a and b) ~~~~~~~~~ !!! error TS2345: Argument of type '(s: string) => {}' is not assignable to parameter of type '(s: string) => { a: number; b: number; }'. -!!! error TS2345: Signature '(s: string): { a: number; b: number; }' has no corresponding signature in '(s: string) => {}' -!!! error TS2345: Type '{}' is not assignable to type '{ a: number; b: number; }'. -!!! error TS2345: Property 'a' is missing in type '{}'. +!!! error TS2345: Type '{}' is not assignable to type '{ a: number; b: number; }'. +!!! error TS2345: Property 'a' is missing in type '{}'. func(s => ({ a: blah, b: 3 })); // Only error inside the function, but not outside (since it would be applicable if not for the provisional error) ~~~~ !!! error TS2304: Cannot find name 'blah'. func(s => ({ a: blah })); // Two errors here, one for blah not being defined, and one for the overload since it would not be applicable anyway ~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(s: string) => { a: any; }' is not assignable to parameter of type '(s: string) => { a: number; b: number; }'. -!!! error TS2345: Signature '(s: string): { a: number; b: number; }' has no corresponding signature in '(s: string) => { a: any; }' -!!! error TS2345: Type '{ a: any; }' is not assignable to type '{ a: number; b: number; }'. -!!! error TS2345: Property 'b' is missing in type '{ a: any; }'. +!!! error TS2345: Type '{ a: any; }' is not assignable to type '{ a: number; b: number; }'. +!!! error TS2345: Property 'b' is missing in type '{ a: any; }'. ~~~~ !!! error TS2304: Cannot find name 'blah'. \ No newline at end of file diff --git a/tests/baselines/reference/parseTypes.errors.txt b/tests/baselines/reference/parseTypes.errors.txt index c141b59e993..bc628ac485b 100644 --- a/tests/baselines/reference/parseTypes.errors.txt +++ b/tests/baselines/reference/parseTypes.errors.txt @@ -1,7 +1,5 @@ tests/cases/compiler/parseTypes.ts(9,1): error TS2322: Type '(s: string) => void' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '(s: string) => void' tests/cases/compiler/parseTypes.ts(10,1): error TS2322: Type '(s: string) => void' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '(s: string) => void' tests/cases/compiler/parseTypes.ts(11,1): error TS2322: Type '(s: string) => void' is not assignable to type '{ [x: number]: number; }'. Index signature is missing in type '(s: string) => void'. tests/cases/compiler/parseTypes.ts(12,1): error TS2322: Type '(s: string) => void' is not assignable to type 'new () => number'. @@ -20,11 +18,9 @@ tests/cases/compiler/parseTypes.ts(12,1): error TS2322: Type '(s: string) => voi y=g; ~ !!! error TS2322: Type '(s: string) => void' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '(s: string) => void' x=g; ~ !!! error TS2322: Type '(s: string) => void' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '(s: string) => void' w=g; ~ !!! error TS2322: Type '(s: string) => void' is not assignable to type '{ [x: number]: number; }'. diff --git a/tests/baselines/reference/parser536727.errors.txt b/tests/baselines/reference/parser536727.errors.txt index 70841efd89f..4204e62c93b 100644 --- a/tests/baselines/reference/parser536727.errors.txt +++ b/tests/baselines/reference/parser536727.errors.txt @@ -1,9 +1,7 @@ tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts(7,5): error TS2345: Argument of type '() => (x: string) => string' is not assignable to parameter of type '(x: string) => string'. - Signature '(x: string): string' has no corresponding signature in '() => (x: string) => string' - Type '(x: string) => string' is not assignable to type 'string'. + Type '(x: string) => string' is not assignable to type 'string'. tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts(8,5): error TS2345: Argument of type '() => (x: string) => string' is not assignable to parameter of type '(x: string) => string'. - Signature '(x: string): string' has no corresponding signature in '() => (x: string) => string' - Type '(x: string) => string' is not assignable to type 'string'. + Type '(x: string) => string' is not assignable to type 'string'. ==== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts (2 errors) ==== @@ -16,11 +14,9 @@ tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts(8,5): foo(() => g); ~~~~~~~ !!! error TS2345: Argument of type '() => (x: string) => string' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Signature '(x: string): string' has no corresponding signature in '() => (x: string) => string' -!!! error TS2345: Type '(x: string) => string' is not assignable to type 'string'. +!!! error TS2345: Type '(x: string) => string' is not assignable to type 'string'. foo(x); ~ !!! error TS2345: Argument of type '() => (x: string) => string' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Signature '(x: string): string' has no corresponding signature in '() => (x: string) => string' -!!! error TS2345: Type '(x: string) => string' is not assignable to type 'string'. +!!! error TS2345: Type '(x: string) => string' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/promiseChaining1.errors.txt b/tests/baselines/reference/promiseChaining1.errors.txt index da593b4086c..bd3e52fcc1c 100644 --- a/tests/baselines/reference/promiseChaining1.errors.txt +++ b/tests/baselines/reference/promiseChaining1.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/promiseChaining1.ts(7,50): error TS2345: Argument of type '(x: S) => string' is not assignable to parameter of type '(x: S) => Function'. - Signature '(x: S): Function' has no corresponding signature in '(x: S) => string' - Type 'string' is not assignable to type 'Function'. - Property 'apply' is missing in type 'String'. + Type 'string' is not assignable to type 'Function'. + Property 'apply' is missing in type 'String'. ==== tests/cases/compiler/promiseChaining1.ts (1 errors) ==== @@ -14,9 +13,8 @@ tests/cases/compiler/promiseChaining1.ts(7,50): error TS2345: Argument of type ' var z = this.then(x => result)/*S*/.then(x => "abc")/*Function*/.then(x => x.length)/*number*/; // Should error on "abc" because it is not a Function ~~~~~~~~~~ !!! error TS2345: Argument of type '(x: S) => string' is not assignable to parameter of type '(x: S) => Function'. -!!! error TS2345: Signature '(x: S): Function' has no corresponding signature in '(x: S) => string' -!!! error TS2345: Type 'string' is not assignable to type 'Function'. -!!! error TS2345: Property 'apply' is missing in type 'String'. +!!! error TS2345: Type 'string' is not assignable to type 'Function'. +!!! error TS2345: Property 'apply' is missing in type 'String'. return new Chain2(result); } } \ No newline at end of file diff --git a/tests/baselines/reference/promiseChaining2.errors.txt b/tests/baselines/reference/promiseChaining2.errors.txt index acdaad94bef..f12baebd4dc 100644 --- a/tests/baselines/reference/promiseChaining2.errors.txt +++ b/tests/baselines/reference/promiseChaining2.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/promiseChaining2.ts(7,45): error TS2345: Argument of type '(x: S) => string' is not assignable to parameter of type '(x: S) => Function'. - Signature '(x: S): Function' has no corresponding signature in '(x: S) => string' - Type 'string' is not assignable to type 'Function'. - Property 'apply' is missing in type 'String'. + Type 'string' is not assignable to type 'Function'. + Property 'apply' is missing in type 'String'. ==== tests/cases/compiler/promiseChaining2.ts (1 errors) ==== @@ -14,9 +13,8 @@ tests/cases/compiler/promiseChaining2.ts(7,45): error TS2345: Argument of type ' var z = this.then(x => result).then(x => "abc").then(x => x.length); ~~~~~~~~~~ !!! error TS2345: Argument of type '(x: S) => string' is not assignable to parameter of type '(x: S) => Function'. -!!! error TS2345: Signature '(x: S): Function' has no corresponding signature in '(x: S) => string' -!!! error TS2345: Type 'string' is not assignable to type 'Function'. -!!! error TS2345: Property 'apply' is missing in type 'String'. +!!! error TS2345: Type 'string' is not assignable to type 'Function'. +!!! error TS2345: Property 'apply' is missing in type 'String'. return new Chain2(result); } } \ No newline at end of file diff --git a/tests/baselines/reference/promisePermutations.errors.txt b/tests/baselines/reference/promisePermutations.errors.txt index 0787189e2e0..a74938f5dd9 100644 --- a/tests/baselines/reference/promisePermutations.errors.txt +++ b/tests/baselines/reference/promisePermutations.errors.txt @@ -1,75 +1,50 @@ tests/cases/compiler/promisePermutations.ts(74,70): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. - Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'IPromise'. - Property 'then' is missing in type 'Number'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'IPromise'. + Property 'then' is missing in type 'Number'. tests/cases/compiler/promisePermutations.ts(79,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(82,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(83,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Signature '(value: string): Promise' has no corresponding signature in '(x: number, y?: string) => Promise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(84,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => Promise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(88,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' tests/cases/compiler/promisePermutations.ts(91,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' tests/cases/compiler/promisePermutations.ts(92,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' tests/cases/compiler/promisePermutations.ts(93,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' tests/cases/compiler/promisePermutations.ts(97,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations.ts(100,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations.ts(101,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations.ts(102,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations.ts(106,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(109,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(110,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Signature '(value: string): Promise' has no corresponding signature in '(cb: (a: T) => T) => Promise' - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(111,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => Promise' - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(117,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations.ts(120,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations.ts(121,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. - Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations.ts(122,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations.ts(126,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' tests/cases/compiler/promisePermutations.ts(129,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations.ts(132,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' tests/cases/compiler/promisePermutations.ts(133,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. - Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' tests/cases/compiler/promisePermutations.ts(134,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' tests/cases/compiler/promisePermutations.ts(137,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. @@ -80,35 +55,27 @@ tests/cases/compiler/promisePermutations.ts(152,12): error TS2453: The type argu Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Types of property 'then' are incompatible. Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. - Signature '(success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise' has no corresponding signature in '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' - Types of parameters 'success' and 'success' are incompatible. - Type '(value: string) => IPromise' is not assignable to type '(value: number) => Promise'. - Signature '(value: number): Promise' has no corresponding signature in '(value: string) => IPromise' - Types of parameters 'value' and 'value' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'success' and 'success' are incompatible. + Type '(value: string) => IPromise' is not assignable to type '(value: number) => Promise'. + Types of parameters 'value' and 'value' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations.ts(156,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' - Type 'IPromise' is not assignable to type 'IPromise'. - Type 'number' is not assignable to type 'string'. + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(158,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' - Type 'IPromise' is not assignable to type 'IPromise'. - Type 'number' is not assignable to type 'string'. + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(159,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. - Signature '(value: number): Promise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'string'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' - Type 'Promise' is not assignable to type 'IPromise'. - Types of property 'then' are incompatible. - Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. - Signature '(success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise' has no corresponding signature in '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' - Types of parameters 'success' and 'success' are incompatible. - Type '(value: number) => Promise' is not assignable to type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(value: number) => Promise' - Types of parameters 'value' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Type 'Promise' is not assignable to type 'IPromise'. + Types of property 'then' are incompatible. + Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. + Types of parameters 'success' and 'success' are incompatible. + Type '(value: number) => Promise' is not assignable to type '(value: string) => IPromise'. + Types of parameters 'value' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/compiler/promisePermutations.ts (33 errors) ==== @@ -188,10 +155,9 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var s3d = s3.then(testFunction3P, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. -!!! error TS2345: Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. -!!! error TS2345: Property 'then' is missing in type 'Number'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. +!!! error TS2345: Property 'then' is missing in type 'Number'. var r4: IPromise; var sIPromise: (x: any) => IPromise; @@ -199,100 +165,84 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var r4a = r4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r4b = r4.then(sIPromise, testFunction4, testFunction4).then(sIPromise, testFunction4, testFunction4); // ok var s4: Promise; var s4a = s4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4b = s4.then(testFunction4P, testFunction4P, testFunction4P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, y?: string) => Promise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4c = s4.then(testFunction4P, testFunction4, testFunction4); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => Promise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4d = s4.then(sIPromise, testFunction4P, testFunction4).then(sIPromise, testFunction4P, testFunction4); var r5: IPromise; var r5a = r5.then(testFunction5, testFunction5, testFunction5); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' var r5b = r5.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s5: Promise; var s5a = s5.then(testFunction5, testFunction5, testFunction5); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' var s5b = s5.then(testFunction5P, testFunction5P, testFunction5P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' var s5c = s5.then(testFunction5P, testFunction5, testFunction5); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' var s5d = s5.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r6: IPromise; var r6a = r6.then(testFunction6, testFunction6, testFunction6); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' var r6b = r6.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s6: Promise; var s6a = s6.then(testFunction6, testFunction6, testFunction6); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' var s6b = s6.then(testFunction6P, testFunction6P, testFunction6P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' var s6c = s6.then(testFunction6P, testFunction6, testFunction6); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' var s6d = s6.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r7: IPromise; var r7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var r7b = r7.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s7: Promise; var s7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7b = r7.then(testFunction7P, testFunction7P, testFunction7P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(cb: (a: T) => T) => Promise' -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7c = r7.then(testFunction7P, testFunction7, testFunction7); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => Promise' -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7d = r7.then(sPromise, sPromise, sPromise).then(sPromise, sPromise, sPromise); // ok? var r8: IPromise; @@ -301,28 +251,23 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var r8a = r8.then(testFunction8, testFunction8, testFunction8); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' var r8b = r8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var s8: Promise; var s8a = s8.then(testFunction8, testFunction8, testFunction8); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' var s8b = s8.then(testFunction8P, testFunction8P, testFunction8P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. -!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' var s8d = s8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var r9: IPromise; var r9a = r9.then(testFunction9, testFunction9, testFunction9); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' var r9b = r9.then(sIPromise, sIPromise, sIPromise); // ok var r9c = r9.then(nIPromise, nIPromise, nIPromise); // ok var r9d = r9.then(testFunction, sIPromise, nIPromise); // ok @@ -335,15 +280,12 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t var s9a = s9.then(testFunction9, testFunction9, testFunction9); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' var s9b = s9.then(testFunction9P, testFunction9P, testFunction9P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. -!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' var s9d = s9.then(sPromise, sPromise, sPromise); // ok var s9e = s9.then(nPromise, nPromise, nPromise); // ok var s9f = s9.then(testFunction, sIPromise, nIPromise); // error @@ -375,47 +317,39 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2345: Argument of t !!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. !!! error TS2453: Types of property 'then' are incompatible. !!! error TS2453: Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. -!!! error TS2453: Signature '(success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise' has no corresponding signature in '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' -!!! error TS2453: Types of parameters 'success' and 'success' are incompatible. -!!! error TS2453: Type '(value: string) => IPromise' is not assignable to type '(value: number) => Promise'. -!!! error TS2453: Signature '(value: number): Promise' has no corresponding signature in '(value: string) => IPromise' -!!! error TS2453: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2453: Type 'string' is not assignable to type 'number'. +!!! error TS2453: Types of parameters 'success' and 'success' are incompatible. +!!! error TS2453: Type '(value: string) => IPromise' is not assignable to type '(value: number) => Promise'. +!!! error TS2453: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2453: Type 'string' is not assignable to type 'number'. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok var r11: IPromise; var r11a = r11.then(testFunction11, testFunction11, testFunction11); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' -!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11: Promise; var s11a = s11.then(testFunction11, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' -!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11b = s11.then(testFunction11P, testFunction11P, testFunction11P); // error ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. -!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11c = s11.then(testFunction11P, testFunction11, testFunction11); // error ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' -!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. -!!! error TS2345: Types of property 'then' are incompatible. -!!! error TS2345: Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. -!!! error TS2345: Signature '(success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise' has no corresponding signature in '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' -!!! error TS2345: Types of parameters 'success' and 'success' are incompatible. -!!! error TS2345: Type '(value: number) => Promise' is not assignable to type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(value: number) => Promise' -!!! error TS2345: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. +!!! error TS2345: Types of property 'then' are incompatible. +!!! error TS2345: Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. +!!! error TS2345: Types of parameters 'success' and 'success' are incompatible. +!!! error TS2345: Type '(value: number) => Promise' is not assignable to type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r12 = testFunction12(x => x); var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok diff --git a/tests/baselines/reference/promisePermutations2.errors.txt b/tests/baselines/reference/promisePermutations2.errors.txt index 054cdec66c9..8afceeae0fd 100644 --- a/tests/baselines/reference/promisePermutations2.errors.txt +++ b/tests/baselines/reference/promisePermutations2.errors.txt @@ -1,75 +1,50 @@ tests/cases/compiler/promisePermutations2.ts(73,70): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. - Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'IPromise'. - Property 'then' is missing in type 'Number'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'IPromise'. + Property 'then' is missing in type 'Number'. tests/cases/compiler/promisePermutations2.ts(78,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(81,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(82,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Signature '(value: string): Promise' has no corresponding signature in '(x: number, y?: string) => Promise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(83,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => Promise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(87,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' tests/cases/compiler/promisePermutations2.ts(90,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' tests/cases/compiler/promisePermutations2.ts(91,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' tests/cases/compiler/promisePermutations2.ts(92,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' tests/cases/compiler/promisePermutations2.ts(96,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations2.ts(99,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations2.ts(100,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations2.ts(101,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations2.ts(105,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(108,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(109,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Signature '(value: string): Promise' has no corresponding signature in '(cb: (a: T) => T) => Promise' - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(110,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => Promise' - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(116,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations2.ts(119,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations2.ts(120,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. - Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations2.ts(121,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations2.ts(125,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' tests/cases/compiler/promisePermutations2.ts(128,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations2.ts(131,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' tests/cases/compiler/promisePermutations2.ts(132,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. - Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' tests/cases/compiler/promisePermutations2.ts(133,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' tests/cases/compiler/promisePermutations2.ts(136,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. @@ -80,35 +55,27 @@ tests/cases/compiler/promisePermutations2.ts(151,12): error TS2453: The type arg Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Types of property 'then' are incompatible. Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. - Signature '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise' has no corresponding signature in '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' - Types of parameters 'success' and 'success' are incompatible. - Type '(value: string) => IPromise' is not assignable to type '(value: number) => any'. - Signature '(value: number): any' has no corresponding signature in '(value: string) => IPromise' - Types of parameters 'value' and 'value' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'success' and 'success' are incompatible. + Type '(value: string) => IPromise' is not assignable to type '(value: number) => any'. + Types of parameters 'value' and 'value' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations2.ts(155,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' - Type 'IPromise' is not assignable to type 'IPromise'. - Type 'number' is not assignable to type 'string'. + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(157,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' - Type 'IPromise' is not assignable to type 'IPromise'. - Type 'number' is not assignable to type 'string'. + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(158,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. - Signature '(value: number): Promise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'string'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' - Type 'Promise' is not assignable to type 'IPromise'. - Types of property 'then' are incompatible. - Type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. - Signature '(success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise' has no corresponding signature in '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' - Types of parameters 'success' and 'success' are incompatible. - Type '(value: number) => any' is not assignable to type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(value: number) => any' - Types of parameters 'value' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Type 'Promise' is not assignable to type 'IPromise'. + Types of property 'then' are incompatible. + Type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. + Types of parameters 'success' and 'success' are incompatible. + Type '(value: number) => any' is not assignable to type '(value: string) => IPromise'. + Types of parameters 'value' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/compiler/promisePermutations2.ts (33 errors) ==== @@ -187,10 +154,9 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var s3d = s3.then(testFunction3P, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); // Should error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. -!!! error TS2345: Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. -!!! error TS2345: Property 'then' is missing in type 'Number'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. +!!! error TS2345: Property 'then' is missing in type 'Number'. var r4: IPromise; var sIPromise: (x: any) => IPromise; @@ -198,100 +164,84 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var r4a = r4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r4b = r4.then(sIPromise, testFunction4, testFunction4).then(sIPromise, testFunction4, testFunction4); // ok var s4: Promise; var s4a = s4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4b = s4.then(testFunction4P, testFunction4P, testFunction4P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, y?: string) => Promise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4c = s4.then(testFunction4P, testFunction4, testFunction4); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => Promise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4d = s4.then(sIPromise, testFunction4P, testFunction4).then(sIPromise, testFunction4P, testFunction4); var r5: IPromise; var r5a = r5.then(testFunction5, testFunction5, testFunction5); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' var r5b = r5.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s5: Promise; var s5a = s5.then(testFunction5, testFunction5, testFunction5); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' var s5b = s5.then(testFunction5P, testFunction5P, testFunction5P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' var s5c = s5.then(testFunction5P, testFunction5, testFunction5); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' var s5d = s5.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r6: IPromise; var r6a = r6.then(testFunction6, testFunction6, testFunction6); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' var r6b = r6.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s6: Promise; var s6a = s6.then(testFunction6, testFunction6, testFunction6); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' var s6b = s6.then(testFunction6P, testFunction6P, testFunction6P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' var s6c = s6.then(testFunction6P, testFunction6, testFunction6); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' var s6d = s6.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r7: IPromise; var r7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var r7b = r7.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s7: Promise; var s7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7b = r7.then(testFunction7P, testFunction7P, testFunction7P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(cb: (a: T) => T) => Promise' -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7c = r7.then(testFunction7P, testFunction7, testFunction7); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => Promise' -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7d = r7.then(sPromise, sPromise, sPromise).then(sPromise, sPromise, sPromise); // ok? var r8: IPromise; @@ -300,28 +250,23 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var r8a = r8.then(testFunction8, testFunction8, testFunction8); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' var r8b = r8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var s8: Promise; var s8a = s8.then(testFunction8, testFunction8, testFunction8); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' var s8b = s8.then(testFunction8P, testFunction8P, testFunction8P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. -!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' var s8d = s8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var r9: IPromise; var r9a = r9.then(testFunction9, testFunction9, testFunction9); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' var r9b = r9.then(sIPromise, sIPromise, sIPromise); // ok var r9c = r9.then(nIPromise, nIPromise, nIPromise); // ok var r9d = r9.then(testFunction, sIPromise, nIPromise); // error @@ -334,15 +279,12 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of var s9a = s9.then(testFunction9, testFunction9, testFunction9); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' var s9b = s9.then(testFunction9P, testFunction9P, testFunction9P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. -!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' var s9d = s9.then(sPromise, sPromise, sPromise); // ok var s9e = s9.then(nPromise, nPromise, nPromise); // ok var s9f = s9.then(testFunction, sIPromise, nIPromise); // error @@ -374,47 +316,39 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of !!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. !!! error TS2453: Types of property 'then' are incompatible. !!! error TS2453: Type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' is not assignable to type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise'. -!!! error TS2453: Signature '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise' has no corresponding signature in '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }' -!!! error TS2453: Types of parameters 'success' and 'success' are incompatible. -!!! error TS2453: Type '(value: string) => IPromise' is not assignable to type '(value: number) => any'. -!!! error TS2453: Signature '(value: number): any' has no corresponding signature in '(value: string) => IPromise' -!!! error TS2453: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2453: Type 'string' is not assignable to type 'number'. +!!! error TS2453: Types of parameters 'success' and 'success' are incompatible. +!!! error TS2453: Type '(value: string) => IPromise' is not assignable to type '(value: number) => any'. +!!! error TS2453: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2453: Type 'string' is not assignable to type 'number'. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok var r11: IPromise; var r11a = r11.then(testFunction11, testFunction11, testFunction11); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' -!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11: Promise; var s11a = s11.then(testFunction11, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' -!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11b = s11.then(testFunction11P, testFunction11P, testFunction11P); // ok ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. -!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11c = s11.then(testFunction11P, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' -!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. -!!! error TS2345: Types of property 'then' are incompatible. -!!! error TS2345: Type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. -!!! error TS2345: Signature '(success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise' has no corresponding signature in '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' -!!! error TS2345: Types of parameters 'success' and 'success' are incompatible. -!!! error TS2345: Type '(value: number) => any' is not assignable to type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(value: number) => any' -!!! error TS2345: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. +!!! error TS2345: Types of property 'then' are incompatible. +!!! error TS2345: Type '(success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => Promise' is not assignable to type '{ (success?: (value: string) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }'. +!!! error TS2345: Types of parameters 'success' and 'success' are incompatible. +!!! error TS2345: Type '(value: number) => any' is not assignable to type '(value: string) => IPromise'. +!!! error TS2345: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r12 = testFunction12(x => x); var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok diff --git a/tests/baselines/reference/promisePermutations3.errors.txt b/tests/baselines/reference/promisePermutations3.errors.txt index 5d414cf4176..b17021a02b9 100644 --- a/tests/baselines/reference/promisePermutations3.errors.txt +++ b/tests/baselines/reference/promisePermutations3.errors.txt @@ -1,79 +1,53 @@ tests/cases/compiler/promisePermutations3.ts(68,69): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. - Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'IPromise'. - Property 'then' is missing in type 'Number'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'IPromise'. + Property 'then' is missing in type 'Number'. tests/cases/compiler/promisePermutations3.ts(73,70): error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. - Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'IPromise'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'IPromise'. tests/cases/compiler/promisePermutations3.ts(78,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(81,19): error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(82,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Signature '(value: string): Promise' has no corresponding signature in '(x: number, y?: string) => Promise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(83,19): error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => Promise' - Types of parameters 'x' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'x' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(87,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' tests/cases/compiler/promisePermutations3.ts(90,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' tests/cases/compiler/promisePermutations3.ts(91,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' tests/cases/compiler/promisePermutations3.ts(92,19): error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' tests/cases/compiler/promisePermutations3.ts(96,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations3.ts(99,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations3.ts(100,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations3.ts(101,19): error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations3.ts(105,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(108,19): error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(109,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. - Signature '(value: string): Promise' has no corresponding signature in '(cb: (a: T) => T) => Promise' - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(110,19): error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. - Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => Promise' - Types of parameters 'cb' and 'value' are incompatible. - Type '(a: T) => T' is not assignable to type 'string'. + Types of parameters 'cb' and 'value' are incompatible. + Type '(a: T) => T' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(116,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations3.ts(119,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' tests/cases/compiler/promisePermutations3.ts(120,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. - Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations3.ts(121,19): error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' tests/cases/compiler/promisePermutations3.ts(125,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' tests/cases/compiler/promisePermutations3.ts(128,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations3.ts(131,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' tests/cases/compiler/promisePermutations3.ts(132,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. - Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' tests/cases/compiler/promisePermutations3.ts(133,19): error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' tests/cases/compiler/promisePermutations3.ts(136,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'IPromise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Type 'string' is not assignable to type 'number'. @@ -84,42 +58,32 @@ tests/cases/compiler/promisePermutations3.ts(151,12): error TS2453: The type arg Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. Types of property 'then' are incompatible. Type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. - Signature '(success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise' has no corresponding signature in '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' - Types of parameters 'success' and 'success' are incompatible. - Type '(value: string) => any' is not assignable to type '(value: number) => Promise'. - Signature '(value: number): Promise' has no corresponding signature in '(value: string) => any' - Types of parameters 'value' and 'value' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'success' and 'success' are incompatible. + Type '(value: string) => any' is not assignable to type '(value: number) => Promise'. + Types of parameters 'value' and 'value' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/promisePermutations3.ts(155,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' - Type 'IPromise' is not assignable to type 'IPromise'. - Type 'number' is not assignable to type 'string'. + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(157,21): error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' - Type 'IPromise' is not assignable to type 'IPromise'. - Type 'number' is not assignable to type 'string'. + Type 'IPromise' is not assignable to type 'IPromise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(158,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. - Signature '(value: number): Promise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' - Type 'Promise' is not assignable to type 'Promise'. - Type 'number' is not assignable to type 'string'. + Type 'Promise' is not assignable to type 'Promise'. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(159,21): error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. - Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' - Type 'Promise' is not assignable to type 'IPromise'. - Types of property 'then' are incompatible. - Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise'. - Signature '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise' has no corresponding signature in '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' - Types of parameters 'success' and 'success' are incompatible. - Type '(value: number) => Promise' is not assignable to type '(value: string) => any'. - Signature '(value: string): any' has no corresponding signature in '(value: number) => Promise' - Types of parameters 'value' and 'value' are incompatible. - Type 'number' is not assignable to type 'string'. + Type 'Promise' is not assignable to type 'IPromise'. + Types of property 'then' are incompatible. + Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise'. + Types of parameters 'success' and 'success' are incompatible. + Type '(value: number) => Promise' is not assignable to type '(value: string) => any'. + Types of parameters 'value' and 'value' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of type '{ (x: T): IPromise; (x: T, y: T): Promise; }' is not assignable to parameter of type '(value: (x: any) => any) => Promise'. - Signature '(value: (x: any) => any): Promise' has no corresponding signature in '{ (x: T): IPromise; (x: T, y: T): Promise; }' - Type 'IPromise' is not assignable to type 'Promise'. - Types of property 'then' are incompatible. - Type '(success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: any) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. - Signature '(success?: (value: any) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise' has no corresponding signature in '(success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' - Type 'IPromise' is not assignable to type 'Promise'. + Type 'IPromise' is not assignable to type 'Promise'. + Types of property 'then' are incompatible. + Type '(success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: any) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. + Type 'IPromise' is not assignable to type 'Promise'. ==== tests/cases/compiler/promisePermutations3.ts (35 errors) ==== @@ -193,10 +157,9 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var r3b = r3.then(testFunction3, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. -!!! error TS2345: Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. -!!! error TS2345: Property 'then' is missing in type 'Number'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. +!!! error TS2345: Property 'then' is missing in type 'Number'. var s3: Promise; var s3a = s3.then(testFunction3, testFunction3, testFunction3); var s3b = s3.then(testFunction3P, testFunction3P, testFunction3P); @@ -204,9 +167,8 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var s3d = s3.then(testFunction3P, testFunction3, testFunction3).then(testFunction3, testFunction3, testFunction3); ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => IPromise' is not assignable to parameter of type '(value: IPromise) => IPromise'. -!!! error TS2345: Signature '(value: IPromise): IPromise' has no corresponding signature in '(x: number) => IPromise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'IPromise'. var r4: IPromise; var sIPromise: (x: any) => IPromise; @@ -214,100 +176,84 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var r4a = r4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r4b = r4.then(sIPromise, testFunction4, testFunction4).then(sIPromise, testFunction4, testFunction4); // ok var s4: Promise; var s4a = s4.then(testFunction4, testFunction4, testFunction4); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => IPromise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4b = s4.then(testFunction4P, testFunction4P, testFunction4P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, y?: string) => Promise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4c = s4.then(testFunction4P, testFunction4, testFunction4); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, y?: string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, y?: string) => Promise' -!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'x' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s4d = s4.then(sIPromise, testFunction4P, testFunction4).then(sIPromise, testFunction4P, testFunction4); var r5: IPromise; var r5a = r5.then(testFunction5, testFunction5, testFunction5); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' var r5b = r5.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s5: Promise; var s5a = s5.then(testFunction5, testFunction5, testFunction5); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => IPromise' var s5b = s5.then(testFunction5P, testFunction5P, testFunction5P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' var s5c = s5.then(testFunction5P, testFunction5, testFunction5); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: string) => string) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: string) => string) => Promise' var s5d = s5.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r6: IPromise; var r6a = r6.then(testFunction6, testFunction6, testFunction6); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' var r6b = r6.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s6: Promise; var s6a = s6.then(testFunction6, testFunction6, testFunction6); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => IPromise' var s6b = s6.then(testFunction6P, testFunction6P, testFunction6P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' var s6c = s6.then(testFunction6P, testFunction6, testFunction6); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(x: number, cb: (a: T) => T) => Promise' var s6d = s6.then(sPromise, sPromise, sPromise).then(sIPromise, sIPromise, sIPromise); // ok var r7: IPromise; var r7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var r7b = r7.then(sIPromise, sIPromise, sIPromise).then(sIPromise, sIPromise, sIPromise); // ok var s7: Promise; var s7a = r7.then(testFunction7, testFunction7, testFunction7); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => IPromise' -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7b = r7.then(testFunction7P, testFunction7P, testFunction7P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => Promise'. -!!! error TS2345: Signature '(value: string): Promise' has no corresponding signature in '(cb: (a: T) => T) => Promise' -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7c = r7.then(testFunction7P, testFunction7, testFunction7); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: string) => IPromise'. -!!! error TS2345: Signature '(value: string): IPromise' has no corresponding signature in '(cb: (a: T) => T) => Promise' -!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. -!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. +!!! error TS2345: Types of parameters 'cb' and 'value' are incompatible. +!!! error TS2345: Type '(a: T) => T' is not assignable to type 'string'. var s7d = r7.then(sPromise, sPromise, sPromise).then(sPromise, sPromise, sPromise); // ok? var r8: IPromise; @@ -316,28 +262,23 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var r8a = r8.then(testFunction8, testFunction8, testFunction8); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' var r8b = r8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var s8: Promise; var s8a = s8.then(testFunction8, testFunction8, testFunction8); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => IPromise' var s8b = s8.then(testFunction8P, testFunction8P, testFunction8P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => Promise'. -!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: T) => T) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: T) => T) => Promise' var s8d = s8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok var r9: IPromise; var r9a = r9.then(testFunction9, testFunction9, testFunction9); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' var r9b = r9.then(sIPromise, sIPromise, sIPromise); // ok var r9c = r9.then(nIPromise, nIPromise, nIPromise); // ok var r9d = r9.then(testFunction, sIPromise, nIPromise); // error @@ -350,15 +291,12 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var s9a = s9.then(testFunction9, testFunction9, testFunction9); // error ~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => IPromise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => IPromise' var s9b = s9.then(testFunction9P, testFunction9P, testFunction9P); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => Promise'. -!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: T, cb: (a: U) => U) => Promise' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '(x: T, cb: (a: U) => U) => Promise' var s9d = s9.then(sPromise, sPromise, sPromise); // ok var s9e = s9.then(nPromise, nPromise, nPromise); // ok var s9f = s9.then(testFunction, sIPromise, nIPromise); // error @@ -390,47 +328,39 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of !!! error TS2453: Type argument candidate 'Promise' is not a valid type argument because it is not a supertype of candidate 'IPromise'. !!! error TS2453: Types of property 'then' are incompatible. !!! error TS2453: Type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. -!!! error TS2453: Signature '(success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise' has no corresponding signature in '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' -!!! error TS2453: Types of parameters 'success' and 'success' are incompatible. -!!! error TS2453: Type '(value: string) => any' is not assignable to type '(value: number) => Promise'. -!!! error TS2453: Signature '(value: number): Promise' has no corresponding signature in '(value: string) => any' -!!! error TS2453: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2453: Type 'string' is not assignable to type 'number'. +!!! error TS2453: Types of parameters 'success' and 'success' are incompatible. +!!! error TS2453: Type '(value: string) => any' is not assignable to type '(value: number) => Promise'. +!!! error TS2453: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2453: Type 'string' is not assignable to type 'number'. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok var r11: IPromise; var r11a = r11.then(testFunction11, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' -!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11: Promise; var s11a = s11.then(testFunction11, testFunction11, testFunction11); // ok ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): IPromise; (x: string): IPromise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): IPromise; (x: string): IPromise; }' -!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'IPromise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11b = s11.then(testFunction11P, testFunction11P, testFunction11P); // error ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => Promise'. -!!! error TS2345: Signature '(value: number): Promise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' -!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'Promise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var s11c = s11.then(testFunction11P, testFunction11, testFunction11); // error ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: number): Promise; (x: string): Promise; }' is not assignable to parameter of type '(value: number) => IPromise'. -!!! error TS2345: Signature '(value: number): IPromise' has no corresponding signature in '{ (x: number): Promise; (x: string): Promise; }' -!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. -!!! error TS2345: Types of property 'then' are incompatible. -!!! error TS2345: Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise'. -!!! error TS2345: Signature '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise' has no corresponding signature in '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' -!!! error TS2345: Types of parameters 'success' and 'success' are incompatible. -!!! error TS2345: Type '(value: number) => Promise' is not assignable to type '(value: string) => any'. -!!! error TS2345: Signature '(value: string): any' has no corresponding signature in '(value: number) => Promise' -!!! error TS2345: Types of parameters 'value' and 'value' are incompatible. -!!! error TS2345: Type 'number' is not assignable to type 'string'. +!!! error TS2345: Type 'Promise' is not assignable to type 'IPromise'. +!!! error TS2345: Types of property 'then' are incompatible. +!!! error TS2345: Type '{ (success?: (value: number) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }' is not assignable to type '(success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise'. +!!! error TS2345: Types of parameters 'success' and 'success' are incompatible. +!!! error TS2345: Type '(value: number) => Promise' is not assignable to type '(value: string) => any'. +!!! error TS2345: Types of parameters 'value' and 'value' are incompatible. +!!! error TS2345: Type 'number' is not assignable to type 'string'. var r12 = testFunction12(x => x); var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok @@ -439,10 +369,8 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of var s12b = s12.then(testFunction12P, testFunction12P, testFunction12P); // ok ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: T): IPromise; (x: T, y: T): Promise; }' is not assignable to parameter of type '(value: (x: any) => any) => Promise'. -!!! error TS2345: Signature '(value: (x: any) => any): Promise' has no corresponding signature in '{ (x: T): IPromise; (x: T, y: T): Promise; }' -!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. -!!! error TS2345: Types of property 'then' are incompatible. -!!! error TS2345: Type '(success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: any) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. -!!! error TS2345: Signature '(success?: (value: any) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise' has no corresponding signature in '(success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' -!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. +!!! error TS2345: Types of property 'then' are incompatible. +!!! error TS2345: Type '(success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise' is not assignable to type '{ (success?: (value: any) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: any) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; }'. +!!! error TS2345: Type 'IPromise' is not assignable to type 'Promise'. var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok \ No newline at end of file diff --git a/tests/baselines/reference/recursiveFunctionTypes.errors.txt b/tests/baselines/reference/recursiveFunctionTypes.errors.txt index 9bc82f92ff3..4c1b392245f 100644 --- a/tests/baselines/reference/recursiveFunctionTypes.errors.txt +++ b/tests/baselines/reference/recursiveFunctionTypes.errors.txt @@ -2,8 +2,7 @@ tests/cases/compiler/recursiveFunctionTypes.ts(1,35): error TS2322: Type 'number Signature '(): () => typeof fn' has no corresponding signature in 'Number' tests/cases/compiler/recursiveFunctionTypes.ts(3,5): error TS2322: Type '() => typeof fn' is not assignable to type 'number'. tests/cases/compiler/recursiveFunctionTypes.ts(4,5): error TS2322: Type '() => typeof fn' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '() => typeof fn' - Type '() => typeof fn' is not assignable to type 'number'. + Type '() => typeof fn' is not assignable to type 'number'. tests/cases/compiler/recursiveFunctionTypes.ts(11,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. tests/cases/compiler/recursiveFunctionTypes.ts(12,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. tests/cases/compiler/recursiveFunctionTypes.ts(17,5): error TS2322: Type '() => I' is not assignable to type 'number'. @@ -32,8 +31,7 @@ tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of var y: () => number = fn; // ok ~ !!! error TS2322: Type '() => typeof fn' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '() => typeof fn' -!!! error TS2322: Type '() => typeof fn' is not assignable to type 'number'. +!!! error TS2322: Type '() => typeof fn' is not assignable to type 'number'. var f: () => typeof g; var g: () => typeof f; diff --git a/tests/baselines/reference/requiredInitializedParameter2.errors.txt b/tests/baselines/reference/requiredInitializedParameter2.errors.txt index 493f9e49f23..5dcec536e1b 100644 --- a/tests/baselines/reference/requiredInitializedParameter2.errors.txt +++ b/tests/baselines/reference/requiredInitializedParameter2.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/requiredInitializedParameter2.ts(5,7): error TS2420: Class 'C1' incorrectly implements interface 'I1'. Types of property 'method' are incompatible. Type '(a: number, b: any) => void' is not assignable to type '() => any'. - Signature '(): any' has no corresponding signature in '(a: number, b: any) => void' ==== tests/cases/compiler/requiredInitializedParameter2.ts (1 errors) ==== @@ -14,6 +13,5 @@ tests/cases/compiler/requiredInitializedParameter2.ts(5,7): error TS2420: Class !!! error TS2420: Class 'C1' incorrectly implements interface 'I1'. !!! error TS2420: Types of property 'method' are incompatible. !!! error TS2420: Type '(a: number, b: any) => void' is not assignable to type '() => any'. -!!! error TS2420: Signature '(): any' has no corresponding signature in '(a: number, b: any) => void' method(a = 0, b) { } } \ No newline at end of file diff --git a/tests/baselines/reference/restArgAssignmentCompat.errors.txt b/tests/baselines/reference/restArgAssignmentCompat.errors.txt index cf6c70b58f3..2ea07395099 100644 --- a/tests/baselines/reference/restArgAssignmentCompat.errors.txt +++ b/tests/baselines/reference/restArgAssignmentCompat.errors.txt @@ -1,8 +1,7 @@ tests/cases/compiler/restArgAssignmentCompat.ts(7,1): error TS2322: Type '(...x: number[]) => void' is not assignable to type '(x: number[], y: string) => void'. - Signature '(x: number[], y: string): void' has no corresponding signature in '(...x: number[]) => void' - Types of parameters 'x' and 'x' are incompatible. - Type 'number' is not assignable to type 'number[]'. - Property 'length' is missing in type 'Number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'number' is not assignable to type 'number[]'. + Property 'length' is missing in type 'Number'. ==== tests/cases/compiler/restArgAssignmentCompat.ts (1 errors) ==== @@ -15,9 +14,8 @@ tests/cases/compiler/restArgAssignmentCompat.ts(7,1): error TS2322: Type '(...x: n = f; ~ !!! error TS2322: Type '(...x: number[]) => void' is not assignable to type '(x: number[], y: string) => void'. -!!! error TS2322: Signature '(x: number[], y: string): void' has no corresponding signature in '(...x: number[]) => void' -!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'number[]'. -!!! error TS2322: Property 'length' is missing in type 'Number'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'number[]'. +!!! error TS2322: Property 'length' is missing in type 'Number'. n([4], 'foo'); \ No newline at end of file diff --git a/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.errors.txt b/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.errors.txt index f490027f870..db23c2a19f6 100644 --- a/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.errors.txt +++ b/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.errors.txt @@ -1,6 +1,5 @@ tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticMemberAssignsToConstructorFunctionMembers.ts(7,9): error TS2322: Type '() => void' is not assignable to type '(x: number) => number'. - Signature '(x: number): number' has no corresponding signature in '() => void' - Type 'void' is not assignable to type 'number'. + Type 'void' is not assignable to type 'number'. ==== tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticMemberAssignsToConstructorFunctionMembers.ts (1 errors) ==== @@ -13,8 +12,7 @@ tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclara C.bar = () => { } // error ~~~~~ !!! error TS2322: Type '() => void' is not assignable to type '(x: number) => number'. -!!! error TS2322: Signature '(x: number): number' has no corresponding signature in '() => void' -!!! error TS2322: Type 'void' is not assignable to type 'number'. +!!! error TS2322: Type 'void' is not assignable to type 'number'. C.bar = (x) => x; // ok C.bar = (x: number) => 1; // ok return 1; diff --git a/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.errors.txt b/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.errors.txt index aee87f77764..ed6450ad329 100644 --- a/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.errors.txt +++ b/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.errors.txt @@ -1,6 +1,5 @@ tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.ts(6,13): error TS2345: Argument of type '(y: "foo" | "bar") => string' is not assignable to parameter of type '(x: "foo") => "foo"'. - Signature '(x: "foo"): "foo"' has no corresponding signature in '(y: "foo" | "bar") => string' - Type 'string' is not assignable to type '"foo"'. + Type 'string' is not assignable to type '"foo"'. ==== tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.ts (1 errors) ==== @@ -12,6 +11,5 @@ tests/cases/conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterCon let f = foo((y: "foo" | "bar") => y === "foo" ? y : "foo"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(y: "foo" | "bar") => string' is not assignable to parameter of type '(x: "foo") => "foo"'. -!!! error TS2345: Signature '(x: "foo"): "foo"' has no corresponding signature in '(y: "foo" | "bar") => string' -!!! error TS2345: Type 'string' is not assignable to type '"foo"'. +!!! error TS2345: Type 'string' is not assignable to type '"foo"'. let fResult = f("foo"); \ No newline at end of file diff --git a/tests/baselines/reference/subtypingWithCallSignaturesA.errors.txt b/tests/baselines/reference/subtypingWithCallSignaturesA.errors.txt index 24caddf4849..3821c707f4b 100644 --- a/tests/baselines/reference/subtypingWithCallSignaturesA.errors.txt +++ b/tests/baselines/reference/subtypingWithCallSignaturesA.errors.txt @@ -1,6 +1,5 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesA.ts(2,15): error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => number'. - Signature '(x: number): number' has no corresponding signature in '(x: number) => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesA.ts (1 errors) ==== @@ -8,5 +7,4 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW var r5 = foo3((x: number) => ''); // error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: number) => string' is not assignable to parameter of type '(x: number) => number'. -!!! error TS2345: Signature '(x: number): number' has no corresponding signature in '(x: number) => string' -!!! error TS2345: Type 'string' is not assignable to type 'number'. \ No newline at end of file +!!! error TS2345: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/subtypingWithCallSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/subtypingWithCallSignaturesWithOptionalParameters.errors.txt index 1ae866d4722..b5d23da2241 100644 --- a/tests/baselines/reference/subtypingWithCallSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/subtypingWithCallSignaturesWithOptionalParameters.errors.txt @@ -1,11 +1,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithOptionalParameters.ts(19,11): error TS2430: Interface 'I3' incorrectly extends interface 'Base'. Types of property 'a' are incompatible. Type '(x: number) => number' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '(x: number) => number' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithOptionalParameters.ts(49,11): error TS2430: Interface 'I10' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type '(x: number, y: number) => number' is not assignable to type '(x: number) => number'. - Signature '(x: number): number' has no corresponding signature in '(x: number, y: number) => number' ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithOptionalParameters.ts (2 errors) ==== @@ -32,7 +30,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x: number) => number' is not assignable to type '() => number'. -!!! error TS2430: Signature '(): number' has no corresponding signature in '(x: number) => number' a: (x: number) => number; // error, too many required params } @@ -67,7 +64,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: number, y: number) => number' is not assignable to type '(x: number) => number'. -!!! error TS2430: Signature '(x: number): number' has no corresponding signature in '(x: number, y: number) => number' a3: (x: number, y: number) => number; // error, too many required params } diff --git a/tests/baselines/reference/subtypingWithCallSignaturesWithRestParameters.errors.txt b/tests/baselines/reference/subtypingWithCallSignaturesWithRestParameters.errors.txt index aee119d6f73..f4a141ff390 100644 --- a/tests/baselines/reference/subtypingWithCallSignaturesWithRestParameters.errors.txt +++ b/tests/baselines/reference/subtypingWithCallSignaturesWithRestParameters.errors.txt @@ -1,69 +1,58 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(18,11): error TS2430: Interface 'I1C' incorrectly extends interface 'Base'. Types of property 'a' are incompatible. Type '(...args: string[]) => number' is not assignable to type '(...args: number[]) => number'. - Signature '(...args: number[]): number' has no corresponding signature in '(...args: string[]) => number' - Types of parameters 'args' and 'args' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'args' and 'args' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(34,11): error TS2430: Interface 'I3B' incorrectly extends interface 'Base'. Types of property 'a' are incompatible. Type '(x?: string) => number' is not assignable to type '(...args: number[]) => number'. - Signature '(...args: number[]): number' has no corresponding signature in '(x?: string) => number' - Types of parameters 'x' and 'args' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'args' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(60,11): error TS2430: Interface 'I6C' incorrectly extends interface 'Base'. Types of property 'a2' are incompatible. Type '(x: number, ...args: string[]) => number' is not assignable to type '(x: number, ...z: number[]) => number'. - Signature '(x: number, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' - Types of parameters 'args' and 'z' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'args' and 'z' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(90,11): error TS2430: Interface 'I10B' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type '(x: number, y?: number, z?: number) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number, z?: number) => number' - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(94,11): error TS2430: Interface 'I10C' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type '(x: number, ...z: number[]) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...z: number[]) => number' - Types of parameters 'z' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'z' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(98,11): error TS2430: Interface 'I10D' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type '(x: string, y?: string, z?: string) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: string, y?: string, z?: string) => number' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(102,11): error TS2430: Interface 'I10E' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type '(x: number, ...z: string[]) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. - Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...z: string[]) => number' - Types of parameters 'z' and 'z' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'z' and 'z' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(110,11): error TS2430: Interface 'I12' incorrectly extends interface 'Base'. Types of property 'a4' are incompatible. Type '(x?: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x?: number, y?: number) => number' - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(118,11): error TS2430: Interface 'I14' incorrectly extends interface 'Base'. Types of property 'a4' are incompatible. Type '(x: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number) => number' - Types of parameters 'y' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'y' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(126,11): error TS2430: Interface 'I16' incorrectly extends interface 'Base'. Types of property 'a4' are incompatible. Type '(x: number, ...args: string[]) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' - Types of parameters 'args' and 'z' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'args' and 'z' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts(130,11): error TS2430: Interface 'I17' incorrectly extends interface 'Base'. Types of property 'a4' are incompatible. Type '(...args: number[]) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. - Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(...args: number[]) => number' - Types of parameters 'args' and 'y' are incompatible. - Type 'number' is not assignable to type 'string'. + Types of parameters 'args' and 'y' are incompatible. + Type 'number' is not assignable to type 'string'. ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithRestParameters.ts (11 errors) ==== @@ -89,9 +78,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I1C' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(...args: string[]) => number' is not assignable to type '(...args: number[]) => number'. -!!! error TS2430: Signature '(...args: number[]): number' has no corresponding signature in '(...args: string[]) => number' -!!! error TS2430: Types of parameters 'args' and 'args' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Types of parameters 'args' and 'args' are incompatible. +!!! error TS2430: Type 'string' is not assignable to type 'number'. a: (...args: string[]) => number; // error, type mismatch } @@ -112,9 +100,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3B' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x?: string) => number' is not assignable to type '(...args: number[]) => number'. -!!! error TS2430: Signature '(...args: number[]): number' has no corresponding signature in '(x?: string) => number' -!!! error TS2430: Types of parameters 'x' and 'args' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Types of parameters 'x' and 'args' are incompatible. +!!! error TS2430: Type 'string' is not assignable to type 'number'. a: (x?: string) => number; // error, incompatible type } @@ -145,9 +132,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I6C' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a2' are incompatible. !!! error TS2430: Type '(x: number, ...args: string[]) => number' is not assignable to type '(x: number, ...z: number[]) => number'. -!!! error TS2430: Signature '(x: number, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' -!!! error TS2430: Types of parameters 'args' and 'z' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Types of parameters 'args' and 'z' are incompatible. +!!! error TS2430: Type 'string' is not assignable to type 'number'. a2: (x: number, ...args: string[]) => number; // error } @@ -182,9 +168,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10B' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: number, y?: number, z?: number) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number, z?: number) => number' -!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a3: (x: number, y?: number, z?: number) => number; // error } @@ -193,9 +178,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10C' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: number, ...z: number[]) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...z: number[]) => number' -!!! error TS2430: Types of parameters 'z' and 'y' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Types of parameters 'z' and 'y' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a3: (x: number, ...z: number[]) => number; // error } @@ -204,9 +188,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10D' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: string, y?: string, z?: string) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: string, y?: string, z?: string) => number' -!!! error TS2430: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2430: Type 'string' is not assignable to type 'number'. a3: (x: string, y?: string, z?: string) => number; // error, incompatible types } @@ -215,9 +198,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10E' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: number, ...z: string[]) => number' is not assignable to type '(x: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Signature '(x: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...z: string[]) => number' -!!! error TS2430: Types of parameters 'z' and 'z' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Types of parameters 'z' and 'z' are incompatible. +!!! error TS2430: Type 'string' is not assignable to type 'number'. a3: (x: number, ...z: string[]) => number; // error } @@ -230,9 +212,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I12' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a4' are incompatible. !!! error TS2430: Type '(x?: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x?: number, y?: number) => number' -!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a4: (x?: number, y?: number) => number; // error, type mismatch } @@ -245,9 +226,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I14' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a4' are incompatible. !!! error TS2430: Type '(x: number, y?: number) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, y?: number) => number' -!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Types of parameters 'y' and 'y' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a4: (x: number, y?: number) => number; // error, second param has type mismatch } @@ -260,9 +240,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I16' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a4' are incompatible. !!! error TS2430: Type '(x: number, ...args: string[]) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(x: number, ...args: string[]) => number' -!!! error TS2430: Types of parameters 'args' and 'z' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Types of parameters 'args' and 'z' are incompatible. +!!! error TS2430: Type 'string' is not assignable to type 'number'. a4: (x: number, ...args: string[]) => number; // error, rest param has type mismatch } @@ -271,9 +250,8 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I17' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a4' are incompatible. !!! error TS2430: Type '(...args: number[]) => number' is not assignable to type '(x?: number, y?: string, ...z: number[]) => number'. -!!! error TS2430: Signature '(x?: number, y?: string, ...z: number[]): number' has no corresponding signature in '(...args: number[]) => number' -!!! error TS2430: Types of parameters 'args' and 'y' are incompatible. -!!! error TS2430: Type 'number' is not assignable to type 'string'. +!!! error TS2430: Types of parameters 'args' and 'y' are incompatible. +!!! error TS2430: Type 'number' is not assignable to type 'string'. a4: (...args: number[]) => number; // error } \ No newline at end of file diff --git a/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.errors.txt b/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.errors.txt index 54eec881c14..da742fcd69c 100644 --- a/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.errors.txt +++ b/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.errors.txt @@ -1,8 +1,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithSpecializedSignatures.ts(70,15): error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type '(x: string) => string' is not assignable to type '{ (x: "a"): number; (x: string): number; }'. - Signature '(x: string): number' has no corresponding signature in '(x: string) => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignaturesWithSpecializedSignatures.ts (1 errors) ==== @@ -80,8 +79,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x: string) => string' is not assignable to type '{ (x: "a"): number; (x: string): number; }'. -!!! error TS2430: Signature '(x: string): number' has no corresponding signature in '(x: string) => string' -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Type 'string' is not assignable to type 'number'. // N's a: (x: string) => string; // error because base returns non-void; } diff --git a/tests/baselines/reference/subtypingWithConstructSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/subtypingWithConstructSignaturesWithOptionalParameters.errors.txt index a30feba51c9..e041b1cdce0 100644 --- a/tests/baselines/reference/subtypingWithConstructSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/subtypingWithConstructSignaturesWithOptionalParameters.errors.txt @@ -1,11 +1,9 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignaturesWithOptionalParameters.ts(19,11): error TS2430: Interface 'I3' incorrectly extends interface 'Base'. Types of property 'a' are incompatible. Type 'new (x: number) => number' is not assignable to type 'new () => number'. - Signature 'new (): number' has no corresponding signature in 'new (x: number) => number' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignaturesWithOptionalParameters.ts(49,11): error TS2430: Interface 'I10' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type 'new (x: number, y: number) => number' is not assignable to type 'new (x: number) => number'. - Signature 'new (x: number): number' has no corresponding signature in 'new (x: number, y: number) => number' ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignaturesWithOptionalParameters.ts (2 errors) ==== @@ -32,7 +30,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type 'new (x: number) => number' is not assignable to type 'new () => number'. -!!! error TS2430: Signature 'new (): number' has no corresponding signature in 'new (x: number) => number' a: new (x: number) => number; // error, too many required params } @@ -67,7 +64,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type 'new (x: number, y: number) => number' is not assignable to type 'new (x: number) => number'. -!!! error TS2430: Signature 'new (x: number): number' has no corresponding signature in 'new (x: number, y: number) => number' a3: new (x: number, y: number) => number; // error, too many required params } diff --git a/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.errors.txt b/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.errors.txt index fd9e6faa9ec..8a885a2455f 100644 --- a/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.errors.txt +++ b/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.errors.txt @@ -1,8 +1,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignaturesWithSpecializedSignatures.ts(70,15): error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type 'new (x: string) => string' is not assignable to type '{ new (x: "a"): number; new (x: string): number; }'. - Signature 'new (x: string): number' has no corresponding signature in 'new (x: string) => string' - Type 'string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignaturesWithSpecializedSignatures.ts (1 errors) ==== @@ -80,8 +79,7 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I2' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type 'new (x: string) => string' is not assignable to type '{ new (x: "a"): number; new (x: string): number; }'. -!!! error TS2430: Signature 'new (x: string): number' has no corresponding signature in 'new (x: string) => string' -!!! error TS2430: Type 'string' is not assignable to type 'number'. +!!! error TS2430: Type 'string' is not assignable to type 'number'. // N's a: new (x: string) => string; // error because base returns non-void; } diff --git a/tests/baselines/reference/subtypingWithGenericCallSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/subtypingWithGenericCallSignaturesWithOptionalParameters.errors.txt index 316b5713835..e8f50236cba 100644 --- a/tests/baselines/reference/subtypingWithGenericCallSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/subtypingWithGenericCallSignaturesWithOptionalParameters.errors.txt @@ -1,27 +1,21 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts(20,15): error TS2430: Interface 'I3' incorrectly extends interface 'Base'. Types of property 'a' are incompatible. Type '(x: T) => T' is not assignable to type '() => T'. - Signature '(): T' has no corresponding signature in '(x: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts(50,15): error TS2430: Interface 'I10' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type '(x: T, y: T) => T' is not assignable to type '(x: T) => T'. - Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts(108,15): error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type '(x: T) => T' is not assignable to type '() => T'. - Signature '(): T' has no corresponding signature in '(x: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts(138,15): error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. Types of property 'a3' are incompatible. Type '(x: T, y: T) => T' is not assignable to type '(x: T) => T'. - Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts(196,15): error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type '(x: T) => T' is not assignable to type '() => T'. - Signature '(): T' has no corresponding signature in '(x: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts(226,15): error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. Types of property 'a3' are incompatible. Type '(x: T, y: T) => T' is not assignable to type '(x: T) => T'. - Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => T' ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericCallSignaturesWithOptionalParameters.ts (6 errors) ==== @@ -49,7 +43,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x: T) => T' is not assignable to type '() => T'. -!!! error TS2430: Signature '(): T' has no corresponding signature in '(x: T) => T' a: (x: T) => T; // error, too many required params } @@ -84,7 +77,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: T, y: T) => T' is not assignable to type '(x: T) => T'. -!!! error TS2430: Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => T' a3: (x: T, y: T) => T; // error, too many required params } @@ -147,7 +139,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x: T) => T' is not assignable to type '() => T'. -!!! error TS2430: Signature '(): T' has no corresponding signature in '(x: T) => T' a: (x: T) => T; } @@ -182,7 +173,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: T, y: T) => T' is not assignable to type '(x: T) => T'. -!!! error TS2430: Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => T' a3: (x: T, y: T) => T; } @@ -245,7 +235,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type '(x: T) => T' is not assignable to type '() => T'. -!!! error TS2430: Signature '(): T' has no corresponding signature in '(x: T) => T' a: (x: T) => T; // error, not identical and contextual signature instatiation can't make inference from T to T } @@ -280,7 +269,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type '(x: T, y: T) => T' is not assignable to type '(x: T) => T'. -!!! error TS2430: Signature '(x: T): T' has no corresponding signature in '(x: T, y: T) => T' a3: (x: T, y: T) => T; // error, too many required params } diff --git a/tests/baselines/reference/subtypingWithGenericConstructSignaturesWithOptionalParameters.errors.txt b/tests/baselines/reference/subtypingWithGenericConstructSignaturesWithOptionalParameters.errors.txt index 66dd34f9cb6..27066058238 100644 --- a/tests/baselines/reference/subtypingWithGenericConstructSignaturesWithOptionalParameters.errors.txt +++ b/tests/baselines/reference/subtypingWithGenericConstructSignaturesWithOptionalParameters.errors.txt @@ -1,27 +1,21 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts(20,15): error TS2430: Interface 'I3' incorrectly extends interface 'Base'. Types of property 'a' are incompatible. Type 'new (x: T) => T' is not assignable to type 'new () => T'. - Signature 'new (): T' has no corresponding signature in 'new (x: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts(50,15): error TS2430: Interface 'I10' incorrectly extends interface 'Base'. Types of property 'a3' are incompatible. Type 'new (x: T, y: T) => T' is not assignable to type 'new (x: T) => T'. - Signature 'new (x: T): T' has no corresponding signature in 'new (x: T, y: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts(108,15): error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type 'new (x: T) => T' is not assignable to type 'new () => T'. - Signature 'new (): T' has no corresponding signature in 'new (x: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts(138,15): error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. Types of property 'a3' are incompatible. Type 'new (x: T, y: T) => T' is not assignable to type 'new (x: T) => T'. - Signature 'new (x: T): T' has no corresponding signature in 'new (x: T, y: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts(196,15): error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. Types of property 'a' are incompatible. Type 'new (x: T) => T' is not assignable to type 'new () => T'. - Signature 'new (): T' has no corresponding signature in 'new (x: T) => T' tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts(226,15): error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. Types of property 'a3' are incompatible. Type 'new (x: T, y: T) => T' is not assignable to type 'new (x: T) => T'. - Signature 'new (x: T): T' has no corresponding signature in 'new (x: T, y: T) => T' ==== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithGenericConstructSignaturesWithOptionalParameters.ts (6 errors) ==== @@ -49,7 +43,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type 'new (x: T) => T' is not assignable to type 'new () => T'. -!!! error TS2430: Signature 'new (): T' has no corresponding signature in 'new (x: T) => T' a: new (x: T) => T; // error, too many required params } @@ -84,7 +77,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type 'new (x: T, y: T) => T' is not assignable to type 'new (x: T) => T'. -!!! error TS2430: Signature 'new (x: T): T' has no corresponding signature in 'new (x: T, y: T) => T' a3: new (x: T, y: T) => T; // error, too many required params } @@ -147,7 +139,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type 'new (x: T) => T' is not assignable to type 'new () => T'. -!!! error TS2430: Signature 'new (): T' has no corresponding signature in 'new (x: T) => T' a: new (x: T) => T; } @@ -182,7 +173,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type 'new (x: T, y: T) => T' is not assignable to type 'new (x: T) => T'. -!!! error TS2430: Signature 'new (x: T): T' has no corresponding signature in 'new (x: T, y: T) => T' a3: new (x: T, y: T) => T; } @@ -245,7 +235,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I3' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a' are incompatible. !!! error TS2430: Type 'new (x: T) => T' is not assignable to type 'new () => T'. -!!! error TS2430: Signature 'new (): T' has no corresponding signature in 'new (x: T) => T' a: new (x: T) => T; // error, not identical and contextual signature instatiation can't make inference from T to T } @@ -280,7 +269,6 @@ tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingW !!! error TS2430: Interface 'I10' incorrectly extends interface 'Base2'. !!! error TS2430: Types of property 'a3' are incompatible. !!! error TS2430: Type 'new (x: T, y: T) => T' is not assignable to type 'new (x: T) => T'. -!!! error TS2430: Signature 'new (x: T): T' has no corresponding signature in 'new (x: T, y: T) => T' a3: new (x: T, y: T) => T; // error, too many required params } diff --git a/tests/baselines/reference/symbolProperty24.errors.txt b/tests/baselines/reference/symbolProperty24.errors.txt index 58ff17544f9..25cba184e25 100644 --- a/tests/baselines/reference/symbolProperty24.errors.txt +++ b/tests/baselines/reference/symbolProperty24.errors.txt @@ -1,8 +1,7 @@ tests/cases/conformance/es6/Symbols/symbolProperty24.ts(5,7): error TS2420: Class 'C' incorrectly implements interface 'I'. Types of property '[Symbol.toPrimitive]' are incompatible. Type '() => string' is not assignable to type '() => boolean'. - Signature '(): boolean' has no corresponding signature in '() => string' - Type 'string' is not assignable to type 'boolean'. + Type 'string' is not assignable to type 'boolean'. ==== tests/cases/conformance/es6/Symbols/symbolProperty24.ts (1 errors) ==== @@ -15,8 +14,7 @@ tests/cases/conformance/es6/Symbols/symbolProperty24.ts(5,7): error TS2420: Clas !!! error TS2420: Class 'C' incorrectly implements interface 'I'. !!! error TS2420: Types of property '[Symbol.toPrimitive]' are incompatible. !!! error TS2420: Type '() => string' is not assignable to type '() => boolean'. -!!! error TS2420: Signature '(): boolean' has no corresponding signature in '() => string' -!!! error TS2420: Type 'string' is not assignable to type 'boolean'. +!!! error TS2420: Type 'string' is not assignable to type 'boolean'. [Symbol.toPrimitive]() { return ""; } diff --git a/tests/baselines/reference/tupleTypes.errors.txt b/tests/baselines/reference/tupleTypes.errors.txt index c1ef7f59454..8f418f98157 100644 --- a/tests/baselines/reference/tupleTypes.errors.txt +++ b/tests/baselines/reference/tupleTypes.errors.txt @@ -10,15 +10,13 @@ tests/cases/compiler/tupleTypes.ts(41,1): error TS2322: Type 'undefined[]' is no tests/cases/compiler/tupleTypes.ts(47,1): error TS2322: Type '[number, string]' is not assignable to type 'number[]'. Types of property 'pop' are incompatible. Type '() => number | string' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '() => number | string' - Type 'number | string' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. + Type 'number | string' is not assignable to type 'number'. + Type 'string' is not assignable to type 'number'. tests/cases/compiler/tupleTypes.ts(49,1): error TS2322: Type '[number, {}]' is not assignable to type 'number[]'. Types of property 'pop' are incompatible. Type '() => number | {}' is not assignable to type '() => number'. - Signature '(): number' has no corresponding signature in '() => number | {}' - Type 'number | {}' is not assignable to type 'number'. - Type '{}' is not assignable to type 'number'. + Type 'number | {}' is not assignable to type 'number'. + Type '{}' is not assignable to type 'number'. tests/cases/compiler/tupleTypes.ts(50,1): error TS2322: Type '[number, number]' is not assignable to type '[number, string]'. Types of property '1' are incompatible. Type 'number' is not assignable to type 'string'. @@ -93,18 +91,16 @@ tests/cases/compiler/tupleTypes.ts(51,1): error TS2322: Type '[number, {}]' is n !!! error TS2322: Type '[number, string]' is not assignable to type 'number[]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => number | string' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '() => number | string' -!!! error TS2322: Type 'number | string' is not assignable to type 'number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. +!!! error TS2322: Type 'number | string' is not assignable to type 'number'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. a = a2; a = a3; // Error ~ !!! error TS2322: Type '[number, {}]' is not assignable to type 'number[]'. !!! error TS2322: Types of property 'pop' are incompatible. !!! error TS2322: Type '() => number | {}' is not assignable to type '() => number'. -!!! error TS2322: Signature '(): number' has no corresponding signature in '() => number | {}' -!!! error TS2322: Type 'number | {}' is not assignable to type 'number'. -!!! error TS2322: Type '{}' is not assignable to type 'number'. +!!! error TS2322: Type 'number | {}' is not assignable to type 'number'. +!!! error TS2322: Type '{}' is not assignable to type 'number'. a1 = a2; // Error ~~ !!! error TS2322: Type '[number, number]' is not assignable to type '[number, string]'. diff --git a/tests/baselines/reference/typeArgumentInferenceConstructSignatures.errors.txt b/tests/baselines/reference/typeArgumentInferenceConstructSignatures.errors.txt index ecfb70a7776..d058426b9c9 100644 --- a/tests/baselines/reference/typeArgumentInferenceConstructSignatures.errors.txt +++ b/tests/baselines/reference/typeArgumentInferenceConstructSignatures.errors.txt @@ -1,17 +1,14 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(25,35): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(51,19): error TS2304: Cannot find name 'Window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(61,39): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => string' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(71,39): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => string' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(81,45): error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. - Signature '(b: number): number' has no corresponding signature in '(n: string) => string' - Types of parameters 'n' and 'b' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'n' and 'b' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(106,15): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'string' is not a valid type argument because it is not a supertype of candidate 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstructSignatures.ts(118,9): error TS2304: Cannot find name 'Window'. @@ -92,9 +89,8 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstruct new someGenerics4('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. -!!! error TS2345: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. new someGenerics4(null, null); // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type @@ -107,9 +103,8 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstruct new someGenerics5('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. -!!! error TS2345: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. new someGenerics5(null, null); // Generic call with multiple arguments of function types that each have parameters of the same generic type @@ -122,9 +117,8 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceConstruct new someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // Error ~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. -!!! error TS2345: Signature '(b: number): number' has no corresponding signature in '(n: string) => string' -!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. new someGenerics6((n: number) => n, (n: number) => n, (n: number) => n); // Generic call with multiple arguments of function types that each have parameters of different generic type diff --git a/tests/baselines/reference/typeArgumentInferenceErrors.errors.txt b/tests/baselines/reference/typeArgumentInferenceErrors.errors.txt index dd9e29b7c31..9bd25dda4e6 100644 --- a/tests/baselines/reference/typeArgumentInferenceErrors.errors.txt +++ b/tests/baselines/reference/typeArgumentInferenceErrors.errors.txt @@ -1,16 +1,13 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts(3,31): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts(7,35): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => string' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts(11,35): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => string' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts(15,41): error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. - Signature '(b: number): number' has no corresponding signature in '(n: string) => string' - Types of parameters 'n' and 'b' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'n' and 'b' are incompatible. + Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts (4 errors) ==== @@ -25,25 +22,22 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceErrors.ts someGenerics4('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. -!!! error TS2345: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type function someGenerics5(n: T, f: (x: U) => void) { } someGenerics5('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. -!!! error TS2345: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. // Generic call with multiple arguments of function types that each have parameters of the same generic type function someGenerics6(a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) { } someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // Error ~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. -!!! error TS2345: Signature '(b: number): number' has no corresponding signature in '(n: string) => string' -!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/typeArgumentInferenceWithClassExpression2.errors.txt b/tests/baselines/reference/typeArgumentInferenceWithClassExpression2.errors.txt index e949a0a2fd8..eb74ff0ade0 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithClassExpression2.errors.txt +++ b/tests/baselines/reference/typeArgumentInferenceWithClassExpression2.errors.txt @@ -1,7 +1,6 @@ tests/cases/conformance/es6/classExpressions/typeArgumentInferenceWithClassExpression2.ts(6,5): error TS2345: Argument of type 'typeof (Anonymous class)' is not assignable to parameter of type 'typeof (Anonymous class)'. - Signature 'new (): foo<{}>.(Anonymous class)' has no corresponding signature in 'typeof (Anonymous class)' - Type '(Anonymous class)' is not assignable to type 'foo<{}>.(Anonymous class)'. - Property 'prop' is missing in type '(Anonymous class)'. + Type '(Anonymous class)' is not assignable to type 'foo<{}>.(Anonymous class)'. + Property 'prop' is missing in type '(Anonymous class)'. ==== tests/cases/conformance/es6/classExpressions/typeArgumentInferenceWithClassExpression2.ts (1 errors) ==== @@ -13,6 +12,5 @@ tests/cases/conformance/es6/classExpressions/typeArgumentInferenceWithClassExpre foo(class { static prop = "hello" }).length; ~~~~~ !!! error TS2345: Argument of type 'typeof (Anonymous class)' is not assignable to parameter of type 'typeof (Anonymous class)'. -!!! error TS2345: Signature 'new (): foo<{}>.(Anonymous class)' has no corresponding signature in 'typeof (Anonymous class)' -!!! error TS2345: Type '(Anonymous class)' is not assignable to type 'foo<{}>.(Anonymous class)'. -!!! error TS2345: Property 'prop' is missing in type '(Anonymous class)'. \ No newline at end of file +!!! error TS2345: Type '(Anonymous class)' is not assignable to type 'foo<{}>.(Anonymous class)'. +!!! error TS2345: Property 'prop' is missing in type '(Anonymous class)'. \ No newline at end of file diff --git a/tests/baselines/reference/typeArgumentInferenceWithConstraints.errors.txt b/tests/baselines/reference/typeArgumentInferenceWithConstraints.errors.txt index 3f0390ec46a..0c1e8cc4e97 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithConstraints.errors.txt +++ b/tests/baselines/reference/typeArgumentInferenceWithConstraints.errors.txt @@ -4,18 +4,15 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(32,34): error TS2304: Cannot find name 'Window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(34,15): error TS2304: Cannot find name 'Window'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(41,35): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => string' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(48,35): error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. - Signature '(x: number): void' has no corresponding signature in '(x: string) => string' - Types of parameters 'x' and 'x' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'x' and 'x' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(49,15): error TS2344: Type 'string' does not satisfy the constraint 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(55,41): error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. - Signature '(b: number): number' has no corresponding signature in '(n: string) => string' - Types of parameters 'n' and 'b' are incompatible. - Type 'string' is not assignable to type 'number'. + Types of parameters 'n' and 'b' are incompatible. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(66,31): error TS2345: Argument of type '(a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void' is not assignable to parameter of type 'string'. tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConstraints.ts(73,11): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'string' is not a valid type argument because it is not a supertype of candidate 'number'. @@ -83,9 +80,8 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst someGenerics4('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. -!!! error TS2345: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. someGenerics4(null, null); // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type @@ -95,9 +91,8 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst someGenerics5('', (x: string) => ''); // Error ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string) => string' is not assignable to parameter of type '(x: number) => void'. -!!! error TS2345: Signature '(x: number): void' has no corresponding signature in '(x: string) => string' -!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. someGenerics5(null, null); // Error ~~~~~~ !!! error TS2344: Type 'string' does not satisfy the constraint 'number'. @@ -109,9 +104,8 @@ tests/cases/conformance/expressions/functionCalls/typeArgumentInferenceWithConst someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // Error ~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(n: string) => string' is not assignable to parameter of type '(b: number) => number'. -!!! error TS2345: Signature '(b: number): number' has no corresponding signature in '(n: string) => string' -!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. -!!! error TS2345: Type 'string' is not assignable to type 'number'. +!!! error TS2345: Types of parameters 'n' and 'b' are incompatible. +!!! error TS2345: Type 'string' is not assignable to type 'number'. someGenerics6((n: number) => n, (n: number) => n, (n: number) => n); // Generic call with multiple arguments of function types that each have parameters of different generic type diff --git a/tests/baselines/reference/typeGuardFunctionErrors.errors.txt b/tests/baselines/reference/typeGuardFunctionErrors.errors.txt index fb17775bc31..92d9d21f0cc 100644 --- a/tests/baselines/reference/typeGuardFunctionErrors.errors.txt +++ b/tests/baselines/reference/typeGuardFunctionErrors.errors.txt @@ -14,18 +14,14 @@ tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(60,7): tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(65,7): error TS2339: Property 'propB' does not exist on type 'A'. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(70,7): error TS2339: Property 'propB' does not exist on type 'A'. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(75,46): error TS2345: Argument of type '(p1: any) => p1 is C' is not assignable to parameter of type '(p1: any) => p1 is B'. - Signature '(p1: any): p1 is B' has no corresponding signature in '(p1: any) => p1 is C' - Type predicate 'p1 is C' is not assignable to 'p1 is B'. - Type 'C' is not assignable to type 'B'. + Type predicate 'p1 is C' is not assignable to 'p1 is B'. + Type 'C' is not assignable to type 'B'. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(79,1): error TS2322: Type '(p1: any, p2: any) => boolean' is not assignable to type '(p1: any, p2: any) => p1 is A'. - Signature '(p1: any, p2: any): p1 is A' has no corresponding signature in '(p1: any, p2: any) => boolean' - Signature '(p1: any, p2: any): boolean' must have a type predicate. + Signature '(p1: any, p2: any): boolean' must have a type predicate. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(85,1): error TS2322: Type '(p1: any, p2: any) => p2 is A' is not assignable to type '(p1: any, p2: any) => p1 is A'. - Signature '(p1: any, p2: any): p1 is A' has no corresponding signature in '(p1: any, p2: any) => p2 is A' - Type predicate 'p2 is A' is not assignable to 'p1 is A'. - Parameter 'p2' is not in the same position as parameter 'p1'. + Type predicate 'p2 is A' is not assignable to 'p1 is A'. + Parameter 'p2' is not in the same position as parameter 'p1'. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(91,1): error TS2322: Type '(p1: any, p2: any, p3: any) => p1 is A' is not assignable to type '(p1: any, p2: any) => p1 is A'. - Signature '(p1: any, p2: any): p1 is A' has no corresponding signature in '(p1: any, p2: any, p3: any) => p1 is A' tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(96,9): error TS1228: A type predicate is only allowed in return type position for functions and methods. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(97,16): error TS1228: A type predicate is only allowed in return type position for functions and methods. tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(98,20): error TS1228: A type predicate is only allowed in return type position for functions and methods. @@ -151,17 +147,15 @@ tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(137,39 acceptingDifferentSignatureTypeGuardFunction(isC); ~~~ !!! error TS2345: Argument of type '(p1: any) => p1 is C' is not assignable to parameter of type '(p1: any) => p1 is B'. -!!! error TS2345: Signature '(p1: any): p1 is B' has no corresponding signature in '(p1: any) => p1 is C' -!!! error TS2345: Type predicate 'p1 is C' is not assignable to 'p1 is B'. -!!! error TS2345: Type 'C' is not assignable to type 'B'. +!!! error TS2345: Type predicate 'p1 is C' is not assignable to 'p1 is B'. +!!! error TS2345: Type 'C' is not assignable to type 'B'. // Boolean not assignable to type guard var assign1: (p1, p2) => p1 is A; assign1 = function(p1, p2): boolean { ~~~~~~~ !!! error TS2322: Type '(p1: any, p2: any) => boolean' is not assignable to type '(p1: any, p2: any) => p1 is A'. -!!! error TS2322: Signature '(p1: any, p2: any): p1 is A' has no corresponding signature in '(p1: any, p2: any) => boolean' -!!! error TS2322: Signature '(p1: any, p2: any): boolean' must have a type predicate. +!!! error TS2322: Signature '(p1: any, p2: any): boolean' must have a type predicate. return true; }; @@ -170,9 +164,8 @@ tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(137,39 assign2 = function(p1, p2): p2 is A { ~~~~~~~ !!! error TS2322: Type '(p1: any, p2: any) => p2 is A' is not assignable to type '(p1: any, p2: any) => p1 is A'. -!!! error TS2322: Signature '(p1: any, p2: any): p1 is A' has no corresponding signature in '(p1: any, p2: any) => p2 is A' -!!! error TS2322: Type predicate 'p2 is A' is not assignable to 'p1 is A'. -!!! error TS2322: Parameter 'p2' is not in the same position as parameter 'p1'. +!!! error TS2322: Type predicate 'p2 is A' is not assignable to 'p1 is A'. +!!! error TS2322: Parameter 'p2' is not in the same position as parameter 'p1'. return true; }; @@ -181,7 +174,6 @@ tests/cases/conformance/expressions/typeGuards/typeGuardFunctionErrors.ts(137,39 assign3 = function(p1, p2, p3): p1 is A { ~~~~~~~ !!! error TS2322: Type '(p1: any, p2: any, p3: any) => p1 is A' is not assignable to type '(p1: any, p2: any) => p1 is A'. -!!! error TS2322: Signature '(p1: any, p2: any): p1 is A' has no corresponding signature in '(p1: any, p2: any, p3: any) => p1 is A' return true; }; diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence.errors.txt b/tests/baselines/reference/typeParameterArgumentEquivalence.errors.txt index 789820116ba..f47266f2850 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence.errors.txt +++ b/tests/baselines/reference/typeParameterArgumentEquivalence.errors.txt @@ -1,11 +1,9 @@ tests/cases/compiler/typeParameterArgumentEquivalence.ts(4,5): error TS2322: Type '(item: T) => boolean' is not assignable to type '(item: number) => boolean'. - Signature '(item: number): boolean' has no corresponding signature in '(item: T) => boolean' - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'number'. + Types of parameters 'item' and 'item' are incompatible. + Type 'T' is not assignable to type 'number'. tests/cases/compiler/typeParameterArgumentEquivalence.ts(5,5): error TS2322: Type '(item: number) => boolean' is not assignable to type '(item: T) => boolean'. - Signature '(item: T): boolean' has no corresponding signature in '(item: number) => boolean' - Types of parameters 'item' and 'item' are incompatible. - Type 'number' is not assignable to type 'T'. + Types of parameters 'item' and 'item' are incompatible. + Type 'number' is not assignable to type 'T'. ==== tests/cases/compiler/typeParameterArgumentEquivalence.ts (2 errors) ==== @@ -15,14 +13,12 @@ tests/cases/compiler/typeParameterArgumentEquivalence.ts(5,5): error TS2322: Typ x = y; // Should be an error ~ !!! error TS2322: Type '(item: T) => boolean' is not assignable to type '(item: number) => boolean'. -!!! error TS2322: Signature '(item: number): boolean' has no corresponding signature in '(item: T) => boolean' -!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. -!!! error TS2322: Type 'T' is not assignable to type 'number'. +!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. +!!! error TS2322: Type 'T' is not assignable to type 'number'. y = x; // Shound be an error ~ !!! error TS2322: Type '(item: number) => boolean' is not assignable to type '(item: T) => boolean'. -!!! error TS2322: Signature '(item: T): boolean' has no corresponding signature in '(item: number) => boolean' -!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type 'T'. +!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. +!!! error TS2322: Type 'number' is not assignable to type 'T'. } \ No newline at end of file diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence2.errors.txt b/tests/baselines/reference/typeParameterArgumentEquivalence2.errors.txt index a50fd533ae6..2aa8d77ba6d 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence2.errors.txt +++ b/tests/baselines/reference/typeParameterArgumentEquivalence2.errors.txt @@ -1,11 +1,9 @@ tests/cases/compiler/typeParameterArgumentEquivalence2.ts(4,5): error TS2322: Type '(item: T) => boolean' is not assignable to type '(item: U) => boolean'. - Signature '(item: U): boolean' has no corresponding signature in '(item: T) => boolean' - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'U'. + Types of parameters 'item' and 'item' are incompatible. + Type 'T' is not assignable to type 'U'. tests/cases/compiler/typeParameterArgumentEquivalence2.ts(5,5): error TS2322: Type '(item: U) => boolean' is not assignable to type '(item: T) => boolean'. - Signature '(item: T): boolean' has no corresponding signature in '(item: U) => boolean' - Types of parameters 'item' and 'item' are incompatible. - Type 'U' is not assignable to type 'T'. + Types of parameters 'item' and 'item' are incompatible. + Type 'U' is not assignable to type 'T'. ==== tests/cases/compiler/typeParameterArgumentEquivalence2.ts (2 errors) ==== @@ -15,14 +13,12 @@ tests/cases/compiler/typeParameterArgumentEquivalence2.ts(5,5): error TS2322: Ty x = y; // Should be an error ~ !!! error TS2322: Type '(item: T) => boolean' is not assignable to type '(item: U) => boolean'. -!!! error TS2322: Signature '(item: U): boolean' has no corresponding signature in '(item: T) => boolean' -!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. -!!! error TS2322: Type 'T' is not assignable to type 'U'. +!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. +!!! error TS2322: Type 'T' is not assignable to type 'U'. y = x; // Shound be an error ~ !!! error TS2322: Type '(item: U) => boolean' is not assignable to type '(item: T) => boolean'. -!!! error TS2322: Signature '(item: T): boolean' has no corresponding signature in '(item: U) => boolean' -!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. -!!! error TS2322: Type 'U' is not assignable to type 'T'. +!!! error TS2322: Types of parameters 'item' and 'item' are incompatible. +!!! error TS2322: Type 'U' is not assignable to type 'T'. } \ No newline at end of file diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence3.errors.txt b/tests/baselines/reference/typeParameterArgumentEquivalence3.errors.txt index 50e33c7afa4..1f126d7c00d 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence3.errors.txt +++ b/tests/baselines/reference/typeParameterArgumentEquivalence3.errors.txt @@ -1,9 +1,7 @@ tests/cases/compiler/typeParameterArgumentEquivalence3.ts(4,5): error TS2322: Type '(item: any) => boolean' is not assignable to type '(item: any) => T'. - Signature '(item: any): T' has no corresponding signature in '(item: any) => boolean' - Type 'boolean' is not assignable to type 'T'. + Type 'boolean' is not assignable to type 'T'. tests/cases/compiler/typeParameterArgumentEquivalence3.ts(5,5): error TS2322: Type '(item: any) => T' is not assignable to type '(item: any) => boolean'. - Signature '(item: any): boolean' has no corresponding signature in '(item: any) => T' - Type 'T' is not assignable to type 'boolean'. + Type 'T' is not assignable to type 'boolean'. ==== tests/cases/compiler/typeParameterArgumentEquivalence3.ts (2 errors) ==== @@ -13,12 +11,10 @@ tests/cases/compiler/typeParameterArgumentEquivalence3.ts(5,5): error TS2322: Ty x = y; // Should be an error ~ !!! error TS2322: Type '(item: any) => boolean' is not assignable to type '(item: any) => T'. -!!! error TS2322: Signature '(item: any): T' has no corresponding signature in '(item: any) => boolean' -!!! error TS2322: Type 'boolean' is not assignable to type 'T'. +!!! error TS2322: Type 'boolean' is not assignable to type 'T'. y = x; // Shound be an error ~ !!! error TS2322: Type '(item: any) => T' is not assignable to type '(item: any) => boolean'. -!!! error TS2322: Signature '(item: any): boolean' has no corresponding signature in '(item: any) => T' -!!! error TS2322: Type 'T' is not assignable to type 'boolean'. +!!! error TS2322: Type 'T' is not assignable to type 'boolean'. } \ No newline at end of file diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence4.errors.txt b/tests/baselines/reference/typeParameterArgumentEquivalence4.errors.txt index 68ab8dc28df..c7b19e8725c 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence4.errors.txt +++ b/tests/baselines/reference/typeParameterArgumentEquivalence4.errors.txt @@ -1,9 +1,7 @@ tests/cases/compiler/typeParameterArgumentEquivalence4.ts(4,5): error TS2322: Type '(item: any) => T' is not assignable to type '(item: any) => U'. - Signature '(item: any): U' has no corresponding signature in '(item: any) => T' - Type 'T' is not assignable to type 'U'. + Type 'T' is not assignable to type 'U'. tests/cases/compiler/typeParameterArgumentEquivalence4.ts(5,5): error TS2322: Type '(item: any) => U' is not assignable to type '(item: any) => T'. - Signature '(item: any): T' has no corresponding signature in '(item: any) => U' - Type 'U' is not assignable to type 'T'. + Type 'U' is not assignable to type 'T'. ==== tests/cases/compiler/typeParameterArgumentEquivalence4.ts (2 errors) ==== @@ -13,12 +11,10 @@ tests/cases/compiler/typeParameterArgumentEquivalence4.ts(5,5): error TS2322: Ty x = y; // Should be an error ~ !!! error TS2322: Type '(item: any) => T' is not assignable to type '(item: any) => U'. -!!! error TS2322: Signature '(item: any): U' has no corresponding signature in '(item: any) => T' -!!! error TS2322: Type 'T' is not assignable to type 'U'. +!!! error TS2322: Type 'T' is not assignable to type 'U'. y = x; // Shound be an error ~ !!! error TS2322: Type '(item: any) => U' is not assignable to type '(item: any) => T'. -!!! error TS2322: Signature '(item: any): T' has no corresponding signature in '(item: any) => U' -!!! error TS2322: Type 'U' is not assignable to type 'T'. +!!! error TS2322: Type 'U' is not assignable to type 'T'. } \ No newline at end of file diff --git a/tests/baselines/reference/typeParameterArgumentEquivalence5.errors.txt b/tests/baselines/reference/typeParameterArgumentEquivalence5.errors.txt index 8e1ac388a82..82290733a9e 100644 --- a/tests/baselines/reference/typeParameterArgumentEquivalence5.errors.txt +++ b/tests/baselines/reference/typeParameterArgumentEquivalence5.errors.txt @@ -1,13 +1,9 @@ tests/cases/compiler/typeParameterArgumentEquivalence5.ts(4,5): error TS2322: Type '() => (item: any) => T' is not assignable to type '() => (item: any) => U'. - Signature '(): (item: any) => U' has no corresponding signature in '() => (item: any) => T' - Type '(item: any) => T' is not assignable to type '(item: any) => U'. - Signature '(item: any): U' has no corresponding signature in '(item: any) => T' - Type 'T' is not assignable to type 'U'. + Type '(item: any) => T' is not assignable to type '(item: any) => U'. + Type 'T' is not assignable to type 'U'. tests/cases/compiler/typeParameterArgumentEquivalence5.ts(5,5): error TS2322: Type '() => (item: any) => U' is not assignable to type '() => (item: any) => T'. - Signature '(): (item: any) => T' has no corresponding signature in '() => (item: any) => U' - Type '(item: any) => U' is not assignable to type '(item: any) => T'. - Signature '(item: any): T' has no corresponding signature in '(item: any) => U' - Type 'U' is not assignable to type 'T'. + Type '(item: any) => U' is not assignable to type '(item: any) => T'. + Type 'U' is not assignable to type 'T'. ==== tests/cases/compiler/typeParameterArgumentEquivalence5.ts (2 errors) ==== @@ -17,16 +13,12 @@ tests/cases/compiler/typeParameterArgumentEquivalence5.ts(5,5): error TS2322: Ty x = y; // Should be an error ~ !!! error TS2322: Type '() => (item: any) => T' is not assignable to type '() => (item: any) => U'. -!!! error TS2322: Signature '(): (item: any) => U' has no corresponding signature in '() => (item: any) => T' -!!! error TS2322: Type '(item: any) => T' is not assignable to type '(item: any) => U'. -!!! error TS2322: Signature '(item: any): U' has no corresponding signature in '(item: any) => T' -!!! error TS2322: Type 'T' is not assignable to type 'U'. +!!! error TS2322: Type '(item: any) => T' is not assignable to type '(item: any) => U'. +!!! error TS2322: Type 'T' is not assignable to type 'U'. y = x; // Shound be an error ~ !!! error TS2322: Type '() => (item: any) => U' is not assignable to type '() => (item: any) => T'. -!!! error TS2322: Signature '(): (item: any) => T' has no corresponding signature in '() => (item: any) => U' -!!! error TS2322: Type '(item: any) => U' is not assignable to type '(item: any) => T'. -!!! error TS2322: Signature '(item: any): T' has no corresponding signature in '(item: any) => U' -!!! error TS2322: Type 'U' is not assignable to type 'T'. +!!! error TS2322: Type '(item: any) => U' is not assignable to type '(item: any) => T'. +!!! error TS2322: Type 'U' is not assignable to type 'T'. } \ No newline at end of file diff --git a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments2.errors.txt b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments2.errors.txt index 8d926a14378..5a6047222ee 100644 --- a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments2.errors.txt +++ b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments2.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments2.ts(7,25): error TS2345: Argument of type '(x: A) => A' is not assignable to parameter of type '(x: A) => B'. - Signature '(x: A): B' has no corresponding signature in '(x: A) => A' - Type 'A' is not assignable to type 'B'. - Property 'b' is missing in type 'A'. + Type 'A' is not assignable to type 'B'. + Property 'b' is missing in type 'A'. ==== tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments2.ts (1 errors) ==== @@ -14,6 +13,5 @@ tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments2.ts(7,25): var d = f(a, b, x => x, x => x); // A => A not assignable to A => B ~~~~~~ !!! error TS2345: Argument of type '(x: A) => A' is not assignable to parameter of type '(x: A) => B'. -!!! error TS2345: Signature '(x: A): B' has no corresponding signature in '(x: A) => A' -!!! error TS2345: Type 'A' is not assignable to type 'B'. -!!! error TS2345: Property 'b' is missing in type 'A'. \ No newline at end of file +!!! error TS2345: Type 'A' is not assignable to type 'B'. +!!! error TS2345: Property 'b' is missing in type 'A'. \ No newline at end of file diff --git a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments3.errors.txt b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments3.errors.txt index c93aa87f44b..cd0801f7ba9 100644 --- a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments3.errors.txt +++ b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments3.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments3.ts(7,29): error TS2345: Argument of type '(t2: A) => A' is not assignable to parameter of type '(t2: A) => B'. - Signature '(t2: A): B' has no corresponding signature in '(t2: A) => A' - Type 'A' is not assignable to type 'B'. - Property 'b' is missing in type 'A'. + Type 'A' is not assignable to type 'B'. + Property 'b' is missing in type 'A'. ==== tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments3.ts (1 errors) ==== @@ -14,6 +13,5 @@ tests/cases/compiler/typeParameterFixingWithContextSensitiveArguments3.ts(7,29): var d = f(a, b, u2 => u2.b, t2 => t2); ~~~~~~~~ !!! error TS2345: Argument of type '(t2: A) => A' is not assignable to parameter of type '(t2: A) => B'. -!!! error TS2345: Signature '(t2: A): B' has no corresponding signature in '(t2: A) => A' -!!! error TS2345: Type 'A' is not assignable to type 'B'. -!!! error TS2345: Property 'b' is missing in type 'A'. \ No newline at end of file +!!! error TS2345: Type 'A' is not assignable to type 'B'. +!!! error TS2345: Property 'b' is missing in type 'A'. \ No newline at end of file diff --git a/tests/baselines/reference/undeclaredModuleError.errors.txt b/tests/baselines/reference/undeclaredModuleError.errors.txt index 3c1f930856c..74e36318595 100644 --- a/tests/baselines/reference/undeclaredModuleError.errors.txt +++ b/tests/baselines/reference/undeclaredModuleError.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/undeclaredModuleError.ts(1,21): error TS2307: Cannot find module 'fs'. tests/cases/compiler/undeclaredModuleError.ts(8,29): error TS2345: Argument of type '() => void' is not assignable to parameter of type '(stat: any, name: string) => boolean'. - Signature '(stat: any, name: string): boolean' has no corresponding signature in '() => void' - Type 'void' is not assignable to type 'boolean'. + Type 'void' is not assignable to type 'boolean'. tests/cases/compiler/undeclaredModuleError.ts(11,41): error TS2304: Cannot find name 'IDoNotExist'. @@ -20,8 +19,7 @@ tests/cases/compiler/undeclaredModuleError.ts(11,41): error TS2304: Cannot find } , (error: Error, files: {}[]) => { ~~~~~~~~~ !!! error TS2345: Argument of type '() => void' is not assignable to parameter of type '(stat: any, name: string) => boolean'. -!!! error TS2345: Signature '(stat: any, name: string): boolean' has no corresponding signature in '() => void' -!!! error TS2345: Type 'void' is not assignable to type 'boolean'. +!!! error TS2345: Type 'void' is not assignable to type 'boolean'. files.forEach((file) => { var fullPath = join(IDoNotExist); ~~~~~~~~~~~ From c87c1e9b3fd461ca02c94efc3f69ba3e73ba7d01 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Wed, 25 Nov 2015 10:51:31 -0800 Subject: [PATCH 034/103] Improve error message And accept baselines --- src/compiler/checker.ts | 6 +- src/compiler/diagnosticMessages.json | 2 +- .../baselines/reference/assignToFn.errors.txt | 4 +- ...ntCompatWithConstructSignatures.errors.txt | 32 ++++----- ...tCompatWithConstructSignatures2.errors.txt | 16 ++--- ...tCompatWithConstructSignatures4.errors.txt | 8 +-- .../assignmentCompatability24.errors.txt | 4 +- .../assignmentCompatability33.errors.txt | 4 +- .../assignmentCompatability34.errors.txt | 4 +- .../assignmentCompatability37.errors.txt | 4 +- .../assignmentCompatability38.errors.txt | 4 +- .../reference/assignmentToObject.errors.txt | 4 +- .../assignmentToObjectAndFunction.errors.txt | 8 +-- .../callConstructAssignment.errors.txt | 8 +-- ...ssignabilityConstructorFunction.errors.txt | 4 +- .../reference/constructorAsType.errors.txt | 4 +- .../reference/contextualTyping24.errors.txt | 4 +- .../reference/enumAssignability.errors.txt | 12 ++-- tests/baselines/reference/for-of30.errors.txt | 4 +- ...functionConstraintSatisfaction2.errors.txt | 24 +++---- .../reference/generatorTypeCheck31.errors.txt | 4 +- ...lWithGenericSignatureArguments3.errors.txt | 4 +- .../reference/incompatibleTypes.errors.txt | 4 +- ...eMemberAccessorOverridingMethod.errors.txt | 4 +- ...eStaticAccessorOverridingMethod.errors.txt | 4 +- ...eStaticPropertyOverridingMethod.errors.txt | 4 +- .../reference/intTypeCheck.errors.txt | 72 +++++++++---------- .../interfaceImplementation1.errors.txt | 4 +- .../invalidBooleanAssignments.errors.txt | 4 +- ...mbersOfFunctionAssignmentCompat.errors.txt | 8 +-- ...mbersOfFunctionAssignmentCompat.errors.txt | 8 +-- .../overloadOnConstInheritance2.errors.txt | 4 +- .../overloadOnConstInheritance3.errors.txt | 4 +- .../baselines/reference/parseTypes.errors.txt | 4 +- ...serAutomaticSemicolonInsertion1.errors.txt | 8 +-- .../reference/propertyAssignment.errors.txt | 8 +-- tests/baselines/reference/qualify.errors.txt | 8 +-- .../recursiveFunctionTypes.errors.txt | 20 +++--- .../reference/targetTypeVoidFunc.errors.txt | 4 +- .../baselines/reference/typeName1.errors.txt | 8 +-- .../typesWithPrivateConstructor.errors.txt | 4 +- .../typesWithPublicConstructor.errors.txt | 4 +- 42 files changed, 178 insertions(+), 178 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index d490004ae76..4be22e4499e 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5454,9 +5454,9 @@ namespace ts { } } if (localErrors) { - reportError(Diagnostics.Signature_0_has_no_corresponding_signature_in_1, - signatureToString(t, /*enclosingDeclaration*/ undefined, /*flags*/ undefined, kind), - typeToString(source)); + reportError(Diagnostics.Type_0_provides_no_match_for_the_signature_1, + typeToString(source), + signatureToString(t, /*enclosingDeclaration*/ undefined, /*flags*/ undefined, kind)); } return Ternary.False; } diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index d0e62b353c6..6ee25911d68 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1724,7 +1724,7 @@ "category": "Error", "code": 2657 }, - "Signature '{0}' has no corresponding signature in '{1}'": { + "Type '{0}' provides no match for the signature '{1}'": { "category": "Error", "code": 2658 }, diff --git a/tests/baselines/reference/assignToFn.errors.txt b/tests/baselines/reference/assignToFn.errors.txt index 2b2b2a5366f..0456a6faa5e 100644 --- a/tests/baselines/reference/assignToFn.errors.txt +++ b/tests/baselines/reference/assignToFn.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/assignToFn.ts(8,5): error TS2322: Type 'string' is not assignable to type '(n: number) => boolean'. - Signature '(n: number): boolean' has no corresponding signature in 'String' + Type 'String' provides no match for the signature '(n: number): boolean' ==== tests/cases/compiler/assignToFn.ts (1 errors) ==== @@ -13,6 +13,6 @@ tests/cases/compiler/assignToFn.ts(8,5): error TS2322: Type 'string' is not assi x.f="hello"; ~~~ !!! error TS2322: Type 'string' is not assignable to type '(n: number) => boolean'. -!!! error TS2322: Signature '(n: number): boolean' has no corresponding signature in 'String' +!!! error TS2322: Type 'String' provides no match for the signature '(n: number): boolean' } \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures.errors.txt b/tests/baselines/reference/assignmentCompatWithConstructSignatures.errors.txt index dfefb83af2f..8e285d414e5 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures.errors.txt @@ -1,19 +1,19 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(28,1): error TS2322: Type 'S2' is not assignable to type 'T'. - Signature 'new (x: number): void' has no corresponding signature in 'S2' + Type 'S2' provides no match for the signature 'new (x: number): void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(29,1): error TS2322: Type '(x: string) => void' is not assignable to type 'T'. - Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' + Type '(x: string) => void' provides no match for the signature 'new (x: number): void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(30,1): error TS2322: Type '(x: string) => number' is not assignable to type 'T'. - Signature 'new (x: number): void' has no corresponding signature in '(x: string) => number' + Type '(x: string) => number' provides no match for the signature 'new (x: number): void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(31,1): error TS2322: Type '(x: string) => string' is not assignable to type 'T'. - Signature 'new (x: number): void' has no corresponding signature in '(x: string) => string' + Type '(x: string) => string' provides no match for the signature 'new (x: number): void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(32,1): error TS2322: Type 'S2' is not assignable to type 'new (x: number) => void'. - Signature 'new (x: number): void' has no corresponding signature in 'S2' + Type 'S2' provides no match for the signature 'new (x: number): void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(33,1): error TS2322: Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. - Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' + Type '(x: string) => void' provides no match for the signature 'new (x: number): void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(34,1): error TS2322: Type '(x: string) => number' is not assignable to type 'new (x: number) => void'. - Signature 'new (x: number): void' has no corresponding signature in '(x: string) => number' + Type '(x: string) => number' provides no match for the signature 'new (x: number): void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts(35,1): error TS2322: Type '(x: string) => string' is not assignable to type 'new (x: number) => void'. - Signature 'new (x: number): void' has no corresponding signature in '(x: string) => string' + Type '(x: string) => string' provides no match for the signature 'new (x: number): void' ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures.ts (8 errors) ==== @@ -47,33 +47,33 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme t = s2; ~ !!! error TS2322: Type 'S2' is not assignable to type 'T'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in 'S2' +!!! error TS2322: Type 'S2' provides no match for the signature 'new (x: number): void' t = a3; ~ !!! error TS2322: Type '(x: string) => void' is not assignable to type 'T'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Type '(x: string) => void' provides no match for the signature 'new (x: number): void' t = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type 'T'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => number' +!!! error TS2322: Type '(x: string) => number' provides no match for the signature 'new (x: number): void' t = function (x: string) { return ''; } ~ !!! error TS2322: Type '(x: string) => string' is not assignable to type 'T'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => string' +!!! error TS2322: Type '(x: string) => string' provides no match for the signature 'new (x: number): void' a = s2; ~ !!! error TS2322: Type 'S2' is not assignable to type 'new (x: number) => void'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in 'S2' +!!! error TS2322: Type 'S2' provides no match for the signature 'new (x: number): void' a = a3; ~ !!! error TS2322: Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Type '(x: string) => void' provides no match for the signature 'new (x: number): void' a = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type 'new (x: number) => void'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => number' +!!! error TS2322: Type '(x: string) => number' provides no match for the signature 'new (x: number): void' a = function (x: string) { return ''; } ~ !!! error TS2322: Type '(x: string) => string' is not assignable to type 'new (x: number) => void'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => string' +!!! error TS2322: Type '(x: string) => string' provides no match for the signature 'new (x: number): void' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures2.errors.txt b/tests/baselines/reference/assignmentCompatWithConstructSignatures2.errors.txt index ab181157b6e..eacf758d935 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures2.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures2.errors.txt @@ -9,11 +9,11 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(34,1): error TS2322: Type 'S2' is not assignable to type 'T'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. - Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' + Type '(x: string) => void' provides no match for the signature 'new (x: number): void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(35,1): error TS2322: Type '{ f(x: string): void; }' is not assignable to type 'T'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. - Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' + Type '(x: string) => void' provides no match for the signature 'new (x: number): void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(36,1): error TS2322: Type '(x: string) => number' is not assignable to type 'T'. Property 'f' is missing in type '(x: string) => number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(37,1): error TS2322: Type '(x: string) => string' is not assignable to type 'T'. @@ -21,11 +21,11 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(38,1): error TS2322: Type 'S2' is not assignable to type '{ f: new (x: number) => void; }'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. - Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' + Type '(x: string) => void' provides no match for the signature 'new (x: number): void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(39,1): error TS2322: Type '{ f(x: string): void; }' is not assignable to type '{ f: new (x: number) => void; }'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. - Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' + Type '(x: string) => void' provides no match for the signature 'new (x: number): void' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(40,1): error TS2322: Type '(x: string) => number' is not assignable to type '{ f: new (x: number) => void; }'. Property 'f' is missing in type '(x: string) => number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(41,1): error TS2322: Type '(x: string) => string' is not assignable to type '{ f: new (x: number) => void; }'. @@ -83,13 +83,13 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type 'S2' is not assignable to type 'T'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Type '(x: string) => void' provides no match for the signature 'new (x: number): void' t = a3; ~ !!! error TS2322: Type '{ f(x: string): void; }' is not assignable to type 'T'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Type '(x: string) => void' provides no match for the signature 'new (x: number): void' t = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type 'T'. @@ -103,13 +103,13 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type 'S2' is not assignable to type '{ f: new (x: number) => void; }'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Type '(x: string) => void' provides no match for the signature 'new (x: number): void' a = a3; ~ !!! error TS2322: Type '{ f(x: string): void; }' is not assignable to type '{ f: new (x: number) => void; }'. !!! error TS2322: Types of property 'f' are incompatible. !!! error TS2322: Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. -!!! error TS2322: Signature 'new (x: number): void' has no corresponding signature in '(x: string) => void' +!!! error TS2322: Type '(x: string) => void' provides no match for the signature 'new (x: number): void' a = (x: string) => 1; ~ !!! error TS2322: Type '(x: string) => number' is not assignable to type '{ f: new (x: number) => void; }'. diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt index 8835b6280c4..6cd40f6c8c1 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt @@ -11,14 +11,14 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(77,9): error TS2322: Type 'new (x: (a: T) => T) => T[]' is not assignable to type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }'. Types of parameters 'x' and 'x' are incompatible. Type '(a: any) => any' is not assignable to type '{ new (a: number): number; new (a?: number): number; }'. - Signature 'new (a: number): number' has no corresponding signature in '(a: any) => any' + Type '(a: any) => any' provides no match for the signature 'new (a: number): number' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(78,9): error TS2322: Type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }' is not assignable to type 'new (x: (a: T) => T) => T[]'. Types of parameters 'x' and 'x' are incompatible. Type '{ new (a: number): number; new (a?: number): number; }' is not assignable to type '(a: any) => any'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(81,9): error TS2322: Type 'new (x: (a: T) => T) => any[]' is not assignable to type '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }'. Types of parameters 'x' and 'x' are incompatible. Type '(a: any) => any' is not assignable to type '{ new (a: T): T; new (a: T): T; }'. - Signature 'new (a: T): T' has no corresponding signature in '(a: any) => any' + Type '(a: any) => any' provides no match for the signature 'new (a: T): T' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures4.ts(82,9): error TS2322: Type '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }' is not assignable to type 'new (x: (a: T) => T) => any[]'. Types of parameters 'x' and 'x' are incompatible. Type '{ new (a: T): T; new (a: T): T; }' is not assignable to type '(a: any) => any'. @@ -118,7 +118,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type 'new (x: (a: T) => T) => T[]' is not assignable to type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }'. !!! error TS2322: Types of parameters 'x' and 'x' are incompatible. !!! error TS2322: Type '(a: any) => any' is not assignable to type '{ new (a: number): number; new (a?: number): number; }'. -!!! error TS2322: Signature 'new (a: number): number' has no corresponding signature in '(a: any) => any' +!!! error TS2322: Type '(a: any) => any' provides no match for the signature 'new (a: number): number' b16 = a16; // error ~~~ !!! error TS2322: Type '{ new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }' is not assignable to type 'new (x: (a: T) => T) => T[]'. @@ -131,7 +131,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type 'new (x: (a: T) => T) => any[]' is not assignable to type '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }'. !!! error TS2322: Types of parameters 'x' and 'x' are incompatible. !!! error TS2322: Type '(a: any) => any' is not assignable to type '{ new (a: T): T; new (a: T): T; }'. -!!! error TS2322: Signature 'new (a: T): T' has no corresponding signature in '(a: any) => any' +!!! error TS2322: Type '(a: any) => any' provides no match for the signature 'new (a: T): T' b17 = a17; // error ~~~ !!! error TS2322: Type '{ new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }' is not assignable to type 'new (x: (a: T) => T) => any[]'. diff --git a/tests/baselines/reference/assignmentCompatability24.errors.txt b/tests/baselines/reference/assignmentCompatability24.errors.txt index 69c0bd2b288..e49f0803b04 100644 --- a/tests/baselines/reference/assignmentCompatability24.errors.txt +++ b/tests/baselines/reference/assignmentCompatability24.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/assignmentCompatability24.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tstring) => Tstring'. - Signature '(a: Tstring): Tstring' has no corresponding signature in 'interfaceWithPublicAndOptional' + Type 'interfaceWithPublicAndOptional' provides no match for the signature '(a: Tstring): Tstring' ==== tests/cases/compiler/assignmentCompatability24.ts (1 errors) ==== @@ -14,4 +14,4 @@ tests/cases/compiler/assignmentCompatability24.ts(9,1): error TS2322: Type 'inte __test2__.__val__obj = __test1__.__val__obj4 ~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tstring) => Tstring'. -!!! error TS2322: Signature '(a: Tstring): Tstring' has no corresponding signature in 'interfaceWithPublicAndOptional' \ No newline at end of file +!!! error TS2322: Type 'interfaceWithPublicAndOptional' provides no match for the signature '(a: Tstring): Tstring' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatability33.errors.txt b/tests/baselines/reference/assignmentCompatability33.errors.txt index 50e173b1202..386b3c5e292 100644 --- a/tests/baselines/reference/assignmentCompatability33.errors.txt +++ b/tests/baselines/reference/assignmentCompatability33.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/assignmentCompatability33.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tstring) => Tstring'. - Signature '(a: Tstring): Tstring' has no corresponding signature in 'interfaceWithPublicAndOptional' + Type 'interfaceWithPublicAndOptional' provides no match for the signature '(a: Tstring): Tstring' ==== tests/cases/compiler/assignmentCompatability33.ts (1 errors) ==== @@ -14,4 +14,4 @@ tests/cases/compiler/assignmentCompatability33.ts(9,1): error TS2322: Type 'inte __test2__.__val__obj = __test1__.__val__obj4 ~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tstring) => Tstring'. -!!! error TS2322: Signature '(a: Tstring): Tstring' has no corresponding signature in 'interfaceWithPublicAndOptional' \ No newline at end of file +!!! error TS2322: Type 'interfaceWithPublicAndOptional' provides no match for the signature '(a: Tstring): Tstring' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatability34.errors.txt b/tests/baselines/reference/assignmentCompatability34.errors.txt index 2f0bca9dff2..fa91456b286 100644 --- a/tests/baselines/reference/assignmentCompatability34.errors.txt +++ b/tests/baselines/reference/assignmentCompatability34.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/assignmentCompatability34.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tnumber) => Tnumber'. - Signature '(a: Tnumber): Tnumber' has no corresponding signature in 'interfaceWithPublicAndOptional' + Type 'interfaceWithPublicAndOptional' provides no match for the signature '(a: Tnumber): Tnumber' ==== tests/cases/compiler/assignmentCompatability34.ts (1 errors) ==== @@ -14,4 +14,4 @@ tests/cases/compiler/assignmentCompatability34.ts(9,1): error TS2322: Type 'inte __test2__.__val__obj = __test1__.__val__obj4 ~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type '(a: Tnumber) => Tnumber'. -!!! error TS2322: Signature '(a: Tnumber): Tnumber' has no corresponding signature in 'interfaceWithPublicAndOptional' \ No newline at end of file +!!! error TS2322: Type 'interfaceWithPublicAndOptional' provides no match for the signature '(a: Tnumber): Tnumber' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatability37.errors.txt b/tests/baselines/reference/assignmentCompatability37.errors.txt index f965d49a0da..194e216f1ee 100644 --- a/tests/baselines/reference/assignmentCompatability37.errors.txt +++ b/tests/baselines/reference/assignmentCompatability37.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/assignmentCompatability37.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type 'new (param: Tnumber) => any'. - Signature 'new (param: Tnumber): any' has no corresponding signature in 'interfaceWithPublicAndOptional' + Type 'interfaceWithPublicAndOptional' provides no match for the signature 'new (param: Tnumber): any' ==== tests/cases/compiler/assignmentCompatability37.ts (1 errors) ==== @@ -14,4 +14,4 @@ tests/cases/compiler/assignmentCompatability37.ts(9,1): error TS2322: Type 'inte __test2__.__val__aa = __test1__.__val__obj4 ~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type 'new (param: Tnumber) => any'. -!!! error TS2322: Signature 'new (param: Tnumber): any' has no corresponding signature in 'interfaceWithPublicAndOptional' \ No newline at end of file +!!! error TS2322: Type 'interfaceWithPublicAndOptional' provides no match for the signature 'new (param: Tnumber): any' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatability38.errors.txt b/tests/baselines/reference/assignmentCompatability38.errors.txt index 1a5540065cc..c15e5e31230 100644 --- a/tests/baselines/reference/assignmentCompatability38.errors.txt +++ b/tests/baselines/reference/assignmentCompatability38.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/assignmentCompatability38.ts(9,1): error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type 'new (param: Tstring) => any'. - Signature 'new (param: Tstring): any' has no corresponding signature in 'interfaceWithPublicAndOptional' + Type 'interfaceWithPublicAndOptional' provides no match for the signature 'new (param: Tstring): any' ==== tests/cases/compiler/assignmentCompatability38.ts (1 errors) ==== @@ -14,4 +14,4 @@ tests/cases/compiler/assignmentCompatability38.ts(9,1): error TS2322: Type 'inte __test2__.__val__aa = __test1__.__val__obj4 ~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type 'interfaceWithPublicAndOptional' is not assignable to type 'new (param: Tstring) => any'. -!!! error TS2322: Signature 'new (param: Tstring): any' has no corresponding signature in 'interfaceWithPublicAndOptional' \ No newline at end of file +!!! error TS2322: Type 'interfaceWithPublicAndOptional' provides no match for the signature 'new (param: Tstring): any' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentToObject.errors.txt b/tests/baselines/reference/assignmentToObject.errors.txt index 796f8430b84..ff5c9c12653 100644 --- a/tests/baselines/reference/assignmentToObject.errors.txt +++ b/tests/baselines/reference/assignmentToObject.errors.txt @@ -1,7 +1,7 @@ tests/cases/compiler/assignmentToObject.ts(3,5): error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type 'number' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(): string' ==== tests/cases/compiler/assignmentToObject.ts (1 errors) ==== @@ -12,5 +12,5 @@ tests/cases/compiler/assignmentToObject.ts(3,5): error TS2322: Type '{ toString: !!! error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type 'number' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in 'Number' +!!! error TS2322: Type 'Number' provides no match for the signature '(): string' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt b/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt index 881b29bf443..e13dc8f1f64 100644 --- a/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt +++ b/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt @@ -1,13 +1,13 @@ tests/cases/compiler/assignmentToObjectAndFunction.ts(1,5): error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type 'number' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(): string' tests/cases/compiler/assignmentToObjectAndFunction.ts(8,5): error TS2322: Type '{}' is not assignable to type 'Function'. Property 'apply' is missing in type '{}'. tests/cases/compiler/assignmentToObjectAndFunction.ts(29,5): error TS2322: Type 'typeof bad' is not assignable to type 'Function'. Types of property 'apply' are incompatible. Type 'number' is not assignable to type '(thisArg: any, argArray?: any) => any'. - Signature '(thisArg: any, argArray?: any): any' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(thisArg: any, argArray?: any): any' ==== tests/cases/compiler/assignmentToObjectAndFunction.ts (3 errors) ==== @@ -16,7 +16,7 @@ tests/cases/compiler/assignmentToObjectAndFunction.ts(29,5): error TS2322: Type !!! error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type 'number' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in 'Number' +!!! error TS2322: Type 'Number' provides no match for the signature '(): string' var goodObj: Object = { toString(x?) { return ""; @@ -52,4 +52,4 @@ tests/cases/compiler/assignmentToObjectAndFunction.ts(29,5): error TS2322: Type !!! error TS2322: Type 'typeof bad' is not assignable to type 'Function'. !!! error TS2322: Types of property 'apply' are incompatible. !!! error TS2322: Type 'number' is not assignable to type '(thisArg: any, argArray?: any) => any'. -!!! error TS2322: Signature '(thisArg: any, argArray?: any): any' has no corresponding signature in 'Number' \ No newline at end of file +!!! error TS2322: Type 'Number' provides no match for the signature '(thisArg: any, argArray?: any): any' \ No newline at end of file diff --git a/tests/baselines/reference/callConstructAssignment.errors.txt b/tests/baselines/reference/callConstructAssignment.errors.txt index e52d8b1f063..fc36e472151 100644 --- a/tests/baselines/reference/callConstructAssignment.errors.txt +++ b/tests/baselines/reference/callConstructAssignment.errors.txt @@ -1,7 +1,7 @@ tests/cases/compiler/callConstructAssignment.ts(7,1): error TS2322: Type 'new () => any' is not assignable to type '() => void'. - Signature '(): void' has no corresponding signature in 'new () => any' + Type 'new () => any' provides no match for the signature '(): void' tests/cases/compiler/callConstructAssignment.ts(8,1): error TS2322: Type '() => void' is not assignable to type 'new () => any'. - Signature 'new (): any' has no corresponding signature in '() => void' + Type '() => void' provides no match for the signature 'new (): any' ==== tests/cases/compiler/callConstructAssignment.ts (2 errors) ==== @@ -14,8 +14,8 @@ tests/cases/compiler/callConstructAssignment.ts(8,1): error TS2322: Type '() => foo = bar; // error ~~~ !!! error TS2322: Type 'new () => any' is not assignable to type '() => void'. -!!! error TS2322: Signature '(): void' has no corresponding signature in 'new () => any' +!!! error TS2322: Type 'new () => any' provides no match for the signature '(): void' bar = foo; // error ~~~ !!! error TS2322: Type '() => void' is not assignable to type 'new () => any'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in '() => void' \ No newline at end of file +!!! error TS2322: Type '() => void' provides no match for the signature 'new (): any' \ No newline at end of file diff --git a/tests/baselines/reference/classAbstractAssignabilityConstructorFunction.errors.txt b/tests/baselines/reference/classAbstractAssignabilityConstructorFunction.errors.txt index 5cb9a2e7f08..760bc9d8c43 100644 --- a/tests/baselines/reference/classAbstractAssignabilityConstructorFunction.errors.txt +++ b/tests/baselines/reference/classAbstractAssignabilityConstructorFunction.errors.txt @@ -1,7 +1,7 @@ tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAssignabilityConstructorFunction.ts(7,1): error TS2322: Type 'typeof A' is not assignable to type 'new () => A'. Cannot assign an abstract constructor type to a non-abstract constructor type. tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAssignabilityConstructorFunction.ts(8,1): error TS2322: Type 'string' is not assignable to type 'new () => A'. - Signature 'new (): A' has no corresponding signature in 'String' + Type 'String' provides no match for the signature 'new (): A' ==== tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAssignabilityConstructorFunction.ts (2 errors) ==== @@ -18,4 +18,4 @@ tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbst AAA = "asdf"; ~~~ !!! error TS2322: Type 'string' is not assignable to type 'new () => A'. -!!! error TS2322: Signature 'new (): A' has no corresponding signature in 'String' \ No newline at end of file +!!! error TS2322: Type 'String' provides no match for the signature 'new (): A' \ No newline at end of file diff --git a/tests/baselines/reference/constructorAsType.errors.txt b/tests/baselines/reference/constructorAsType.errors.txt index 3bf3dc688ed..7865a5ecac5 100644 --- a/tests/baselines/reference/constructorAsType.errors.txt +++ b/tests/baselines/reference/constructorAsType.errors.txt @@ -1,12 +1,12 @@ tests/cases/compiler/constructorAsType.ts(1,5): error TS2322: Type '() => { name: string; }' is not assignable to type 'new () => { name: string; }'. - Signature 'new (): { name: string; }' has no corresponding signature in '() => { name: string; }' + Type '() => { name: string; }' provides no match for the signature 'new (): { name: string; }' ==== tests/cases/compiler/constructorAsType.ts (1 errors) ==== var Person:new () => {name: string;} = function () {return {name:"joe"};}; ~~~~~~ !!! error TS2322: Type '() => { name: string; }' is not assignable to type 'new () => { name: string; }'. -!!! error TS2322: Signature 'new (): { name: string; }' has no corresponding signature in '() => { name: string; }' +!!! error TS2322: Type '() => { name: string; }' provides no match for the signature 'new (): { name: string; }' var Person2:{new() : {name:string;};}; diff --git a/tests/baselines/reference/contextualTyping24.errors.txt b/tests/baselines/reference/contextualTyping24.errors.txt index 68cb8e3d853..57a5543e57a 100644 --- a/tests/baselines/reference/contextualTyping24.errors.txt +++ b/tests/baselines/reference/contextualTyping24.errors.txt @@ -1,7 +1,7 @@ tests/cases/compiler/contextualTyping24.ts(1,55): error TS2322: Type '(a: string) => number' is not assignable to type '(a: { (): number; (i: number): number; }) => number'. Types of parameters 'a' and 'a' are incompatible. Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. - Signature '(): number' has no corresponding signature in 'String' + Type 'String' provides no match for the signature '(): number' ==== tests/cases/compiler/contextualTyping24.ts (1 errors) ==== @@ -10,4 +10,4 @@ tests/cases/compiler/contextualTyping24.ts(1,55): error TS2322: Type '(a: string !!! error TS2322: Type '(a: string) => number' is not assignable to type '(a: { (): number; (i: number): number; }) => number'. !!! error TS2322: Types of parameters 'a' and 'a' are incompatible. !!! error TS2322: Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. -!!! error TS2322: Signature '(): number' has no corresponding signature in 'String' \ No newline at end of file +!!! error TS2322: Type 'String' provides no match for the signature '(): number' \ No newline at end of file diff --git a/tests/baselines/reference/enumAssignability.errors.txt b/tests/baselines/reference/enumAssignability.errors.txt index 55e28ed97d9..5b12f6f941e 100644 --- a/tests/baselines/reference/enumAssignability.errors.txt +++ b/tests/baselines/reference/enumAssignability.errors.txt @@ -6,11 +6,11 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi Property 'toDateString' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(33,9): error TS2322: Type 'E' is not assignable to type 'void'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(36,9): error TS2322: Type 'E' is not assignable to type '() => {}'. - Signature '(): {}' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(): {}' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(37,9): error TS2322: Type 'E' is not assignable to type 'Function'. Property 'apply' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(38,9): error TS2322: Type 'E' is not assignable to type '(x: number) => string'. - Signature '(x: number): string' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(x: number): string' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(39,5): error TS2322: Type 'E' is not assignable to type 'C'. Property 'foo' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(40,5): error TS2322: Type 'E' is not assignable to type 'I'. @@ -20,7 +20,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(42,9): error TS2322: Type 'E' is not assignable to type '{ foo: string; }'. Property 'foo' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(43,9): error TS2322: Type 'E' is not assignable to type '(x: T) => T'. - Signature '(x: T): T' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(x: T): T' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(45,9): error TS2322: Type 'E' is not assignable to type 'String'. Property 'charAt' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(47,21): error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list. @@ -83,7 +83,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi var j: () => {} = e; ~ !!! error TS2322: Type 'E' is not assignable to type '() => {}'. -!!! error TS2322: Signature '(): {}' has no corresponding signature in 'Number' +!!! error TS2322: Type 'Number' provides no match for the signature '(): {}' var k: Function = e; ~ !!! error TS2322: Type 'E' is not assignable to type 'Function'. @@ -91,7 +91,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi var l: (x: number) => string = e; ~ !!! error TS2322: Type 'E' is not assignable to type '(x: number) => string'. -!!! error TS2322: Signature '(x: number): string' has no corresponding signature in 'Number' +!!! error TS2322: Type 'Number' provides no match for the signature '(x: number): string' ac = e; ~~ !!! error TS2322: Type 'E' is not assignable to type 'C'. @@ -111,7 +111,7 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi var o: (x: T) => T = e; ~ !!! error TS2322: Type 'E' is not assignable to type '(x: T) => T'. -!!! error TS2322: Signature '(x: T): T' has no corresponding signature in 'Number' +!!! error TS2322: Type 'Number' provides no match for the signature '(x: T): T' var p: Number = e; var q: String = e; ~ diff --git a/tests/baselines/reference/for-of30.errors.txt b/tests/baselines/reference/for-of30.errors.txt index 24dcb4dee53..528d14cf12b 100644 --- a/tests/baselines/reference/for-of30.errors.txt +++ b/tests/baselines/reference/for-of30.errors.txt @@ -4,7 +4,7 @@ tests/cases/conformance/es6/for-ofStatements/for-of30.ts(1,15): error TS2322: Ty Type 'StringIterator' is not assignable to type 'Iterator'. Types of property 'return' are incompatible. Type 'number' is not assignable to type '(value?: any) => IteratorResult'. - Signature '(value?: any): IteratorResult' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(value?: any): IteratorResult' ==== tests/cases/conformance/es6/for-ofStatements/for-of30.ts (1 errors) ==== @@ -16,7 +16,7 @@ tests/cases/conformance/es6/for-ofStatements/for-of30.ts(1,15): error TS2322: Ty !!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterator'. !!! error TS2322: Types of property 'return' are incompatible. !!! error TS2322: Type 'number' is not assignable to type '(value?: any) => IteratorResult'. -!!! error TS2322: Signature '(value?: any): IteratorResult' has no corresponding signature in 'Number' +!!! error TS2322: Type 'Number' provides no match for the signature '(value?: any): IteratorResult' class StringIterator { next() { diff --git a/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt b/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt index bfcb8bc8a3b..4f78636d08c 100644 --- a/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt +++ b/tests/baselines/reference/functionConstraintSatisfaction2.errors.txt @@ -3,21 +3,21 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(6,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(7,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(23,14): error TS2345: Argument of type 'Function' is not assignable to parameter of type '(x: string) => string'. - Signature '(x: string): string' has no corresponding signature in 'Function' + Type 'Function' provides no match for the signature '(x: string): string' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(24,15): error TS2345: Argument of type '(x: string[]) => string[]' is not assignable to parameter of type '(x: string) => string'. Types of parameters 'x' and 'x' are incompatible. Type 'string[]' is not assignable to type 'string'. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(25,15): error TS2345: Argument of type 'typeof C' is not assignable to parameter of type '(x: string) => string'. - Signature '(x: string): string' has no corresponding signature in 'typeof C' + Type 'typeof C' provides no match for the signature '(x: string): string' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(26,15): error TS2345: Argument of type 'new (x: string) => string' is not assignable to parameter of type '(x: string) => string'. - Signature '(x: string): string' has no corresponding signature in 'new (x: string) => string' + Type 'new (x: string) => string' provides no match for the signature '(x: string): string' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(28,16): error TS2345: Argument of type '(x: U, y: V) => U' is not assignable to parameter of type '(x: string) => string'. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(29,16): error TS2345: Argument of type 'typeof C2' is not assignable to parameter of type '(x: string) => string'. - Signature '(x: string): string' has no corresponding signature in 'typeof C2' + Type 'typeof C2' provides no match for the signature '(x: string): string' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(30,16): error TS2345: Argument of type 'new (x: T) => T' is not assignable to parameter of type '(x: string) => string'. - Signature '(x: string): string' has no corresponding signature in 'new (x: T) => T' + Type 'new (x: T) => T' provides no match for the signature '(x: string): string' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(34,16): error TS2345: Argument of type 'F2' is not assignable to parameter of type '(x: string) => string'. - Signature '(x: string): string' has no corresponding signature in 'F2' + Type 'F2' provides no match for the signature '(x: string): string' tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(36,38): error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list. tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction2.ts(37,10): error TS2345: Argument of type 'T' is not assignable to parameter of type '(x: string) => string'. Type '() => void' is not assignable to type '(x: string) => string'. @@ -57,7 +57,7 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain var r = foo2(new Function()); ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type 'Function' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Signature '(x: string): string' has no corresponding signature in 'Function' +!!! error TS2345: Type 'Function' provides no match for the signature '(x: string): string' var r2 = foo2((x: string[]) => x); ~~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(x: string[]) => string[]' is not assignable to parameter of type '(x: string) => string'. @@ -66,11 +66,11 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain var r6 = foo2(C); ~ !!! error TS2345: Argument of type 'typeof C' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Signature '(x: string): string' has no corresponding signature in 'typeof C' +!!! error TS2345: Type 'typeof C' provides no match for the signature '(x: string): string' var r7 = foo2(b); ~ !!! error TS2345: Argument of type 'new (x: string) => string' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Signature '(x: string): string' has no corresponding signature in 'new (x: string) => string' +!!! error TS2345: Type 'new (x: string) => string' provides no match for the signature '(x: string): string' var r8 = foo2((x: U) => x); // no error expected var r11 = foo2((x: U, y: V) => x); ~~~~~~~~~~~~~~~~~~~~~~~ @@ -78,18 +78,18 @@ tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstrain var r13 = foo2(C2); ~~ !!! error TS2345: Argument of type 'typeof C2' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Signature '(x: string): string' has no corresponding signature in 'typeof C2' +!!! error TS2345: Type 'typeof C2' provides no match for the signature '(x: string): string' var r14 = foo2(b2); ~~ !!! error TS2345: Argument of type 'new (x: T) => T' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Signature '(x: string): string' has no corresponding signature in 'new (x: T) => T' +!!! error TS2345: Type 'new (x: T) => T' provides no match for the signature '(x: string): string' interface F2 extends Function { foo: string; } var f2: F2; var r16 = foo2(f2); ~~ !!! error TS2345: Argument of type 'F2' is not assignable to parameter of type '(x: string) => string'. -!!! error TS2345: Signature '(x: string): string' has no corresponding signature in 'F2' +!!! error TS2345: Type 'F2' provides no match for the signature '(x: string): string' function fff(x: T, y: U) { ~~~~~~~~~~~ diff --git a/tests/baselines/reference/generatorTypeCheck31.errors.txt b/tests/baselines/reference/generatorTypeCheck31.errors.txt index 9b77bb178c9..3f54edacb2a 100644 --- a/tests/baselines/reference/generatorTypeCheck31.errors.txt +++ b/tests/baselines/reference/generatorTypeCheck31.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck31.ts(2,11): error TS2322: Type 'IterableIterator<(x: any) => any>' is not assignable to type '() => Iterable<(x: string) => number>'. - Signature '(): Iterable<(x: string) => number>' has no corresponding signature in 'IterableIterator<(x: any) => any>' + Type 'IterableIterator<(x: any) => any>' provides no match for the signature '(): Iterable<(x: string) => number>' ==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck31.ts (1 errors) ==== @@ -11,5 +11,5 @@ tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck31.ts(2,11): erro } () ~~~~~~~~ !!! error TS2322: Type 'IterableIterator<(x: any) => any>' is not assignable to type '() => Iterable<(x: string) => number>'. -!!! error TS2322: Signature '(): Iterable<(x: string) => number>' has no corresponding signature in 'IterableIterator<(x: any) => any>' +!!! error TS2322: Type 'IterableIterator<(x: any) => any>' provides no match for the signature '(): Iterable<(x: string) => number>' } \ No newline at end of file diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt b/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt index 52c5e03912e..18febd754a4 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt @@ -3,7 +3,7 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen Type 'boolean' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments3.ts(33,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '(n: Object) => number' is not a valid type argument because it is not a supertype of candidate 'number'. - Signature '(n: Object): number' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(n: Object): number' ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments3.ts (2 errors) ==== @@ -47,4 +47,4 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen ~~~~ !!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. !!! error TS2453: Type argument candidate '(n: Object) => number' is not a valid type argument because it is not a supertype of candidate 'number'. -!!! error TS2453: Signature '(n: Object): number' has no corresponding signature in 'Number' \ No newline at end of file +!!! error TS2453: Type 'Number' provides no match for the signature '(n: Object): number' \ No newline at end of file diff --git a/tests/baselines/reference/incompatibleTypes.errors.txt b/tests/baselines/reference/incompatibleTypes.errors.txt index 2d6af3a74e2..131beacbeae 100644 --- a/tests/baselines/reference/incompatibleTypes.errors.txt +++ b/tests/baselines/reference/incompatibleTypes.errors.txt @@ -23,7 +23,7 @@ tests/cases/compiler/incompatibleTypes.ts(49,7): error TS2345: Argument of type tests/cases/compiler/incompatibleTypes.ts(66,47): error TS2322: Type '{ e: number; f: number; }' is not assignable to type '{ a: { a: string; }; b: string; }'. Object literal may only specify known properties, and 'e' does not exist in type '{ a: { a: string; }; b: string; }'. tests/cases/compiler/incompatibleTypes.ts(72,5): error TS2322: Type 'number' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(): string' tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => number' is not assignable to type '() => any'. @@ -133,7 +133,7 @@ tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => var i1c1: { (): string; } = 5; ~~~~ !!! error TS2322: Type 'number' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in 'Number' +!!! error TS2322: Type 'Number' provides no match for the signature '(): string' var fp1: () =>any = a => 0; ~~~ diff --git a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt index 25dd3c2ef3b..afa0f8e73b4 100644 --- a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt +++ b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt @@ -1,7 +1,7 @@ tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(7,7): error TS2415: Class 'b' incorrectly extends base class 'a'. Types of property 'x' are incompatible. Type 'string' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in 'String' + Type 'String' provides no match for the signature '(): string' tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(8,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(8,9): error TS2423: Class 'a' defines instance member function 'x', but extended class 'b' defines it as instance member accessor. tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(11,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. @@ -19,7 +19,7 @@ tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(11,9): error T !!! error TS2415: Class 'b' incorrectly extends base class 'a'. !!! error TS2415: Types of property 'x' are incompatible. !!! error TS2415: Type 'string' is not assignable to type '() => string'. -!!! error TS2415: Signature '(): string' has no corresponding signature in 'String' +!!! error TS2415: Type 'String' provides no match for the signature '(): string' get x() { ~ !!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. diff --git a/tests/baselines/reference/inheritanceStaticAccessorOverridingMethod.errors.txt b/tests/baselines/reference/inheritanceStaticAccessorOverridingMethod.errors.txt index 646047f8633..ac3ea03cbb8 100644 --- a/tests/baselines/reference/inheritanceStaticAccessorOverridingMethod.errors.txt +++ b/tests/baselines/reference/inheritanceStaticAccessorOverridingMethod.errors.txt @@ -1,7 +1,7 @@ tests/cases/compiler/inheritanceStaticAccessorOverridingMethod.ts(7,7): error TS2417: Class static side 'typeof b' incorrectly extends base class static side 'typeof a'. Types of property 'x' are incompatible. Type 'string' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in 'String' + Type 'String' provides no match for the signature '(): string' tests/cases/compiler/inheritanceStaticAccessorOverridingMethod.ts(8,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/inheritanceStaticAccessorOverridingMethod.ts(11,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. @@ -18,7 +18,7 @@ tests/cases/compiler/inheritanceStaticAccessorOverridingMethod.ts(11,16): error !!! error TS2417: Class static side 'typeof b' incorrectly extends base class static side 'typeof a'. !!! error TS2417: Types of property 'x' are incompatible. !!! error TS2417: Type 'string' is not assignable to type '() => string'. -!!! error TS2417: Signature '(): string' has no corresponding signature in 'String' +!!! error TS2417: Type 'String' provides no match for the signature '(): string' static get x() { ~ !!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. diff --git a/tests/baselines/reference/inheritanceStaticPropertyOverridingMethod.errors.txt b/tests/baselines/reference/inheritanceStaticPropertyOverridingMethod.errors.txt index 5e983c0d806..70bed434978 100644 --- a/tests/baselines/reference/inheritanceStaticPropertyOverridingMethod.errors.txt +++ b/tests/baselines/reference/inheritanceStaticPropertyOverridingMethod.errors.txt @@ -1,7 +1,7 @@ tests/cases/compiler/inheritanceStaticPropertyOverridingMethod.ts(7,7): error TS2417: Class static side 'typeof b' incorrectly extends base class static side 'typeof a'. Types of property 'x' are incompatible. Type 'string' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in 'String' + Type 'String' provides no match for the signature '(): string' ==== tests/cases/compiler/inheritanceStaticPropertyOverridingMethod.ts (1 errors) ==== @@ -16,6 +16,6 @@ tests/cases/compiler/inheritanceStaticPropertyOverridingMethod.ts(7,7): error TS !!! error TS2417: Class static side 'typeof b' incorrectly extends base class static side 'typeof a'. !!! error TS2417: Types of property 'x' are incompatible. !!! error TS2417: Type 'string' is not assignable to type '() => string'. -!!! error TS2417: Signature '(): string' has no corresponding signature in 'String' +!!! error TS2417: Type 'String' provides no match for the signature '(): string' static x: string; } \ No newline at end of file diff --git a/tests/baselines/reference/intTypeCheck.errors.txt b/tests/baselines/reference/intTypeCheck.errors.txt index 02592bedb69..b6f8afa3030 100644 --- a/tests/baselines/reference/intTypeCheck.errors.txt +++ b/tests/baselines/reference/intTypeCheck.errors.txt @@ -14,27 +14,27 @@ tests/cases/compiler/intTypeCheck.ts(106,20): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(106,21): error TS2304: Cannot find name 'i1'. tests/cases/compiler/intTypeCheck.ts(107,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. tests/cases/compiler/intTypeCheck.ts(112,5): error TS2322: Type '{}' is not assignable to type 'i2'. - Signature '(): any' has no corresponding signature in '{}' + Type '{}' provides no match for the signature '(): any' tests/cases/compiler/intTypeCheck.ts(113,5): error TS2322: Type 'Object' is not assignable to type 'i2'. - Signature '(): any' has no corresponding signature in 'Object' + Type 'Object' provides no match for the signature '(): any' tests/cases/compiler/intTypeCheck.ts(114,17): error TS2350: Only a void function can be called with the 'new' keyword. tests/cases/compiler/intTypeCheck.ts(115,5): error TS2322: Type 'Base' is not assignable to type 'i2'. - Signature '(): any' has no corresponding signature in 'Base' + Type 'Base' provides no match for the signature '(): any' tests/cases/compiler/intTypeCheck.ts(120,5): error TS2322: Type 'boolean' is not assignable to type 'i2'. - Signature '(): any' has no corresponding signature in 'Boolean' + Type 'Boolean' provides no match for the signature '(): any' tests/cases/compiler/intTypeCheck.ts(120,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(120,22): error TS2304: Cannot find name 'i2'. tests/cases/compiler/intTypeCheck.ts(121,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. tests/cases/compiler/intTypeCheck.ts(126,5): error TS2322: Type '{}' is not assignable to type 'i3'. - Signature 'new (): any' has no corresponding signature in '{}' + Type '{}' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(127,5): error TS2322: Type 'Object' is not assignable to type 'i3'. - Signature 'new (): any' has no corresponding signature in 'Object' + Type 'Object' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(129,5): error TS2322: Type 'Base' is not assignable to type 'i3'. - Signature 'new (): any' has no corresponding signature in 'Base' + Type 'Base' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(131,5): error TS2322: Type '() => void' is not assignable to type 'i3'. - Signature 'new (): any' has no corresponding signature in '() => void' + Type '() => void' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(134,5): error TS2322: Type 'boolean' is not assignable to type 'i3'. - Signature 'new (): any' has no corresponding signature in 'Boolean' + Type 'Boolean' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(134,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(134,22): error TS2304: Cannot find name 'i3'. tests/cases/compiler/intTypeCheck.ts(135,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. @@ -59,29 +59,29 @@ tests/cases/compiler/intTypeCheck.ts(162,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(162,22): error TS2304: Cannot find name 'i5'. tests/cases/compiler/intTypeCheck.ts(163,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. tests/cases/compiler/intTypeCheck.ts(168,5): error TS2322: Type '{}' is not assignable to type 'i6'. - Signature '(): any' has no corresponding signature in '{}' + Type '{}' provides no match for the signature '(): any' tests/cases/compiler/intTypeCheck.ts(169,5): error TS2322: Type 'Object' is not assignable to type 'i6'. - Signature '(): any' has no corresponding signature in 'Object' + Type 'Object' provides no match for the signature '(): any' tests/cases/compiler/intTypeCheck.ts(170,17): error TS2350: Only a void function can be called with the 'new' keyword. tests/cases/compiler/intTypeCheck.ts(171,5): error TS2322: Type 'Base' is not assignable to type 'i6'. - Signature '(): any' has no corresponding signature in 'Base' + Type 'Base' provides no match for the signature '(): any' tests/cases/compiler/intTypeCheck.ts(173,5): error TS2322: Type '() => void' is not assignable to type 'i6'. Type 'void' is not assignable to type 'number'. tests/cases/compiler/intTypeCheck.ts(176,5): error TS2322: Type 'boolean' is not assignable to type 'i6'. - Signature '(): any' has no corresponding signature in 'Boolean' + Type 'Boolean' provides no match for the signature '(): any' tests/cases/compiler/intTypeCheck.ts(176,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(176,22): error TS2304: Cannot find name 'i6'. tests/cases/compiler/intTypeCheck.ts(177,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. tests/cases/compiler/intTypeCheck.ts(182,5): error TS2322: Type '{}' is not assignable to type 'i7'. - Signature 'new (): any' has no corresponding signature in '{}' + Type '{}' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(183,5): error TS2322: Type 'Object' is not assignable to type 'i7'. - Signature 'new (): any' has no corresponding signature in 'Object' + Type 'Object' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(185,17): error TS2352: Neither type 'Base' nor type 'i7' is assignable to the other. - Signature 'new (): any' has no corresponding signature in 'Base' + Type 'Base' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(187,5): error TS2322: Type '() => void' is not assignable to type 'i7'. - Signature 'new (): any' has no corresponding signature in '() => void' + Type '() => void' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(190,5): error TS2322: Type 'boolean' is not assignable to type 'i7'. - Signature 'new (): any' has no corresponding signature in 'Boolean' + Type 'Boolean' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(190,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(190,22): error TS2304: Cannot find name 'i7'. tests/cases/compiler/intTypeCheck.ts(191,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. @@ -234,18 +234,18 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj12: i2 = {}; ~~~~~ !!! error TS2322: Type '{}' is not assignable to type 'i2'. -!!! error TS2322: Signature '(): any' has no corresponding signature in '{}' +!!! error TS2322: Type '{}' provides no match for the signature '(): any' var obj13: i2 = new Object(); ~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i2'. -!!! error TS2322: Signature '(): any' has no corresponding signature in 'Object' +!!! error TS2322: Type 'Object' provides no match for the signature '(): any' var obj14: i2 = new obj11; ~~~~~~~~~ !!! error TS2350: Only a void function can be called with the 'new' keyword. var obj15: i2 = new Base; ~~~~~ !!! error TS2322: Type 'Base' is not assignable to type 'i2'. -!!! error TS2322: Signature '(): any' has no corresponding signature in 'Base' +!!! error TS2322: Type 'Base' provides no match for the signature '(): any' var obj16: i2 = null; var obj17: i2 = function ():any { return 0; }; //var obj18: i2 = function foo() { }; @@ -253,7 +253,7 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj20: i2 = new anyVar; ~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i2'. -!!! error TS2322: Signature '(): any' has no corresponding signature in 'Boolean' +!!! error TS2322: Type 'Boolean' provides no match for the signature '(): any' ~ !!! error TS1109: Expression expected. ~~ @@ -268,27 +268,27 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj23: i3 = {}; ~~~~~ !!! error TS2322: Type '{}' is not assignable to type 'i3'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in '{}' +!!! error TS2322: Type '{}' provides no match for the signature 'new (): any' var obj24: i3 = new Object(); ~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i3'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Object' +!!! error TS2322: Type 'Object' provides no match for the signature 'new (): any' var obj25: i3 = new obj22; var obj26: i3 = new Base; ~~~~~ !!! error TS2322: Type 'Base' is not assignable to type 'i3'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Base' +!!! error TS2322: Type 'Base' provides no match for the signature 'new (): any' var obj27: i3 = null; var obj28: i3 = function () { }; ~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'i3'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in '() => void' +!!! error TS2322: Type '() => void' provides no match for the signature 'new (): any' //var obj29: i3 = function foo() { }; var obj30: i3 = anyVar; var obj31: i3 = new anyVar; ~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i3'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Boolean' +!!! error TS2322: Type 'Boolean' provides no match for the signature 'new (): any' ~ !!! error TS1109: Expression expected. ~~ @@ -365,18 +365,18 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj56: i6 = {}; ~~~~~ !!! error TS2322: Type '{}' is not assignable to type 'i6'. -!!! error TS2322: Signature '(): any' has no corresponding signature in '{}' +!!! error TS2322: Type '{}' provides no match for the signature '(): any' var obj57: i6 = new Object(); ~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i6'. -!!! error TS2322: Signature '(): any' has no corresponding signature in 'Object' +!!! error TS2322: Type 'Object' provides no match for the signature '(): any' var obj58: i6 = new obj55; ~~~~~~~~~ !!! error TS2350: Only a void function can be called with the 'new' keyword. var obj59: i6 = new Base; ~~~~~ !!! error TS2322: Type 'Base' is not assignable to type 'i6'. -!!! error TS2322: Signature '(): any' has no corresponding signature in 'Base' +!!! error TS2322: Type 'Base' provides no match for the signature '(): any' var obj60: i6 = null; var obj61: i6 = function () { }; ~~~~~ @@ -387,7 +387,7 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj64: i6 = new anyVar; ~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i6'. -!!! error TS2322: Signature '(): any' has no corresponding signature in 'Boolean' +!!! error TS2322: Type 'Boolean' provides no match for the signature '(): any' ~ !!! error TS1109: Expression expected. ~~ @@ -402,27 +402,27 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj67: i7 = {}; ~~~~~ !!! error TS2322: Type '{}' is not assignable to type 'i7'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in '{}' +!!! error TS2322: Type '{}' provides no match for the signature 'new (): any' var obj68: i7 = new Object(); ~~~~~ !!! error TS2322: Type 'Object' is not assignable to type 'i7'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Object' +!!! error TS2322: Type 'Object' provides no match for the signature 'new (): any' var obj69: i7 = new obj66; var obj70: i7 = new Base; ~~~~~~~~~~~~ !!! error TS2352: Neither type 'Base' nor type 'i7' is assignable to the other. -!!! error TS2352: Signature 'new (): any' has no corresponding signature in 'Base' +!!! error TS2352: Type 'Base' provides no match for the signature 'new (): any' var obj71: i7 = null; var obj72: i7 = function () { }; ~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'i7'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in '() => void' +!!! error TS2322: Type '() => void' provides no match for the signature 'new (): any' //var obj73: i7 = function foo() { }; var obj74: i7 = anyVar; var obj75: i7 = new anyVar; ~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i7'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Boolean' +!!! error TS2322: Type 'Boolean' provides no match for the signature 'new (): any' ~ !!! error TS1109: Expression expected. ~~ diff --git a/tests/baselines/reference/interfaceImplementation1.errors.txt b/tests/baselines/reference/interfaceImplementation1.errors.txt index 826e5650c83..e5e1a212a06 100644 --- a/tests/baselines/reference/interfaceImplementation1.errors.txt +++ b/tests/baselines/reference/interfaceImplementation1.errors.txt @@ -3,7 +3,7 @@ tests/cases/compiler/interfaceImplementation1.ts(12,7): error TS2420: Class 'C1' tests/cases/compiler/interfaceImplementation1.ts(12,7): error TS2420: Class 'C1' incorrectly implements interface 'I2'. Property 'iFn' is private in type 'C1' but not in type 'I2'. tests/cases/compiler/interfaceImplementation1.ts(34,5): error TS2322: Type '() => C2' is not assignable to type 'I4'. - Signature 'new (): I3' has no corresponding signature in '() => C2' + Type '() => C2' provides no match for the signature 'new (): I3' ==== tests/cases/compiler/interfaceImplementation1.ts (3 errors) ==== @@ -49,7 +49,7 @@ tests/cases/compiler/interfaceImplementation1.ts(34,5): error TS2322: Type '() = var a:I4 = function(){ ~ !!! error TS2322: Type '() => C2' is not assignable to type 'I4'. -!!! error TS2322: Signature 'new (): I3' has no corresponding signature in '() => C2' +!!! error TS2322: Type '() => C2' provides no match for the signature 'new (): I3' return new C2(); } new a(); diff --git a/tests/baselines/reference/invalidBooleanAssignments.errors.txt b/tests/baselines/reference/invalidBooleanAssignments.errors.txt index ddedc16f28d..85184de6607 100644 --- a/tests/baselines/reference/invalidBooleanAssignments.errors.txt +++ b/tests/baselines/reference/invalidBooleanAssignments.errors.txt @@ -7,7 +7,7 @@ tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(12 tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(15,5): error TS2322: Type 'boolean' is not assignable to type 'I'. Property 'bar' is missing in type 'Boolean'. tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(17,5): error TS2322: Type 'boolean' is not assignable to type '() => string'. - Signature '(): string' has no corresponding signature in 'Boolean' + Type 'Boolean' provides no match for the signature '(): string' tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(21,1): error TS2364: Invalid left-hand side of assignment expression. tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(24,5): error TS2322: Type 'boolean' is not assignable to type 'T'. tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(26,1): error TS2364: Invalid left-hand side of assignment expression. @@ -47,7 +47,7 @@ tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(26 var h: { (): string } = x; ~ !!! error TS2322: Type 'boolean' is not assignable to type '() => string'. -!!! error TS2322: Signature '(): string' has no corresponding signature in 'Boolean' +!!! error TS2322: Type 'Boolean' provides no match for the signature '(): string' var h2: { toString(): string } = x; // no error module M { export var a = 1; } diff --git a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt index 6767d053498..e296f2113fb 100644 --- a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt +++ b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt @@ -1,7 +1,7 @@ tests/cases/conformance/types/members/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.ts(8,1): error TS2322: Type 'Object' is not assignable to type 'I'. - Signature '(): void' has no corresponding signature in 'Object' + Type 'Object' provides no match for the signature '(): void' tests/cases/conformance/types/members/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.ts(14,1): error TS2322: Type 'Object' is not assignable to type '() => void'. - Signature '(): void' has no corresponding signature in 'Object' + Type 'Object' provides no match for the signature '(): void' ==== tests/cases/conformance/types/members/objectTypeWithCallSignatureHidingMembersOfFunctionAssignmentCompat.ts (2 errors) ==== @@ -15,7 +15,7 @@ tests/cases/conformance/types/members/objectTypeWithCallSignatureHidingMembersOf i = f; ~ !!! error TS2322: Type 'Object' is not assignable to type 'I'. -!!! error TS2322: Signature '(): void' has no corresponding signature in 'Object' +!!! error TS2322: Type 'Object' provides no match for the signature '(): void' var a: { (): void @@ -24,4 +24,4 @@ tests/cases/conformance/types/members/objectTypeWithCallSignatureHidingMembersOf a = f; ~ !!! error TS2322: Type 'Object' is not assignable to type '() => void'. -!!! error TS2322: Signature '(): void' has no corresponding signature in 'Object' \ No newline at end of file +!!! error TS2322: Type 'Object' provides no match for the signature '(): void' \ No newline at end of file diff --git a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt index 92fdf725efe..227ccc99603 100644 --- a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt +++ b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.errors.txt @@ -1,7 +1,7 @@ tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.ts(8,1): error TS2322: Type 'Object' is not assignable to type 'I'. - Signature 'new (): any' has no corresponding signature in 'Object' + Type 'Object' provides no match for the signature 'new (): any' tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.ts(14,1): error TS2322: Type 'Object' is not assignable to type 'new () => any'. - Signature 'new (): any' has no corresponding signature in 'Object' + Type 'Object' provides no match for the signature 'new (): any' ==== tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMembersOfFunctionAssignmentCompat.ts (2 errors) ==== @@ -15,7 +15,7 @@ tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMemb i = f; ~ !!! error TS2322: Type 'Object' is not assignable to type 'I'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Object' +!!! error TS2322: Type 'Object' provides no match for the signature 'new (): any' var a: { new(): any @@ -24,4 +24,4 @@ tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMemb a = f; ~ !!! error TS2322: Type 'Object' is not assignable to type 'new () => any'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in 'Object' \ No newline at end of file +!!! error TS2322: Type 'Object' provides no match for the signature 'new (): any' \ No newline at end of file diff --git a/tests/baselines/reference/overloadOnConstInheritance2.errors.txt b/tests/baselines/reference/overloadOnConstInheritance2.errors.txt index 3b8d8c80e58..4b502f145a6 100644 --- a/tests/baselines/reference/overloadOnConstInheritance2.errors.txt +++ b/tests/baselines/reference/overloadOnConstInheritance2.errors.txt @@ -1,7 +1,7 @@ tests/cases/compiler/overloadOnConstInheritance2.ts(5,11): error TS2430: Interface 'Deriver' incorrectly extends interface 'Base'. Types of property 'addEventListener' are incompatible. Type '(x: "bar") => string' is not assignable to type '{ (x: string): any; (x: "foo"): string; }'. - Signature '(x: string): any' has no corresponding signature in '(x: "bar") => string' + Type '(x: "bar") => string' provides no match for the signature '(x: string): any' tests/cases/compiler/overloadOnConstInheritance2.ts(6,5): error TS2382: Specialized overload signature is not assignable to any non-specialized signature. @@ -15,7 +15,7 @@ tests/cases/compiler/overloadOnConstInheritance2.ts(6,5): error TS2382: Speciali !!! error TS2430: Interface 'Deriver' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'addEventListener' are incompatible. !!! error TS2430: Type '(x: "bar") => string' is not assignable to type '{ (x: string): any; (x: "foo"): string; }'. -!!! error TS2430: Signature '(x: string): any' has no corresponding signature in '(x: "bar") => string' +!!! error TS2430: Type '(x: "bar") => string' provides no match for the signature '(x: string): any' addEventListener(x: 'bar'): string; // shouldn't need to redeclare the string overload ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2382: Specialized overload signature is not assignable to any non-specialized signature. diff --git a/tests/baselines/reference/overloadOnConstInheritance3.errors.txt b/tests/baselines/reference/overloadOnConstInheritance3.errors.txt index 062db72ac51..6d9f9b00692 100644 --- a/tests/baselines/reference/overloadOnConstInheritance3.errors.txt +++ b/tests/baselines/reference/overloadOnConstInheritance3.errors.txt @@ -1,7 +1,7 @@ tests/cases/compiler/overloadOnConstInheritance3.ts(4,11): error TS2430: Interface 'Deriver' incorrectly extends interface 'Base'. Types of property 'addEventListener' are incompatible. Type '{ (x: "bar"): string; (x: "foo"): string; }' is not assignable to type '(x: string) => any'. - Signature '(x: string): any' has no corresponding signature in '{ (x: "bar"): string; (x: "foo"): string; }' + Type '{ (x: "bar"): string; (x: "foo"): string; }' provides no match for the signature '(x: string): any' tests/cases/compiler/overloadOnConstInheritance3.ts(6,5): error TS2382: Specialized overload signature is not assignable to any non-specialized signature. tests/cases/compiler/overloadOnConstInheritance3.ts(7,5): error TS2382: Specialized overload signature is not assignable to any non-specialized signature. @@ -15,7 +15,7 @@ tests/cases/compiler/overloadOnConstInheritance3.ts(7,5): error TS2382: Speciali !!! error TS2430: Interface 'Deriver' incorrectly extends interface 'Base'. !!! error TS2430: Types of property 'addEventListener' are incompatible. !!! error TS2430: Type '{ (x: "bar"): string; (x: "foo"): string; }' is not assignable to type '(x: string) => any'. -!!! error TS2430: Signature '(x: string): any' has no corresponding signature in '{ (x: "bar"): string; (x: "foo"): string; }' +!!! error TS2430: Type '{ (x: "bar"): string; (x: "foo"): string; }' provides no match for the signature '(x: string): any' // shouldn't need to redeclare the string overload addEventListener(x: 'bar'): string; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/tests/baselines/reference/parseTypes.errors.txt b/tests/baselines/reference/parseTypes.errors.txt index bc628ac485b..cf8b0d79115 100644 --- a/tests/baselines/reference/parseTypes.errors.txt +++ b/tests/baselines/reference/parseTypes.errors.txt @@ -3,7 +3,7 @@ tests/cases/compiler/parseTypes.ts(10,1): error TS2322: Type '(s: string) => voi tests/cases/compiler/parseTypes.ts(11,1): error TS2322: Type '(s: string) => void' is not assignable to type '{ [x: number]: number; }'. Index signature is missing in type '(s: string) => void'. tests/cases/compiler/parseTypes.ts(12,1): error TS2322: Type '(s: string) => void' is not assignable to type 'new () => number'. - Signature 'new (): number' has no corresponding signature in '(s: string) => void' + Type '(s: string) => void' provides no match for the signature 'new (): number' ==== tests/cases/compiler/parseTypes.ts (4 errors) ==== @@ -28,5 +28,5 @@ tests/cases/compiler/parseTypes.ts(12,1): error TS2322: Type '(s: string) => voi z=g; ~ !!! error TS2322: Type '(s: string) => void' is not assignable to type 'new () => number'. -!!! error TS2322: Signature 'new (): number' has no corresponding signature in '(s: string) => void' +!!! error TS2322: Type '(s: string) => void' provides no match for the signature 'new (): number' \ No newline at end of file diff --git a/tests/baselines/reference/parserAutomaticSemicolonInsertion1.errors.txt b/tests/baselines/reference/parserAutomaticSemicolonInsertion1.errors.txt index 5eebe963b90..9ffdc614ab1 100644 --- a/tests/baselines/reference/parserAutomaticSemicolonInsertion1.errors.txt +++ b/tests/baselines/reference/parserAutomaticSemicolonInsertion1.errors.txt @@ -1,7 +1,7 @@ tests/cases/conformance/parser/ecmascript5/AutomaticSemicolonInsertion/parserAutomaticSemicolonInsertion1.ts(8,1): error TS2322: Type 'Object' is not assignable to type 'I'. - Signature '(): void' has no corresponding signature in 'Object' + Type 'Object' provides no match for the signature '(): void' tests/cases/conformance/parser/ecmascript5/AutomaticSemicolonInsertion/parserAutomaticSemicolonInsertion1.ts(14,1): error TS2322: Type 'Object' is not assignable to type '() => void'. - Signature '(): void' has no corresponding signature in 'Object' + Type 'Object' provides no match for the signature '(): void' ==== tests/cases/conformance/parser/ecmascript5/AutomaticSemicolonInsertion/parserAutomaticSemicolonInsertion1.ts (2 errors) ==== @@ -15,7 +15,7 @@ tests/cases/conformance/parser/ecmascript5/AutomaticSemicolonInsertion/parserAut i = o; ~ !!! error TS2322: Type 'Object' is not assignable to type 'I'. -!!! error TS2322: Signature '(): void' has no corresponding signature in 'Object' +!!! error TS2322: Type 'Object' provides no match for the signature '(): void' var a: { (): void @@ -24,5 +24,5 @@ tests/cases/conformance/parser/ecmascript5/AutomaticSemicolonInsertion/parserAut a = o; ~ !!! error TS2322: Type 'Object' is not assignable to type '() => void'. -!!! error TS2322: Signature '(): void' has no corresponding signature in 'Object' +!!! error TS2322: Type 'Object' provides no match for the signature '(): void' \ No newline at end of file diff --git a/tests/baselines/reference/propertyAssignment.errors.txt b/tests/baselines/reference/propertyAssignment.errors.txt index ae65ed9b73a..815d0a44d53 100644 --- a/tests/baselines/reference/propertyAssignment.errors.txt +++ b/tests/baselines/reference/propertyAssignment.errors.txt @@ -1,9 +1,9 @@ tests/cases/compiler/propertyAssignment.ts(6,13): error TS1170: A computed property name in a type literal must directly refer to a built-in symbol. tests/cases/compiler/propertyAssignment.ts(6,14): error TS2304: Cannot find name 'index'. tests/cases/compiler/propertyAssignment.ts(14,1): error TS2322: Type '{ x: number; }' is not assignable to type 'new () => any'. - Signature 'new (): any' has no corresponding signature in '{ x: number; }' + Type '{ x: number; }' provides no match for the signature 'new (): any' tests/cases/compiler/propertyAssignment.ts(16,1): error TS2322: Type '{ x: number; }' is not assignable to type '() => void'. - Signature '(): void' has no corresponding signature in '{ x: number; }' + Type '{ x: number; }' provides no match for the signature '(): void' ==== tests/cases/compiler/propertyAssignment.ts (4 errors) ==== @@ -27,9 +27,9 @@ tests/cases/compiler/propertyAssignment.ts(16,1): error TS2322: Type '{ x: numbe foo1 = bar1; // should be an error ~~~~ !!! error TS2322: Type '{ x: number; }' is not assignable to type 'new () => any'. -!!! error TS2322: Signature 'new (): any' has no corresponding signature in '{ x: number; }' +!!! error TS2322: Type '{ x: number; }' provides no match for the signature 'new (): any' foo2 = bar2; foo3 = bar3; // should be an error ~~~~ !!! error TS2322: Type '{ x: number; }' is not assignable to type '() => void'. -!!! error TS2322: Signature '(): void' has no corresponding signature in '{ x: number; }' \ No newline at end of file +!!! error TS2322: Type '{ x: number; }' provides no match for the signature '(): void' \ No newline at end of file diff --git a/tests/baselines/reference/qualify.errors.txt b/tests/baselines/reference/qualify.errors.txt index 822b329b757..f38fc93ccde 100644 --- a/tests/baselines/reference/qualify.errors.txt +++ b/tests/baselines/reference/qualify.errors.txt @@ -7,9 +7,9 @@ tests/cases/compiler/qualify.ts(45,13): error TS2322: Type 'I4' is not assignabl tests/cases/compiler/qualify.ts(46,13): error TS2322: Type 'I4' is not assignable to type 'I3[]'. Property 'length' is missing in type 'I4'. tests/cases/compiler/qualify.ts(47,13): error TS2322: Type 'I4' is not assignable to type '() => I3'. - Signature '(): I3' has no corresponding signature in 'I4' + Type 'I4' provides no match for the signature '(): I3' tests/cases/compiler/qualify.ts(48,13): error TS2322: Type 'I4' is not assignable to type '(k: I3) => void'. - Signature '(k: I3): void' has no corresponding signature in 'I4' + Type 'I4' provides no match for the signature '(k: I3): void' tests/cases/compiler/qualify.ts(49,13): error TS2322: Type 'I4' is not assignable to type '{ k: I3; }'. Property 'k' is missing in type 'I4'. tests/cases/compiler/qualify.ts(58,5): error TS2322: Type 'I' is not assignable to type 'T.I'. @@ -78,11 +78,11 @@ tests/cases/compiler/qualify.ts(58,5): error TS2322: Type 'I' is not assignable var v4:()=>K1.I3=v1; ~~ !!! error TS2322: Type 'I4' is not assignable to type '() => I3'. -!!! error TS2322: Signature '(): I3' has no corresponding signature in 'I4' +!!! error TS2322: Type 'I4' provides no match for the signature '(): I3' var v5:(k:K1.I3)=>void=v1; ~~ !!! error TS2322: Type 'I4' is not assignable to type '(k: I3) => void'. -!!! error TS2322: Signature '(k: I3): void' has no corresponding signature in 'I4' +!!! error TS2322: Type 'I4' provides no match for the signature '(k: I3): void' var v6:{k:K1.I3;}=v1; ~~ !!! error TS2322: Type 'I4' is not assignable to type '{ k: I3; }'. diff --git a/tests/baselines/reference/recursiveFunctionTypes.errors.txt b/tests/baselines/reference/recursiveFunctionTypes.errors.txt index 4c1b392245f..53993a06c60 100644 --- a/tests/baselines/reference/recursiveFunctionTypes.errors.txt +++ b/tests/baselines/reference/recursiveFunctionTypes.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/recursiveFunctionTypes.ts(1,35): error TS2322: Type 'number' is not assignable to type '() => typeof fn'. - Signature '(): () => typeof fn' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(): () => typeof fn' tests/cases/compiler/recursiveFunctionTypes.ts(3,5): error TS2322: Type '() => typeof fn' is not assignable to type 'number'. tests/cases/compiler/recursiveFunctionTypes.ts(4,5): error TS2322: Type '() => typeof fn' is not assignable to type '() => number'. Type '() => typeof fn' is not assignable to type 'number'. @@ -7,23 +7,23 @@ tests/cases/compiler/recursiveFunctionTypes.ts(11,16): error TS2355: A function tests/cases/compiler/recursiveFunctionTypes.ts(12,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. tests/cases/compiler/recursiveFunctionTypes.ts(17,5): error TS2322: Type '() => I' is not assignable to type 'number'. tests/cases/compiler/recursiveFunctionTypes.ts(22,5): error TS2345: Argument of type 'number' is not assignable to parameter of type '(t: typeof g) => void'. - Signature '(t: (t: typeof g) => void): void' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(t: (t: typeof g) => void): void' tests/cases/compiler/recursiveFunctionTypes.ts(25,1): error TS2322: Type 'number' is not assignable to type '() => any'. - Signature '(): () => any' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(): () => any' tests/cases/compiler/recursiveFunctionTypes.ts(30,10): error TS2394: Overload signature is not compatible with function implementation. tests/cases/compiler/recursiveFunctionTypes.ts(33,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/compiler/recursiveFunctionTypes.ts(34,4): error TS2345: Argument of type 'string' is not assignable to parameter of type '{ (): typeof f6; (a: typeof f6): () => number; }'. - Signature '(): { (): typeof f6; (a: typeof f6): () => number; }' has no corresponding signature in 'String' + Type 'String' provides no match for the signature '(): { (): typeof f6; (a: typeof f6): () => number; }' tests/cases/compiler/recursiveFunctionTypes.ts(42,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of type 'string' is not assignable to parameter of type '{ (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }'. - Signature '(): { (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }' has no corresponding signature in 'String' + Type 'String' provides no match for the signature '(): { (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }' ==== tests/cases/compiler/recursiveFunctionTypes.ts (13 errors) ==== function fn(): typeof fn { return 1; } ~ !!! error TS2322: Type 'number' is not assignable to type '() => typeof fn'. -!!! error TS2322: Signature '(): () => typeof fn' has no corresponding signature in 'Number' +!!! error TS2322: Type 'Number' provides no match for the signature '(): () => typeof fn' var x: number = fn; // error ~ @@ -58,13 +58,13 @@ tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of C.g(3); // error ~ !!! error TS2345: Argument of type 'number' is not assignable to parameter of type '(t: typeof g) => void'. -!!! error TS2345: Signature '(t: (t: typeof g) => void): void' has no corresponding signature in 'Number' +!!! error TS2345: Type 'Number' provides no match for the signature '(t: (t: typeof g) => void): void' var f4: () => typeof f4; f4 = 3; // error ~~ !!! error TS2322: Type 'number' is not assignable to type '() => any'. -!!! error TS2322: Signature '(): () => any' has no corresponding signature in 'Number' +!!! error TS2322: Type 'Number' provides no match for the signature '(): () => any' function f5() { return f5; } @@ -80,7 +80,7 @@ tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of f6(""); // ok (function takes an any param) ~~ !!! error TS2345: Argument of type 'string' is not assignable to parameter of type '{ (): typeof f6; (a: typeof f6): () => number; }'. -!!! error TS2345: Signature '(): { (): typeof f6; (a: typeof f6): () => number; }' has no corresponding signature in 'String' +!!! error TS2345: Type 'String' provides no match for the signature '(): { (): typeof f6; (a: typeof f6): () => number; }' f6(); // ok declare function f7(): typeof f7; @@ -94,5 +94,5 @@ tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of f7(""); // ok (function takes an any param) ~~ !!! error TS2345: Argument of type 'string' is not assignable to parameter of type '{ (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }'. -!!! error TS2345: Signature '(): { (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }' has no corresponding signature in 'String' +!!! error TS2345: Type 'String' provides no match for the signature '(): { (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }' f7(); // ok \ No newline at end of file diff --git a/tests/baselines/reference/targetTypeVoidFunc.errors.txt b/tests/baselines/reference/targetTypeVoidFunc.errors.txt index daa25885729..d47f811c2ed 100644 --- a/tests/baselines/reference/targetTypeVoidFunc.errors.txt +++ b/tests/baselines/reference/targetTypeVoidFunc.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/targetTypeVoidFunc.ts(2,12): error TS2322: Type '() => void' is not assignable to type 'new () => number'. - Signature 'new (): number' has no corresponding signature in '() => void' + Type '() => void' provides no match for the signature 'new (): number' ==== tests/cases/compiler/targetTypeVoidFunc.ts (1 errors) ==== @@ -7,7 +7,7 @@ tests/cases/compiler/targetTypeVoidFunc.ts(2,12): error TS2322: Type '() => void return function () { return; } ~~~~~~~~ !!! error TS2322: Type '() => void' is not assignable to type 'new () => number'. -!!! error TS2322: Signature 'new (): number' has no corresponding signature in '() => void' +!!! error TS2322: Type '() => void' provides no match for the signature 'new (): number' }; var x = f1(); diff --git a/tests/baselines/reference/typeName1.errors.txt b/tests/baselines/reference/typeName1.errors.txt index e77e7c58535..a55754221ce 100644 --- a/tests/baselines/reference/typeName1.errors.txt +++ b/tests/baselines/reference/typeName1.errors.txt @@ -3,7 +3,7 @@ tests/cases/compiler/typeName1.ts(9,5): error TS2322: Type 'number' is not assig tests/cases/compiler/typeName1.ts(10,5): error TS2322: Type 'number' is not assignable to type '{ f(s: string): number; }'. Property 'f' is missing in type 'Number'. tests/cases/compiler/typeName1.ts(11,5): error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; }'. - Signature '(s: string): number' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(s: string): number' tests/cases/compiler/typeName1.ts(12,5): error TS2322: Type 'number' is not assignable to type '{ x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. Property 'x' is missing in type 'Number'. tests/cases/compiler/typeName1.ts(13,5): error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. @@ -11,7 +11,7 @@ tests/cases/compiler/typeName1.ts(13,5): error TS2322: Type 'number' is not assi tests/cases/compiler/typeName1.ts(14,5): error TS2322: Type 'number' is not assignable to type '{ z: number; f: { (n: number): string; (s: string): number; }; }'. Property 'z' is missing in type 'Number'. tests/cases/compiler/typeName1.ts(15,5): error TS2322: Type 'number' is not assignable to type '(s: string) => boolean'. - Signature '(s: string): boolean' has no corresponding signature in 'Number' + Type 'Number' provides no match for the signature '(s: string): boolean' tests/cases/compiler/typeName1.ts(16,5): error TS2322: Type 'number' is not assignable to type '{ (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }'. Property 'z' is missing in type 'Number'. tests/cases/compiler/typeName1.ts(16,10): error TS2411: Property 'z' of type 'I' is not assignable to string index type '{ x: any; y: any; }'. @@ -51,7 +51,7 @@ tests/cases/compiler/typeName1.ts(23,5): error TS2322: Type 'typeof C' is not as var x3:{ (s:string):number;(n:number):string; }=3; ~~ !!! error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; }'. -!!! error TS2322: Signature '(s: string): number' has no corresponding signature in 'Number' +!!! error TS2322: Type 'Number' provides no match for the signature '(s: string): number' var x4:{ x;y;z:number;f(n:number):string;f(s:string):number; }=3; ~~ !!! error TS2322: Type 'number' is not assignable to type '{ x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. @@ -67,7 +67,7 @@ tests/cases/compiler/typeName1.ts(23,5): error TS2322: Type 'typeof C' is not as var x7:(s:string)=>boolean=3; ~~ !!! error TS2322: Type 'number' is not assignable to type '(s: string) => boolean'. -!!! error TS2322: Signature '(s: string): boolean' has no corresponding signature in 'Number' +!!! error TS2322: Type 'Number' provides no match for the signature '(s: string): boolean' var x8:{ z:I;[s:string]:{ x; y; };[n:number]:{x; y;};():boolean; }=3; ~~ !!! error TS2322: Type 'number' is not assignable to type '{ (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }'. diff --git a/tests/baselines/reference/typesWithPrivateConstructor.errors.txt b/tests/baselines/reference/typesWithPrivateConstructor.errors.txt index d2a4e766ebc..261038a1f4a 100644 --- a/tests/baselines/reference/typesWithPrivateConstructor.errors.txt +++ b/tests/baselines/reference/typesWithPrivateConstructor.errors.txt @@ -1,6 +1,6 @@ tests/cases/conformance/types/members/typesWithPrivateConstructor.ts(4,5): error TS1089: 'private' modifier cannot appear on a constructor declaration. tests/cases/conformance/types/members/typesWithPrivateConstructor.ts(8,5): error TS2322: Type 'Function' is not assignable to type '() => void'. - Signature '(): void' has no corresponding signature in 'Function' + Type 'Function' provides no match for the signature '(): void' tests/cases/conformance/types/members/typesWithPrivateConstructor.ts(11,5): error TS1089: 'private' modifier cannot appear on a constructor declaration. tests/cases/conformance/types/members/typesWithPrivateConstructor.ts(12,5): error TS1089: 'private' modifier cannot appear on a constructor declaration. tests/cases/conformance/types/members/typesWithPrivateConstructor.ts(15,10): error TS2346: Supplied parameters do not match any signature of call target. @@ -19,7 +19,7 @@ tests/cases/conformance/types/members/typesWithPrivateConstructor.ts(15,10): err var r: () => void = c.constructor; ~ !!! error TS2322: Type 'Function' is not assignable to type '() => void'. -!!! error TS2322: Signature '(): void' has no corresponding signature in 'Function' +!!! error TS2322: Type 'Function' provides no match for the signature '(): void' class C2 { private constructor(x: number); diff --git a/tests/baselines/reference/typesWithPublicConstructor.errors.txt b/tests/baselines/reference/typesWithPublicConstructor.errors.txt index 6aa06afcdab..54bee79dae0 100644 --- a/tests/baselines/reference/typesWithPublicConstructor.errors.txt +++ b/tests/baselines/reference/typesWithPublicConstructor.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/types/members/typesWithPublicConstructor.ts(8,5): error TS2322: Type 'Function' is not assignable to type '() => void'. - Signature '(): void' has no corresponding signature in 'Function' + Type 'Function' provides no match for the signature '(): void' tests/cases/conformance/types/members/typesWithPublicConstructor.ts(15,10): error TS2346: Supplied parameters do not match any signature of call target. @@ -14,7 +14,7 @@ tests/cases/conformance/types/members/typesWithPublicConstructor.ts(15,10): erro var r: () => void = c.constructor; ~ !!! error TS2322: Type 'Function' is not assignable to type '() => void'. -!!! error TS2322: Signature '(): void' has no corresponding signature in 'Function' +!!! error TS2322: Type 'Function' provides no match for the signature '(): void' class C2 { public constructor(x: number); From e4e0667a87b19d06abe187cfec497ccb76af5835 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Wed, 25 Nov 2015 11:10:35 -0800 Subject: [PATCH 035/103] Improve variable naming Change `localErrors` to `reportMoreErrors` to more accurately reflect what the variable does. --- src/compiler/checker.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 4be22e4499e..b6d00214d4e 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5439,21 +5439,21 @@ namespace ts { outer: for (const t of targetSignatures) { if (!t.hasStringLiterals || target.flags & TypeFlags.FromSignature) { - let localErrors = reportErrors; + // Only report errors from the first failure + let reportMoreErrors = reportErrors; const checkedAbstractAssignability = false; for (const s of sourceSignatures) { if (!s.hasStringLiterals || source.flags & TypeFlags.FromSignature) { - const related = signatureRelatedTo(s, t, localErrors); + const related = signatureRelatedTo(s, t, reportMoreErrors); if (related) { result &= related; errorInfo = saveErrorInfo; continue outer; } - // Only report errors from the first failure - localErrors = false; + reportMoreErrors = false; } } - if (localErrors) { + if (reportMoreErrors) { reportError(Diagnostics.Type_0_provides_no_match_for_the_signature_1, typeToString(source), signatureToString(t, /*enclosingDeclaration*/ undefined, /*flags*/ undefined, kind)); From 57f1844e089df786206ff08600239250376bad54 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Wed, 25 Nov 2015 14:45:04 -0800 Subject: [PATCH 036/103] Change variable naming --- src/compiler/checker.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index b6d00214d4e..06b0b603d02 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5439,21 +5439,21 @@ namespace ts { outer: for (const t of targetSignatures) { if (!t.hasStringLiterals || target.flags & TypeFlags.FromSignature) { - // Only report errors from the first failure - let reportMoreErrors = reportErrors; + // Only elaborate errors from the first failure + let shouldElaborateErrors = reportErrors; const checkedAbstractAssignability = false; for (const s of sourceSignatures) { if (!s.hasStringLiterals || source.flags & TypeFlags.FromSignature) { - const related = signatureRelatedTo(s, t, reportMoreErrors); + const related = signatureRelatedTo(s, t, shouldElaborateErrors); if (related) { result &= related; errorInfo = saveErrorInfo; continue outer; } - reportMoreErrors = false; + shouldElaborateErrors = false; } } - if (reportMoreErrors) { + if (shouldElaborateErrors) { reportError(Diagnostics.Type_0_provides_no_match_for_the_signature_1, typeToString(source), signatureToString(t, /*enclosingDeclaration*/ undefined, /*flags*/ undefined, kind)); From d167e55097dc0950d416ae818e3762bdbd3745ee Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Wed, 25 Nov 2015 18:38:25 -0800 Subject: [PATCH 037/103] accept baseline --- tests/baselines/reference/moduleDuplicateIdentifiers.js | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/baselines/reference/moduleDuplicateIdentifiers.js b/tests/baselines/reference/moduleDuplicateIdentifiers.js index e02914bd874..842d1587911 100644 --- a/tests/baselines/reference/moduleDuplicateIdentifiers.js +++ b/tests/baselines/reference/moduleDuplicateIdentifiers.js @@ -41,6 +41,7 @@ export enum Utensils { // Shouldn't error //// [moduleDuplicateIdentifiers.js] +"use strict"; exports.Foo = 2; exports.Foo = 42; // Should error var FooBar; From 54ab1e99c0320ff0a8784bff0ca14b0580e66741 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Thu, 26 Nov 2015 14:24:12 -0800 Subject: [PATCH 038/103] fix module record nonambiguous case, add test for it --- src/compiler/checker.ts | 2 +- ...oduleSameValueDuplicateExportedBindings.js | 28 +++++++++++++++++++ ...SameValueDuplicateExportedBindings.symbols | 11 ++++++++ ...leSameValueDuplicateExportedBindings.types | 12 ++++++++ ...oduleSameValueDuplicateExportedBindings.ts | 10 +++++++ 5 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/moduleSameValueDuplicateExportedBindings.js create mode 100644 tests/baselines/reference/moduleSameValueDuplicateExportedBindings.symbols create mode 100644 tests/baselines/reference/moduleSameValueDuplicateExportedBindings.types create mode 100644 tests/cases/compiler/moduleSameValueDuplicateExportedBindings.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 28691b3a30e..1dce8d2406d 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1113,7 +1113,7 @@ namespace ts { }; } } - else if (lookupTable && exportNode && id !== "default" && hasProperty(target, id)) { + else if (lookupTable && exportNode && id !== "default" && hasProperty(target, id) && target[id] !== source[id]) { lookupTable[id].exportsWithDuplicate.push(exportNode); } } diff --git a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.js b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.js new file mode 100644 index 00000000000..8a12973dc02 --- /dev/null +++ b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.js @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/moduleSameValueDuplicateExportedBindings.ts] //// + +//// [a.ts] +export * from "./b"; +export * from "./c"; + +//// [b.ts] +export * from "./c"; + +//// [c.ts] +export var foo = 42; + +//// [c.js] +"use strict"; +exports.foo = 42; +//// [b.js] +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +__export(require("./c")); +//// [a.js] +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +__export(require("./b")); +__export(require("./c")); diff --git a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.symbols b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.symbols new file mode 100644 index 00000000000..2f8bba9b6ab --- /dev/null +++ b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/a.ts === +export * from "./b"; +No type information for this code.export * from "./c"; +No type information for this code. +No type information for this code.=== tests/cases/compiler/b.ts === +export * from "./c"; +No type information for this code. +No type information for this code.=== tests/cases/compiler/c.ts === +export var foo = 42; +>foo : Symbol(foo, Decl(c.ts, 0, 10)) + diff --git a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.types b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.types new file mode 100644 index 00000000000..57be71c802b --- /dev/null +++ b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.types @@ -0,0 +1,12 @@ +=== tests/cases/compiler/a.ts === +export * from "./b"; +No type information for this code.export * from "./c"; +No type information for this code. +No type information for this code.=== tests/cases/compiler/b.ts === +export * from "./c"; +No type information for this code. +No type information for this code.=== tests/cases/compiler/c.ts === +export var foo = 42; +>foo : number +>42 : number + diff --git a/tests/cases/compiler/moduleSameValueDuplicateExportedBindings.ts b/tests/cases/compiler/moduleSameValueDuplicateExportedBindings.ts new file mode 100644 index 00000000000..d51de9c2e5a --- /dev/null +++ b/tests/cases/compiler/moduleSameValueDuplicateExportedBindings.ts @@ -0,0 +1,10 @@ +// @module: commonjs +// @filename: a.ts +export * from "./b"; +export * from "./c"; + +// @filename: b.ts +export * from "./c"; + +// @filename: c.ts +export var foo = 42; \ No newline at end of file From d3f2f55ae8fef7a21ae012108e362e6d4fb71a38 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Mon, 30 Nov 2015 12:44:13 -0800 Subject: [PATCH 039/103] rename tests, add another test, reoslve symbols for comparison --- src/compiler/checker.ts | 2 +- ...uleSameValueDuplicateExportedBindings1.js} | 2 +- ...meValueDuplicateExportedBindings1.symbols} | 0 ...SameValueDuplicateExportedBindings1.types} | 0 ...duleSameValueDuplicateExportedBindings2.js | 34 +++++++++++++++++++ ...ameValueDuplicateExportedBindings2.symbols | 19 +++++++++++ ...eSameValueDuplicateExportedBindings2.types | 19 +++++++++++ ...uleSameValueDuplicateExportedBindings1.ts} | 0 ...duleSameValueDuplicateExportedBindings2.ts | 13 +++++++ 9 files changed, 87 insertions(+), 2 deletions(-) rename tests/baselines/reference/{moduleSameValueDuplicateExportedBindings.js => moduleSameValueDuplicateExportedBindings1.js} (93%) rename tests/baselines/reference/{moduleSameValueDuplicateExportedBindings.symbols => moduleSameValueDuplicateExportedBindings1.symbols} (100%) rename tests/baselines/reference/{moduleSameValueDuplicateExportedBindings.types => moduleSameValueDuplicateExportedBindings1.types} (100%) create mode 100644 tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.js create mode 100644 tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.symbols create mode 100644 tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.types rename tests/cases/compiler/{moduleSameValueDuplicateExportedBindings.ts => moduleSameValueDuplicateExportedBindings1.ts} (100%) create mode 100644 tests/cases/compiler/moduleSameValueDuplicateExportedBindings2.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 1dce8d2406d..fb70bd747a6 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1113,7 +1113,7 @@ namespace ts { }; } } - else if (lookupTable && exportNode && id !== "default" && hasProperty(target, id) && target[id] !== source[id]) { + else if (lookupTable && exportNode && id !== "default" && hasProperty(target, id) && resolveSymbol(target[id]) !== resolveSymbol(source[id])) { lookupTable[id].exportsWithDuplicate.push(exportNode); } } diff --git a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.js b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings1.js similarity index 93% rename from tests/baselines/reference/moduleSameValueDuplicateExportedBindings.js rename to tests/baselines/reference/moduleSameValueDuplicateExportedBindings1.js index 8a12973dc02..4061a32b49f 100644 --- a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.js +++ b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings1.js @@ -1,4 +1,4 @@ -//// [tests/cases/compiler/moduleSameValueDuplicateExportedBindings.ts] //// +//// [tests/cases/compiler/moduleSameValueDuplicateExportedBindings1.ts] //// //// [a.ts] export * from "./b"; diff --git a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.symbols b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings1.symbols similarity index 100% rename from tests/baselines/reference/moduleSameValueDuplicateExportedBindings.symbols rename to tests/baselines/reference/moduleSameValueDuplicateExportedBindings1.symbols diff --git a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings.types b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings1.types similarity index 100% rename from tests/baselines/reference/moduleSameValueDuplicateExportedBindings.types rename to tests/baselines/reference/moduleSameValueDuplicateExportedBindings1.types diff --git a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.js b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.js new file mode 100644 index 00000000000..99a09af149a --- /dev/null +++ b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.js @@ -0,0 +1,34 @@ +//// [tests/cases/compiler/moduleSameValueDuplicateExportedBindings2.ts] //// + +//// [a.ts] +export * from "./b"; +export * from "./c"; + +//// [b.ts] +export {Animals} from "./c"; + +//// [c.ts] +export enum Animals { + Cat, + Dog +}; + +//// [c.js] +"use strict"; +(function (Animals) { + Animals[Animals["Cat"] = 0] = "Cat"; + Animals[Animals["Dog"] = 1] = "Dog"; +})(exports.Animals || (exports.Animals = {})); +var Animals = exports.Animals; +; +//// [b.js] +"use strict"; +var c_1 = require("./c"); +exports.Animals = c_1.Animals; +//// [a.js] +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +__export(require("./b")); +__export(require("./c")); diff --git a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.symbols b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.symbols new file mode 100644 index 00000000000..390fd1b0bed --- /dev/null +++ b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/a.ts === +export * from "./b"; +No type information for this code.export * from "./c"; +No type information for this code. +No type information for this code.=== tests/cases/compiler/b.ts === +export {Animals} from "./c"; +>Animals : Symbol(Animals, Decl(b.ts, 0, 8)) + +=== tests/cases/compiler/c.ts === +export enum Animals { +>Animals : Symbol(Animals, Decl(c.ts, 0, 0)) + + Cat, +>Cat : Symbol(Animals.Cat, Decl(c.ts, 0, 21)) + + Dog +>Dog : Symbol(Animals.Dog, Decl(c.ts, 1, 5)) + +}; diff --git a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.types b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.types new file mode 100644 index 00000000000..600b0d946c6 --- /dev/null +++ b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.types @@ -0,0 +1,19 @@ +=== tests/cases/compiler/a.ts === +export * from "./b"; +No type information for this code.export * from "./c"; +No type information for this code. +No type information for this code.=== tests/cases/compiler/b.ts === +export {Animals} from "./c"; +>Animals : typeof Animals + +=== tests/cases/compiler/c.ts === +export enum Animals { +>Animals : Animals + + Cat, +>Cat : Animals + + Dog +>Dog : Animals + +}; diff --git a/tests/cases/compiler/moduleSameValueDuplicateExportedBindings.ts b/tests/cases/compiler/moduleSameValueDuplicateExportedBindings1.ts similarity index 100% rename from tests/cases/compiler/moduleSameValueDuplicateExportedBindings.ts rename to tests/cases/compiler/moduleSameValueDuplicateExportedBindings1.ts diff --git a/tests/cases/compiler/moduleSameValueDuplicateExportedBindings2.ts b/tests/cases/compiler/moduleSameValueDuplicateExportedBindings2.ts new file mode 100644 index 00000000000..1a30004301a --- /dev/null +++ b/tests/cases/compiler/moduleSameValueDuplicateExportedBindings2.ts @@ -0,0 +1,13 @@ +// @module: commonjs +// @filename: a.ts +export * from "./b"; +export * from "./c"; + +// @filename: b.ts +export {Animals} from "./c"; + +// @filename: c.ts +export enum Animals { + Cat, + Dog +}; \ No newline at end of file From 6b42712eb2edf7e330ae2510f64484268be9dc19 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 30 Nov 2015 13:26:00 -0800 Subject: [PATCH 040/103] Report bind diagnostics, program diagnostics and file pre processing diagnostics in javascript file Handles #5785 --- src/compiler/program.ts | 14 +++++----- .../jsFileCompilationBindErrors.errors.txt | 27 +++++++++++++++++++ .../jsFileCompilationBindErrors.symbols | 21 --------------- .../jsFileCompilationBindErrors.types | 26 ------------------ ...mpilationExportAssignmentSyntax.errors.txt | 5 +++- .../getJavaScriptSemanticDiagnostics2.ts | 7 +++++ 6 files changed, 44 insertions(+), 56 deletions(-) create mode 100644 tests/baselines/reference/jsFileCompilationBindErrors.errors.txt delete mode 100644 tests/baselines/reference/jsFileCompilationBindErrors.symbols delete mode 100644 tests/baselines/reference/jsFileCompilationBindErrors.types diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 6139dda0013..b73558cfc6b 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -661,19 +661,17 @@ namespace ts { } function getSemanticDiagnosticsForFile(sourceFile: SourceFile, cancellationToken: CancellationToken): Diagnostic[] { - // For JavaScript files, we don't want to report the normal typescript semantic errors. - // Instead, we just report errors for using TypeScript-only constructs from within a - // JavaScript file. - if (isSourceFileJavaScript(sourceFile)) { - return getJavaScriptSemanticDiagnosticsForFile(sourceFile, cancellationToken); - } - return runWithCancellationToken(() => { const typeChecker = getDiagnosticsProducingTypeChecker(); Debug.assert(!!sourceFile.bindDiagnostics); const bindDiagnostics = sourceFile.bindDiagnostics; - const checkDiagnostics = typeChecker.getDiagnostics(sourceFile, cancellationToken); + // For JavaScript files, we don't want to report the normal typescript semantic errors. + // Instead, we just report errors for using TypeScript-only constructs from within a + // JavaScript file. + const checkDiagnostics = isSourceFileJavaScript(sourceFile) ? + getJavaScriptSemanticDiagnosticsForFile(sourceFile, cancellationToken) : + typeChecker.getDiagnostics(sourceFile, cancellationToken); const fileProcessingDiagnosticsInFile = fileProcessingDiagnostics.getDiagnostics(sourceFile.fileName); const programDiagnosticsInFile = programDiagnostics.getDiagnostics(sourceFile.fileName); diff --git a/tests/baselines/reference/jsFileCompilationBindErrors.errors.txt b/tests/baselines/reference/jsFileCompilationBindErrors.errors.txt new file mode 100644 index 00000000000..eeae7053333 --- /dev/null +++ b/tests/baselines/reference/jsFileCompilationBindErrors.errors.txt @@ -0,0 +1,27 @@ +tests/cases/compiler/a.js(1,5): error TS2451: Cannot redeclare block-scoped variable 'C'. +tests/cases/compiler/a.js(2,5): error TS2451: Cannot redeclare block-scoped variable 'C'. +tests/cases/compiler/a.js(6,5): error TS7027: Unreachable code detected. +tests/cases/compiler/a.js(11,9): error TS1100: Invalid use of 'arguments' in strict mode. + + +==== tests/cases/compiler/a.js (4 errors) ==== + let C = "sss"; + ~ +!!! error TS2451: Cannot redeclare block-scoped variable 'C'. + let C = 0; // Error: Cannot redeclare block-scoped variable 'C'. + ~ +!!! error TS2451: Cannot redeclare block-scoped variable 'C'. + + function f() { + return; + return; // Error: Unreachable code detected. + ~~~~~~ +!!! error TS7027: Unreachable code detected. + } + + function b() { + "use strict"; + var arguments = 0; // Error: Invalid use of 'arguments' in strict mode. + ~~~~~~~~~ +!!! error TS1100: Invalid use of 'arguments' in strict mode. + } \ No newline at end of file diff --git a/tests/baselines/reference/jsFileCompilationBindErrors.symbols b/tests/baselines/reference/jsFileCompilationBindErrors.symbols deleted file mode 100644 index 6ad06da1df6..00000000000 --- a/tests/baselines/reference/jsFileCompilationBindErrors.symbols +++ /dev/null @@ -1,21 +0,0 @@ -=== tests/cases/compiler/a.js === -let C = "sss"; ->C : Symbol(C, Decl(a.js, 0, 3)) - -let C = 0; // Error: Cannot redeclare block-scoped variable 'C'. ->C : Symbol(C, Decl(a.js, 1, 3)) - -function f() { ->f : Symbol(f, Decl(a.js, 1, 10)) - - return; - return; // Error: Unreachable code detected. -} - -function b() { ->b : Symbol(b, Decl(a.js, 6, 1)) - - "use strict"; - var arguments = 0; // Error: Invalid use of 'arguments' in strict mode. ->arguments : Symbol(arguments, Decl(a.js, 10, 7)) -} diff --git a/tests/baselines/reference/jsFileCompilationBindErrors.types b/tests/baselines/reference/jsFileCompilationBindErrors.types deleted file mode 100644 index 113bcd08bc9..00000000000 --- a/tests/baselines/reference/jsFileCompilationBindErrors.types +++ /dev/null @@ -1,26 +0,0 @@ -=== tests/cases/compiler/a.js === -let C = "sss"; ->C : string ->"sss" : string - -let C = 0; // Error: Cannot redeclare block-scoped variable 'C'. ->C : number ->0 : number - -function f() { ->f : () => void - - return; - return; // Error: Unreachable code detected. -} - -function b() { ->b : () => void - - "use strict"; ->"use strict" : string - - var arguments = 0; // Error: Invalid use of 'arguments' in strict mode. ->arguments : number ->0 : number -} diff --git a/tests/baselines/reference/jsFileCompilationExportAssignmentSyntax.errors.txt b/tests/baselines/reference/jsFileCompilationExportAssignmentSyntax.errors.txt index f537941c55c..3be5f99823a 100644 --- a/tests/baselines/reference/jsFileCompilationExportAssignmentSyntax.errors.txt +++ b/tests/baselines/reference/jsFileCompilationExportAssignmentSyntax.errors.txt @@ -1,9 +1,12 @@ error TS5055: Cannot write file 'tests/cases/compiler/a.js' because it would overwrite input file. +tests/cases/compiler/a.js(1,1): error TS1148: Cannot compile modules unless the '--module' flag is provided. tests/cases/compiler/a.js(1,1): error TS8003: 'export=' can only be used in a .ts file. !!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' because it would overwrite input file. -==== tests/cases/compiler/a.js (1 errors) ==== +==== tests/cases/compiler/a.js (2 errors) ==== export = b; ~~~~~~~~~~~ +!!! error TS1148: Cannot compile modules unless the '--module' flag is provided. + ~~~~~~~~~~~ !!! error TS8003: 'export=' can only be used in a .ts file. \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptSemanticDiagnostics2.ts b/tests/cases/fourslash/getJavaScriptSemanticDiagnostics2.ts index 9ab29b41798..58c02dae183 100644 --- a/tests/cases/fourslash/getJavaScriptSemanticDiagnostics2.ts +++ b/tests/cases/fourslash/getJavaScriptSemanticDiagnostics2.ts @@ -11,5 +11,12 @@ verify.getSemanticDiagnostics(`[ "length": 11, "category": "error", "code": 8003 + }, + { + "message": "Cannot compile modules unless the '--module' flag is provided.", + "start": 0, + "length": 11, + "category": "error", + "code": 1148 } ]`); \ No newline at end of file From 5772dade970d366f61c8b5bffb0f7d60b1edf8d1 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 30 Nov 2015 13:59:03 -0800 Subject: [PATCH 041/103] Add test case for reporting file preprocessing error in javascript file --- src/compiler/program.ts | 2 ++ ...CompilationExternalPackageError.errors.txt | 19 +++++++++++++++++++ .../jsFileCompilationExternalPackageError.ts | 16 ++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 tests/baselines/reference/jsFileCompilationExternalPackageError.errors.txt create mode 100644 tests/cases/compiler/jsFileCompilationExternalPackageError.ts diff --git a/src/compiler/program.ts b/src/compiler/program.ts index b73558cfc6b..ed9f010c56a 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -1077,6 +1077,8 @@ namespace ts { const importedFile = findSourceFile(resolution.resolvedFileName, toPath(resolution.resolvedFileName, currentDirectory, getCanonicalFileName), /*isDefaultLib*/ false, file, skipTrivia(file.text, file.imports[i].pos), file.imports[i].end); if (importedFile && resolution.isExternalLibraryImport) { + // Since currently irrespective of allowJs, we only look for supportedTypeScript extension external module files, + // this check is ok. Otherwise this would be never true for javascript file if (!isExternalModule(importedFile)) { const start = getTokenPosOfNode(file.imports[i], file); fileProcessingDiagnostics.add(createFileDiagnostic(file, start, file.imports[i].end - start, Diagnostics.Exported_external_package_typings_file_0_is_not_a_module_Please_contact_the_package_author_to_update_the_package_definition, importedFile.fileName)); diff --git a/tests/baselines/reference/jsFileCompilationExternalPackageError.errors.txt b/tests/baselines/reference/jsFileCompilationExternalPackageError.errors.txt new file mode 100644 index 00000000000..58111c777f1 --- /dev/null +++ b/tests/baselines/reference/jsFileCompilationExternalPackageError.errors.txt @@ -0,0 +1,19 @@ +tests/cases/compiler/moduleA/a.js(2,17): error TS2656: Exported external package typings file 'tests/cases/compiler/node_modules/b.ts' is not a module. Please contact the package author to update the package definition. + + +==== tests/cases/compiler/moduleA/a.js (1 errors) ==== + + import {a} from "b"; + ~~~ +!!! error TS2656: Exported external package typings file 'b.ts' is not a module. Please contact the package author to update the package definition. + a++; + import {c} from "c"; + c++; + +==== tests/cases/compiler/node_modules/b.ts (0 errors) ==== + var a = 10; + +==== tests/cases/compiler/node_modules/c.js (0 errors) ==== + exports.a = 10; + c = 10; + \ No newline at end of file diff --git a/tests/cases/compiler/jsFileCompilationExternalPackageError.ts b/tests/cases/compiler/jsFileCompilationExternalPackageError.ts new file mode 100644 index 00000000000..cb9d32adb82 --- /dev/null +++ b/tests/cases/compiler/jsFileCompilationExternalPackageError.ts @@ -0,0 +1,16 @@ +// @allowJs: true +// @noEmit: true +// @module: commonjs + +// @filename: moduleA/a.js +import {a} from "b"; +a++; +import {c} from "c"; +c++; + +// @filename: node_modules/b.ts +var a = 10; + +// @filename: node_modules/c.js +exports.a = 10; +c = 10; From 130f3304ea0efe27e63ff4824224a263ddabf7f3 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 1 Dec 2015 14:35:26 -0800 Subject: [PATCH 042/103] Style nits for the style nit god --- src/compiler/checker.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index fb70bd747a6..4d936320ba6 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1128,7 +1128,7 @@ namespace ts { function visit(symbol: Symbol): SymbolTable { if (symbol && symbol.flags & SymbolFlags.HasExports && !contains(visitedSymbols, symbol)) { visitedSymbols.push(symbol); - const symbols: SymbolTable = cloneSymbolTable(symbol.exports); + const symbols = cloneSymbolTable(symbol.exports); // All export * declarations are collected in an __export symbol by the binder const exportStars = symbol.exports["__export"]; if (exportStars) { @@ -1146,8 +1146,8 @@ namespace ts { } for (const id in lookupTable) { const { exportsWithDuplicate } = lookupTable[id]; - // Its not an error if the file with multiple export *'s with duplicate names exports a member with that name itself - if (id === "export=" || !exportsWithDuplicate.length || id in symbols) { + // It's not an error if the file with multiple export *'s with duplicate names exports a member with that name itself + if (id === "export=" || !exportsWithDuplicate.length || hasProperty(symbols, id)) { continue; } for (const node of exportsWithDuplicate) { @@ -14138,7 +14138,7 @@ namespace ts { if (id === "__export") { continue; } - const {declarations, flags} = exports[id]; + const { declarations, flags } = exports[id]; // ECMA262: 15.2.1.1 It is a Syntax Error if the ExportedNames of ModuleItemList contains any duplicate entries. (TS Exceptions: namespaces, function overloads, enums, and interfaces) if (!(flags & (SymbolFlags.Namespace | SymbolFlags.Interface | SymbolFlags.Enum)) && declarations.length > 1) { const exportedDeclarations: Declaration[] = filter(declarations, isNotOverload); From 02d96f67bbb6093a5f422d7886c8ddd9b12346ae Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 1 Dec 2015 14:57:59 -0800 Subject: [PATCH 043/103] trio of missed style nits --- src/compiler/checker.ts | 2 +- src/compiler/emitter.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 4d936320ba6..6a99cf9a67c 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1146,7 +1146,7 @@ namespace ts { } for (const id in lookupTable) { const { exportsWithDuplicate } = lookupTable[id]; - // It's not an error if the file with multiple export *'s with duplicate names exports a member with that name itself + // It's not an error if the file with multiple `export *`s with duplicate names exports a member with that name itself if (id === "export=" || !exportsWithDuplicate.length || hasProperty(symbols, id)) { continue; } diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 947b88567d9..19f1e51565b 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -6211,7 +6211,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi // do not emit var if variable was already hoisted const isES6ExportedEnum = isES6ExportedDeclaration(node); - if ((!(node.flags & NodeFlags.Export)) || (isES6ExportedEnum && isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, SyntaxKind.EnumDeclaration))) { + if (!(node.flags & NodeFlags.Export) || (isES6ExportedEnum && isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, SyntaxKind.EnumDeclaration))) { emitStart(node); if (isES6ExportedEnum) { write("export "); @@ -6328,7 +6328,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi if (emitVarForModule) { const isES6ExportedNamespace = isES6ExportedDeclaration(node); - if ((!isES6ExportedNamespace) || isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, SyntaxKind.ModuleDeclaration)) { + if (!isES6ExportedNamespace || isFirstDeclarationOfKind(node, node.symbol && node.symbol.declarations, SyntaxKind.ModuleDeclaration)) { emitStart(node); if (isES6ExportedNamespace) { write("export "); From 956a6b720abf65376e80de610f819ec06afcf260 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Tue, 1 Dec 2015 16:18:06 -0800 Subject: [PATCH 044/103] Add support for Chakra Host in sys. --- src/compiler/sys.ts | 71 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/src/compiler/sys.ts b/src/compiler/sys.ts index 3a90ca42fa1..a05383f0b9a 100644 --- a/src/compiler/sys.ts +++ b/src/compiler/sys.ts @@ -47,6 +47,21 @@ namespace ts { constructor(o: any); } + declare var ChakraHost: { + args: string[]; + currentDirectory: string; + executingFile: string; + echo(s: string): void; + quit(exitCode?: number): void; + fileExists(path: string): boolean; + directoryExists(path: string): boolean; + createDirectory(path: string): void; + resolvePath(path: string): string; + readFile(path: string): string; + writeFile(path: string, contents: string): void; + readDirectory(path: string, extension?: string, exclude?: string[]): string[]; + } + export var sys: System = (function () { function getWScriptSystem(): System { @@ -281,7 +296,7 @@ namespace ts { // REVIEW: for now this implementation uses polling. // The advantage of polling is that it works reliably // on all os and with network mounted files. - // For 90 referenced files, the average time to detect + // For 90 referenced files, the average time to detect // changes is 2*msInterval (by default 5 seconds). // The overhead of this is .04 percent (1/2500) with // average pause of < 1 millisecond (and max @@ -406,7 +421,7 @@ namespace ts { }; }, watchDirectory: (path, callback, recursive) => { - // Node 4.0 `fs.watch` function supports the "recursive" option on both OSX and Windows + // Node 4.0 `fs.watch` function supports the "recursive" option on both OSX and Windows // (ref: https://github.com/nodejs/node/pull/2649 and https://github.com/Microsoft/TypeScript/issues/4643) return _fs.watch( path, @@ -454,6 +469,53 @@ namespace ts { } }; } + function getChakraSystem(): System { + + return { + newLine: '\r\n', + args: ChakraHost.args, + useCaseSensitiveFileNames: false, + write(message: string) { + ChakraHost.echo(message); + }, + readFile(path: string, encoding?: string) { + // encoding is automatically handled by the implementation in ChakraHost + return ChakraHost.readFile(path); + }, + writeFile(path: string, data: string, writeByteOrderMark?: boolean) { + // If a BOM is required, emit one + if (writeByteOrderMark) { + data = "\uFEFF" + data; + } + + ChakraHost.writeFile(path, data); + }, + resolvePath(path: string) { + return ChakraHost.resolvePath(path); + }, + fileExists(path: string) { + return ChakraHost.fileExists(path); + }, + directoryExists(path: string) { + return ChakraHost.directoryExists(path); + }, + createDirectory(path: string) { + ChakraHost.createDirectory(path); + }, + getExecutingFilePath() { + return ChakraHost.executingFile; + }, + getCurrentDirectory() { + return ChakraHost.currentDirectory; + }, + readDirectory(path: string, extension?: string, exclude?: string[]) { + return ChakraHost.readDirectory(path, extension, exclude); + }, + exit(exitCode?: number) { + ChakraHost.quit(exitCode); + } + }; + } if (typeof WScript !== "undefined" && typeof ActiveXObject === "function") { return getWScriptSystem(); } @@ -462,8 +524,13 @@ namespace ts { // process.browser check excludes webpack and browserify return getNodeSystem(); } + else if (typeof ChakraHost !== "undefined") { + return getChakraSystem(); + } else { return undefined; // Unsupported host } })(); } + + From 8d3e4f34756839b483ee3a7219c264c3e2b75366 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Tue, 1 Dec 2015 17:44:43 -0800 Subject: [PATCH 045/103] cr feedback --- src/compiler/sys.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/compiler/sys.ts b/src/compiler/sys.ts index a05383f0b9a..3b75a26a9a0 100644 --- a/src/compiler/sys.ts +++ b/src/compiler/sys.ts @@ -60,7 +60,7 @@ namespace ts { readFile(path: string): string; writeFile(path: string, contents: string): void; readDirectory(path: string, extension?: string, exclude?: string[]): string[]; - } + }; export var sys: System = (function () { @@ -209,6 +209,7 @@ namespace ts { } }; } + function getNodeSystem(): System { const _fs = require("fs"); const _path = require("path"); @@ -469,10 +470,11 @@ namespace ts { } }; } + function getChakraSystem(): System { return { - newLine: '\r\n', + newLine: "\r\n", args: ChakraHost.args, useCaseSensitiveFileNames: false, write(message: string) { @@ -516,6 +518,7 @@ namespace ts { } }; } + if (typeof WScript !== "undefined" && typeof ActiveXObject === "function") { return getWScriptSystem(); } From 181c10a78fa116e791602215b51dd527cb425ffb Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 2 Dec 2015 10:23:28 -0800 Subject: [PATCH 046/103] Ensure that different type parameters are never considered identical --- src/compiler/checker.ts | 35 +++++++---------------------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index e737cd58bd5..523af078c01 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5073,9 +5073,6 @@ namespace ts { } return objectTypeRelatedTo(source, source, target, /*reportErrors*/ false); } - if (source.flags & TypeFlags.TypeParameter && target.flags & TypeFlags.TypeParameter) { - return typeParameterIdenticalTo(source, target); - } if (source.flags & TypeFlags.Union && target.flags & TypeFlags.Union || source.flags & TypeFlags.Intersection && target.flags & TypeFlags.Intersection) { if (result = eachTypeRelatedToSomeType(source, target)) { @@ -5206,17 +5203,6 @@ namespace ts { return result; } - function typeParameterIdenticalTo(source: TypeParameter, target: TypeParameter): Ternary { - // covers case when both type parameters does not have constraint (both equal to noConstraintType) - if (source.constraint === target.constraint) { - return Ternary.True; - } - if (source.constraint === noConstraintType || target.constraint === noConstraintType) { - return Ternary.False; - } - return isIdenticalTo(source.constraint, target.constraint); - } - // Determine if two object types are related by structure. First, check if the result is already available in the global cache. // Second, check if we have already started a comparison of the given two types in which case we assume the result to be true. // Third, check if both types are part of deeply nested chains of generic type instantiations and if so assume the types are @@ -5765,26 +5751,19 @@ namespace ts { if (!(isMatchingSignature(source, target, partialMatch))) { return Ternary.False; } - let result = Ternary.True; - if (source.typeParameters && target.typeParameters) { - if (source.typeParameters.length !== target.typeParameters.length) { - return Ternary.False; - } - for (let i = 0, len = source.typeParameters.length; i < len; ++i) { - const related = compareTypes(source.typeParameters[i], target.typeParameters[i]); - if (!related) { - return Ternary.False; - } - result &= related; - } - } - else if (source.typeParameters || target.typeParameters) { + // Check that the two signatures have the same number of type parameters. We might consider + // also checking that any type parameter constraints match, but that would require instantiating + // the constraints with a common set of type arguments to get relatable entities in places where + // type parameters occur in the constraints. The complexity of doing that doesn't seem worthwhile, + // particularly as we're comparing erased versions of the signatures below. + if ((source.typeParameters ? source.typeParameters.length : 0) !== (target.typeParameters ? target.typeParameters.length : 0)) { return Ternary.False; } // Spec 1.0 Section 3.8.3 & 3.8.4: // M and N (the signatures) are instantiated using type Any as the type argument for all type parameters declared by M and N source = getErasedSignature(source); target = getErasedSignature(target); + let result = Ternary.True; const targetLen = target.parameters.length; for (let i = 0; i < targetLen; i++) { const s = isRestParameterIndex(source, i) ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[i]); From 561360d550de590129fd899452c15d2e5d081d9d Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 2 Dec 2015 10:23:49 -0800 Subject: [PATCH 047/103] Adding regression test --- .../reference/unionTypeParameterInference.js | 14 ++++++++ .../unionTypeParameterInference.symbols | 33 ++++++++++++++++++ .../unionTypeParameterInference.types | 34 +++++++++++++++++++ .../compiler/unionTypeParameterInference.ts | 7 ++++ 4 files changed, 88 insertions(+) create mode 100644 tests/baselines/reference/unionTypeParameterInference.js create mode 100644 tests/baselines/reference/unionTypeParameterInference.symbols create mode 100644 tests/baselines/reference/unionTypeParameterInference.types create mode 100644 tests/cases/compiler/unionTypeParameterInference.ts diff --git a/tests/baselines/reference/unionTypeParameterInference.js b/tests/baselines/reference/unionTypeParameterInference.js new file mode 100644 index 00000000000..cc797c511c8 --- /dev/null +++ b/tests/baselines/reference/unionTypeParameterInference.js @@ -0,0 +1,14 @@ +//// [unionTypeParameterInference.ts] +interface Foo { prop: T; } + +declare function lift(value: U | Foo): Foo; + +function unlift(value: U | Foo): U { + return lift(value).prop; // error TS2322: Type '{}' is not assignable to type 'U'. +} + + +//// [unionTypeParameterInference.js] +function unlift(value) { + return lift(value).prop; // error TS2322: Type '{}' is not assignable to type 'U'. +} diff --git a/tests/baselines/reference/unionTypeParameterInference.symbols b/tests/baselines/reference/unionTypeParameterInference.symbols new file mode 100644 index 00000000000..ee540379284 --- /dev/null +++ b/tests/baselines/reference/unionTypeParameterInference.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/unionTypeParameterInference.ts === +interface Foo { prop: T; } +>Foo : Symbol(Foo, Decl(unionTypeParameterInference.ts, 0, 0)) +>T : Symbol(T, Decl(unionTypeParameterInference.ts, 0, 14)) +>prop : Symbol(prop, Decl(unionTypeParameterInference.ts, 0, 18)) +>T : Symbol(T, Decl(unionTypeParameterInference.ts, 0, 14)) + +declare function lift(value: U | Foo): Foo; +>lift : Symbol(lift, Decl(unionTypeParameterInference.ts, 0, 29)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 2, 22)) +>value : Symbol(value, Decl(unionTypeParameterInference.ts, 2, 25)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 2, 22)) +>Foo : Symbol(Foo, Decl(unionTypeParameterInference.ts, 0, 0)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 2, 22)) +>Foo : Symbol(Foo, Decl(unionTypeParameterInference.ts, 0, 0)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 2, 22)) + +function unlift(value: U | Foo): U { +>unlift : Symbol(unlift, Decl(unionTypeParameterInference.ts, 2, 52)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 4, 16)) +>value : Symbol(value, Decl(unionTypeParameterInference.ts, 4, 19)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 4, 16)) +>Foo : Symbol(Foo, Decl(unionTypeParameterInference.ts, 0, 0)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 4, 16)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 4, 16)) + + return lift(value).prop; // error TS2322: Type '{}' is not assignable to type 'U'. +>lift(value).prop : Symbol(Foo.prop, Decl(unionTypeParameterInference.ts, 0, 18)) +>lift : Symbol(lift, Decl(unionTypeParameterInference.ts, 0, 29)) +>value : Symbol(value, Decl(unionTypeParameterInference.ts, 4, 19)) +>prop : Symbol(Foo.prop, Decl(unionTypeParameterInference.ts, 0, 18)) +} + diff --git a/tests/baselines/reference/unionTypeParameterInference.types b/tests/baselines/reference/unionTypeParameterInference.types new file mode 100644 index 00000000000..a4b6a09cf2c --- /dev/null +++ b/tests/baselines/reference/unionTypeParameterInference.types @@ -0,0 +1,34 @@ +=== tests/cases/compiler/unionTypeParameterInference.ts === +interface Foo { prop: T; } +>Foo : Foo +>T : T +>prop : T +>T : T + +declare function lift(value: U | Foo): Foo; +>lift : (value: U | Foo) => Foo +>U : U +>value : U | Foo +>U : U +>Foo : Foo +>U : U +>Foo : Foo +>U : U + +function unlift(value: U | Foo): U { +>unlift : (value: U | Foo) => U +>U : U +>value : U | Foo +>U : U +>Foo : Foo +>U : U +>U : U + + return lift(value).prop; // error TS2322: Type '{}' is not assignable to type 'U'. +>lift(value).prop : U +>lift(value) : Foo +>lift : (value: U | Foo) => Foo +>value : U | Foo +>prop : U +} + diff --git a/tests/cases/compiler/unionTypeParameterInference.ts b/tests/cases/compiler/unionTypeParameterInference.ts new file mode 100644 index 00000000000..221b0891b98 --- /dev/null +++ b/tests/cases/compiler/unionTypeParameterInference.ts @@ -0,0 +1,7 @@ +interface Foo { prop: T; } + +declare function lift(value: U | Foo): Foo; + +function unlift(value: U | Foo): U { + return lift(value).prop; // error TS2322: Type '{}' is not assignable to type 'U'. +} From dfb32c5daeec501ae0817dadceeda1cb0d7a35c5 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Wed, 2 Dec 2015 11:49:54 -0800 Subject: [PATCH 048/103] Simplified after CR feedback. --- src/compiler/sys.ts | 36 +++++++++--------------------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/src/compiler/sys.ts b/src/compiler/sys.ts index 3b75a26a9a0..cd7580119b5 100644 --- a/src/compiler/sys.ts +++ b/src/compiler/sys.ts @@ -477,9 +477,7 @@ namespace ts { newLine: "\r\n", args: ChakraHost.args, useCaseSensitiveFileNames: false, - write(message: string) { - ChakraHost.echo(message); - }, + write: ChakraHost.echo, readFile(path: string, encoding?: string) { // encoding is automatically handled by the implementation in ChakraHost return ChakraHost.readFile(path); @@ -492,30 +490,14 @@ namespace ts { ChakraHost.writeFile(path, data); }, - resolvePath(path: string) { - return ChakraHost.resolvePath(path); - }, - fileExists(path: string) { - return ChakraHost.fileExists(path); - }, - directoryExists(path: string) { - return ChakraHost.directoryExists(path); - }, - createDirectory(path: string) { - ChakraHost.createDirectory(path); - }, - getExecutingFilePath() { - return ChakraHost.executingFile; - }, - getCurrentDirectory() { - return ChakraHost.currentDirectory; - }, - readDirectory(path: string, extension?: string, exclude?: string[]) { - return ChakraHost.readDirectory(path, extension, exclude); - }, - exit(exitCode?: number) { - ChakraHost.quit(exitCode); - } + resolvePath: ChakraHost.resolvePath, + fileExists: ChakraHost.fileExists, + directoryExists: ChakraHost.directoryExists, + createDirectory: ChakraHost.createDirectory, + getExecutingFilePath: () => ChakraHost.executingFile, + getCurrentDirectory: () => ChakraHost.currentDirectory, + readDirectory: ChakraHost.readDirectory, + exit: ChakraHost.quit, }; } From 6116cc9c590222dc001fb97122b3568d9858dfec Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 2 Dec 2015 11:59:53 -0800 Subject: [PATCH 049/103] Duplicate symbol error --- ...FileCompilationBindDuplicateIdentifier.errors.txt | 12 ++++++++++++ .../jsFileCompilationBindDuplicateIdentifier.ts | 6 ++++++ 2 files changed, 18 insertions(+) create mode 100644 tests/baselines/reference/jsFileCompilationBindDuplicateIdentifier.errors.txt create mode 100644 tests/cases/compiler/jsFileCompilationBindDuplicateIdentifier.ts diff --git a/tests/baselines/reference/jsFileCompilationBindDuplicateIdentifier.errors.txt b/tests/baselines/reference/jsFileCompilationBindDuplicateIdentifier.errors.txt new file mode 100644 index 00000000000..2816eaee8b4 --- /dev/null +++ b/tests/baselines/reference/jsFileCompilationBindDuplicateIdentifier.errors.txt @@ -0,0 +1,12 @@ +tests/cases/compiler/a.js(1,5): error TS2300: Duplicate identifier 'a'. +tests/cases/compiler/a.js(2,7): error TS2300: Duplicate identifier 'a'. + + +==== tests/cases/compiler/a.js (2 errors) ==== + var a = 10; + ~ +!!! error TS2300: Duplicate identifier 'a'. + class a { + ~ +!!! error TS2300: Duplicate identifier 'a'. + } \ No newline at end of file diff --git a/tests/cases/compiler/jsFileCompilationBindDuplicateIdentifier.ts b/tests/cases/compiler/jsFileCompilationBindDuplicateIdentifier.ts new file mode 100644 index 00000000000..3433adc17d5 --- /dev/null +++ b/tests/cases/compiler/jsFileCompilationBindDuplicateIdentifier.ts @@ -0,0 +1,6 @@ +// @allowJs: true +// @noEmit: true +// @filename: a.js +var a = 10; +class a { +} \ No newline at end of file From 234527093aab12ce91e496952cfdd5b9145fd432 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 2 Dec 2015 12:00:53 -0800 Subject: [PATCH 050/103] Multiple default exports error. --- ...lationBindMultipleDefaultExports.errors.txt | 18 ++++++++++++++++++ ...ileCompilationBindMultipleDefaultExports.ts | 7 +++++++ 2 files changed, 25 insertions(+) create mode 100644 tests/baselines/reference/jsFileCompilationBindMultipleDefaultExports.errors.txt create mode 100644 tests/cases/compiler/jsFileCompilationBindMultipleDefaultExports.ts diff --git a/tests/baselines/reference/jsFileCompilationBindMultipleDefaultExports.errors.txt b/tests/baselines/reference/jsFileCompilationBindMultipleDefaultExports.errors.txt new file mode 100644 index 00000000000..733f66922ab --- /dev/null +++ b/tests/baselines/reference/jsFileCompilationBindMultipleDefaultExports.errors.txt @@ -0,0 +1,18 @@ +tests/cases/compiler/a.js(1,22): error TS2528: A module cannot have multiple default exports. +tests/cases/compiler/a.js(3,1): error TS2528: A module cannot have multiple default exports. +tests/cases/compiler/a.js(3,1): error TS8003: 'export=' can only be used in a .ts file. +tests/cases/compiler/a.js(3,16): error TS1109: Expression expected. + + +==== tests/cases/compiler/a.js (4 errors) ==== + export default class a { + ~ +!!! error TS2528: A module cannot have multiple default exports. + } + export default var a = 10; + ~~~~~~~~~~~~~~ +!!! error TS2528: A module cannot have multiple default exports. + ~~~~~~~~~~~~~~ +!!! error TS8003: 'export=' can only be used in a .ts file. + ~~~ +!!! error TS1109: Expression expected. \ No newline at end of file diff --git a/tests/cases/compiler/jsFileCompilationBindMultipleDefaultExports.ts b/tests/cases/compiler/jsFileCompilationBindMultipleDefaultExports.ts new file mode 100644 index 00000000000..32a9e77fcc7 --- /dev/null +++ b/tests/cases/compiler/jsFileCompilationBindMultipleDefaultExports.ts @@ -0,0 +1,7 @@ +// @allowJs: true +// @noEmit: true +// @filename: a.js +// @target: es6 +export default class a { +} +export default var a = 10; \ No newline at end of file From 469b7fdcbb7d51a46471ca50a90ba08912e7362a Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 2 Dec 2015 12:35:34 -0800 Subject: [PATCH 051/103] Strict mode errors --- ...CompilationBindStrictModeErrors.errors.txt | 70 +++++++++++++++++++ .../jsFileCompilationBindStrictModeErrors.ts | 35 ++++++++++ 2 files changed, 105 insertions(+) create mode 100644 tests/baselines/reference/jsFileCompilationBindStrictModeErrors.errors.txt create mode 100644 tests/cases/compiler/jsFileCompilationBindStrictModeErrors.ts diff --git a/tests/baselines/reference/jsFileCompilationBindStrictModeErrors.errors.txt b/tests/baselines/reference/jsFileCompilationBindStrictModeErrors.errors.txt new file mode 100644 index 00000000000..d74dca88664 --- /dev/null +++ b/tests/baselines/reference/jsFileCompilationBindStrictModeErrors.errors.txt @@ -0,0 +1,70 @@ +tests/cases/compiler/a.js(3,5): error TS2300: Duplicate identifier 'a'. +tests/cases/compiler/a.js(5,5): error TS1117: An object literal cannot have multiple properties with the same name in strict mode. +tests/cases/compiler/a.js(5,5): error TS2300: Duplicate identifier 'a'. +tests/cases/compiler/a.js(8,8): error TS1102: 'delete' cannot be called on an identifier in strict mode. +tests/cases/compiler/a.js(10,10): error TS1100: Invalid use of 'eval' in strict mode. +tests/cases/compiler/a.js(12,10): error TS1100: Invalid use of 'arguments' in strict mode. +tests/cases/compiler/a.js(14,9): error TS1121: Octal literals are not allowed in strict mode. +tests/cases/compiler/a.js(14,11): error TS1005: ',' expected. +tests/cases/compiler/a.js(15,1): error TS1101: 'with' statements are not allowed in strict mode. +tests/cases/compiler/b.js(5,7): error TS1210: Invalid use of 'eval'. Class definitions are automatically in strict mode. +tests/cases/compiler/c.js(1,12): error TS1214: Identifier expected. 'let' is a reserved word in strict mode. Modules are automatically in strict mode. +tests/cases/compiler/c.js(2,5): error TS1215: Invalid use of 'eval'. Modules are automatically in strict mode. + + +==== tests/cases/compiler/a.js (9 errors) ==== + "use strict"; + var a = { + a: "hello", // error + ~ +!!! error TS2300: Duplicate identifier 'a'. + b: 10, + a: 10 // error + ~ +!!! error TS1117: An object literal cannot have multiple properties with the same name in strict mode. + ~ +!!! error TS2300: Duplicate identifier 'a'. + }; + var let = 10; // error + delete a; // error + ~ +!!! error TS1102: 'delete' cannot be called on an identifier in strict mode. + try { + } catch (eval) { // error + ~~~~ +!!! error TS1100: Invalid use of 'eval' in strict mode. + } + function arguments() { // error + ~~~~~~~~~ +!!! error TS1100: Invalid use of 'arguments' in strict mode. + } + var x = 009; + ~~ +!!! error TS1121: Octal literals are not allowed in strict mode. + ~ +!!! error TS1005: ',' expected. + with (a) { + ~~~~ +!!! error TS1101: 'with' statements are not allowed in strict mode. + b = 10; + } + +==== tests/cases/compiler/b.js (1 errors) ==== + // this is not in strict mode but class definitions are always in strict mode + class c { + let() { // error + } + a(eval) { //error + ~~~~ +!!! error TS1210: Invalid use of 'eval'. Class definitions are automatically in strict mode. + } + } + +==== tests/cases/compiler/c.js (2 errors) ==== + export var let = 10; // external modules are automatically in strict mode + ~~~ +!!! error TS1214: Identifier expected. 'let' is a reserved word in strict mode. Modules are automatically in strict mode. + var eval = function () { + ~~~~ +!!! error TS1215: Invalid use of 'eval'. Modules are automatically in strict mode. + }; \ No newline at end of file diff --git a/tests/cases/compiler/jsFileCompilationBindStrictModeErrors.ts b/tests/cases/compiler/jsFileCompilationBindStrictModeErrors.ts new file mode 100644 index 00000000000..c6812522e0c --- /dev/null +++ b/tests/cases/compiler/jsFileCompilationBindStrictModeErrors.ts @@ -0,0 +1,35 @@ +// @allowJs: true +// @noEmit: true +// @filename: a.js +// @target: es6 +"use strict"; +var a = { + a: "hello", // error + b: 10, + a: 10 // error +}; +var let = 10; // error +delete a; // error +try { +} catch (eval) { // error +} +function arguments() { // error +} +var x = 009; +with (a) { + b = 10; +} + +// @filename: b.js +// this is not in strict mode but class definitions are always in strict mode +class c { + let() { // error + } + a(eval) { //error + } +} + +// @filename: c.js +export var let = 10; // external modules are automatically in strict mode +var eval = function () { +}; \ No newline at end of file From da8557d672974b31a883d8786a928bd927c5eacf Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 2 Dec 2015 12:49:53 -0800 Subject: [PATCH 052/103] Reachability errors --- ...mpilationBindReachabilityErrors.errors.txt | 31 +++++++++++++++++++ ...jsFileCompilationBindReachabilityErrors.ts | 23 ++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 tests/baselines/reference/jsFileCompilationBindReachabilityErrors.errors.txt create mode 100644 tests/cases/compiler/jsFileCompilationBindReachabilityErrors.ts diff --git a/tests/baselines/reference/jsFileCompilationBindReachabilityErrors.errors.txt b/tests/baselines/reference/jsFileCompilationBindReachabilityErrors.errors.txt new file mode 100644 index 00000000000..a883e66e607 --- /dev/null +++ b/tests/baselines/reference/jsFileCompilationBindReachabilityErrors.errors.txt @@ -0,0 +1,31 @@ +tests/cases/compiler/a.js(3,9): error TS7029: Fallthrough case in switch. +tests/cases/compiler/a.js(16,5): error TS7027: Unreachable code detected. +tests/cases/compiler/a.js(19,1): error TS7028: Unused label. + + +==== tests/cases/compiler/a.js (3 errors) ==== + function foo(a, b) { + switch (a) { + case 10: + ~~~~ +!!! error TS7029: Fallthrough case in switch. + if (b) { + return b; + } + case 20: + return a; + } + } + + function bar() { + return x; + function bar2() { + } + var x = 10; // error + ~~~ +!!! error TS7027: Unreachable code detected. + } + + label1: var x2 = 10; + ~~~~~~ +!!! error TS7028: Unused label. \ No newline at end of file diff --git a/tests/cases/compiler/jsFileCompilationBindReachabilityErrors.ts b/tests/cases/compiler/jsFileCompilationBindReachabilityErrors.ts new file mode 100644 index 00000000000..b95f85c2139 --- /dev/null +++ b/tests/cases/compiler/jsFileCompilationBindReachabilityErrors.ts @@ -0,0 +1,23 @@ +// @allowJs: true +// @noEmit: true +// @filename: a.js +// @noFallthroughCasesInSwitch: true +function foo(a, b) { + switch (a) { + case 10: + if (b) { + return b; + } + case 20: + return a; + } +} + +function bar() { + return x; + function bar2() { + } + var x = 10; // error +} + +label1: var x2 = 10; \ No newline at end of file From 9ffa3cd3e50747fadbf724bb3b3cff5649832a87 Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 2 Dec 2015 13:42:43 -0800 Subject: [PATCH 053/103] Check grammar for let/const declaration for all targets --- src/compiler/checker.ts | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index e737cd58bd5..1431a91ff43 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -15973,18 +15973,27 @@ namespace ts { : Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement; return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic); } - const firstDeclaration = variableList.declarations[0]; - if (firstDeclaration.initializer) { - const diagnostic = forInOrOfStatement.kind === SyntaxKind.ForInStatement - ? Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer - : Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; - return grammarErrorOnNode(firstDeclaration.name, diagnostic); - } - if (firstDeclaration.type) { - const diagnostic = forInOrOfStatement.kind === SyntaxKind.ForInStatement - ? Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation - : Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; - return grammarErrorOnNode(firstDeclaration, diagnostic); + const firstDeclaration = variableList.declarations[0] + + // firstDeclaration can be undefined if there is variable declaration in for-of or for-in + // See http://www.ecma-international.org/ecma-262/6.0/#sec-for-in-and-for-of-statements for details + // For example: + // var let = 10; + // for (let of [1,2,3]) {} // this is invalid ES6 syntax + // for (let in [1,2,3]) {} // this is invalid ES6 syntax + if (firstDeclaration) { + if (firstDeclaration.initializer) { + const diagnostic = forInOrOfStatement.kind === SyntaxKind.ForInStatement + ? Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer + : Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; + return grammarErrorOnNode(firstDeclaration.name, diagnostic); + } + if (firstDeclaration.type) { + const diagnostic = forInOrOfStatement.kind === SyntaxKind.ForInStatement + ? Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation + : Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; + return grammarErrorOnNode(firstDeclaration, diagnostic); + } } } } @@ -16172,7 +16181,7 @@ namespace ts { } } - const checkLetConstNames = languageVersion >= ScriptTarget.ES6 && (isLet(node) || isConst(node)); + const checkLetConstNames = (isLet(node) || isConst(node)); // 1. LexicalDeclaration : LetOrConst BindingList ; // It is a Syntax Error if the BoundNames of BindingList contains "let". @@ -16186,7 +16195,7 @@ namespace ts { function checkGrammarNameInLetOrConstDeclarations(name: Identifier | BindingPattern): boolean { if (name.kind === SyntaxKind.Identifier) { - if ((name).text === "let") { + if ((name).originalKeywordKind === SyntaxKind.LetKeyword) { return grammarErrorOnNode(name, Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations); } } From 63ac3cda711541989e2648fe5c1e53046a8baaea Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 2 Dec 2015 13:43:06 -0800 Subject: [PATCH 054/103] All tests for using let --- .../invalidLetInForOfAndForIn_ES5.errors.txt | 22 +++++++++ .../invalidLetInForOfAndForIn_ES5.js | 18 +++++++ .../invalidLetInForOfAndForIn_ES6.errors.txt | 22 +++++++++ .../invalidLetInForOfAndForIn_ES6.js | 18 +++++++ tests/baselines/reference/letAsIdentifier2.js | 6 +++ .../reference/letAsIdentifier2.symbols | 5 ++ .../reference/letAsIdentifier2.types | 5 ++ .../letInConstDeclarations_ES5.errors.txt | 16 +++++++ .../reference/letInConstDeclarations_ES5.js | 15 ++++++ .../letInConstDeclarations_ES6.errors.txt | 16 +++++++ .../reference/letInConstDeclarations_ES6.js | 15 ++++++ ...LetConstDeclOfForOfAndForIn_ES5.errors.txt | 48 +++++++++++++++++++ .../letInLetConstDeclOfForOfAndForIn_ES5.js | 43 +++++++++++++++++ ...LetConstDeclOfForOfAndForIn_ES6.errors.txt | 48 +++++++++++++++++++ .../letInLetConstDeclOfForOfAndForIn_ES6.js | 35 ++++++++++++++ .../letInLetDeclarations_ES5.errors.txt | 16 +++++++ .../reference/letInLetDeclarations_ES5.js | 15 ++++++ .../letInLetDeclarations_ES6.errors.txt | 16 +++++++ .../reference/letInLetDeclarations_ES6.js | 15 ++++++ .../letInLetOrConstDeclarations.errors.txt | 23 --------- .../reference/letInLetOrConstDeclarations.js | 25 ---------- .../reference/letInVarDeclOfForIn_ES5.js | 16 +++++++ .../reference/letInVarDeclOfForIn_ES5.symbols | 11 +++++ .../reference/letInVarDeclOfForIn_ES5.types | 19 ++++++++ .../reference/letInVarDeclOfForIn_ES6.js | 16 +++++++ .../reference/letInVarDeclOfForIn_ES6.symbols | 11 +++++ .../reference/letInVarDeclOfForIn_ES6.types | 19 ++++++++ .../reference/letInVarDeclOfForOf_ES5.js | 20 ++++++++ .../reference/letInVarDeclOfForOf_ES5.symbols | 11 +++++ .../reference/letInVarDeclOfForOf_ES5.types | 19 ++++++++ .../reference/letInVarDeclOfForOf_ES6.js | 16 +++++++ .../reference/letInVarDeclOfForOf_ES6.symbols | 11 +++++ .../reference/letInVarDeclOfForOf_ES6.types | 19 ++++++++ .../strictModeReservedWord.errors.txt | 8 +++- .../compiler/invalidLetInForOfAndForIn_ES5.ts | 10 ++++ .../compiler/invalidLetInForOfAndForIn_ES6.ts | 10 ++++ tests/cases/compiler/letAsIdentifier2.ts | 3 ++ .../compiler/letInConstDeclarations_ES5.ts | 8 ++++ .../compiler/letInConstDeclarations_ES6.ts | 8 ++++ .../letInLetConstDeclOfForOfAndForIn_ES5.ts | 21 ++++++++ .../letInLetConstDeclOfForOfAndForIn_ES6.ts | 21 ++++++++ .../compiler/letInLetDeclarations_ES5.ts | 8 ++++ .../compiler/letInLetDeclarations_ES6.ts | 8 ++++ .../compiler/letInLetOrConstDeclarations.ts | 12 ----- .../cases/compiler/letInVarDeclOfForIn_ES5.ts | 8 ++++ .../cases/compiler/letInVarDeclOfForIn_ES6.ts | 8 ++++ .../cases/compiler/letInVarDeclOfForOf_ES5.ts | 8 ++++ .../cases/compiler/letInVarDeclOfForOf_ES6.ts | 8 ++++ 48 files changed, 718 insertions(+), 61 deletions(-) create mode 100644 tests/baselines/reference/invalidLetInForOfAndForIn_ES5.errors.txt create mode 100644 tests/baselines/reference/invalidLetInForOfAndForIn_ES5.js create mode 100644 tests/baselines/reference/invalidLetInForOfAndForIn_ES6.errors.txt create mode 100644 tests/baselines/reference/invalidLetInForOfAndForIn_ES6.js create mode 100644 tests/baselines/reference/letAsIdentifier2.js create mode 100644 tests/baselines/reference/letAsIdentifier2.symbols create mode 100644 tests/baselines/reference/letAsIdentifier2.types create mode 100644 tests/baselines/reference/letInConstDeclarations_ES5.errors.txt create mode 100644 tests/baselines/reference/letInConstDeclarations_ES5.js create mode 100644 tests/baselines/reference/letInConstDeclarations_ES6.errors.txt create mode 100644 tests/baselines/reference/letInConstDeclarations_ES6.js create mode 100644 tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES5.errors.txt create mode 100644 tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES5.js create mode 100644 tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES6.errors.txt create mode 100644 tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES6.js create mode 100644 tests/baselines/reference/letInLetDeclarations_ES5.errors.txt create mode 100644 tests/baselines/reference/letInLetDeclarations_ES5.js create mode 100644 tests/baselines/reference/letInLetDeclarations_ES6.errors.txt create mode 100644 tests/baselines/reference/letInLetDeclarations_ES6.js delete mode 100644 tests/baselines/reference/letInLetOrConstDeclarations.errors.txt delete mode 100644 tests/baselines/reference/letInLetOrConstDeclarations.js create mode 100644 tests/baselines/reference/letInVarDeclOfForIn_ES5.js create mode 100644 tests/baselines/reference/letInVarDeclOfForIn_ES5.symbols create mode 100644 tests/baselines/reference/letInVarDeclOfForIn_ES5.types create mode 100644 tests/baselines/reference/letInVarDeclOfForIn_ES6.js create mode 100644 tests/baselines/reference/letInVarDeclOfForIn_ES6.symbols create mode 100644 tests/baselines/reference/letInVarDeclOfForIn_ES6.types create mode 100644 tests/baselines/reference/letInVarDeclOfForOf_ES5.js create mode 100644 tests/baselines/reference/letInVarDeclOfForOf_ES5.symbols create mode 100644 tests/baselines/reference/letInVarDeclOfForOf_ES5.types create mode 100644 tests/baselines/reference/letInVarDeclOfForOf_ES6.js create mode 100644 tests/baselines/reference/letInVarDeclOfForOf_ES6.symbols create mode 100644 tests/baselines/reference/letInVarDeclOfForOf_ES6.types create mode 100644 tests/cases/compiler/invalidLetInForOfAndForIn_ES5.ts create mode 100644 tests/cases/compiler/invalidLetInForOfAndForIn_ES6.ts create mode 100644 tests/cases/compiler/letAsIdentifier2.ts create mode 100644 tests/cases/compiler/letInConstDeclarations_ES5.ts create mode 100644 tests/cases/compiler/letInConstDeclarations_ES6.ts create mode 100644 tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts create mode 100644 tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts create mode 100644 tests/cases/compiler/letInLetDeclarations_ES5.ts create mode 100644 tests/cases/compiler/letInLetDeclarations_ES6.ts delete mode 100644 tests/cases/compiler/letInLetOrConstDeclarations.ts create mode 100644 tests/cases/compiler/letInVarDeclOfForIn_ES5.ts create mode 100644 tests/cases/compiler/letInVarDeclOfForIn_ES6.ts create mode 100644 tests/cases/compiler/letInVarDeclOfForOf_ES5.ts create mode 100644 tests/cases/compiler/letInVarDeclOfForOf_ES6.ts diff --git a/tests/baselines/reference/invalidLetInForOfAndForIn_ES5.errors.txt b/tests/baselines/reference/invalidLetInForOfAndForIn_ES5.errors.txt new file mode 100644 index 00000000000..c31b03bae4c --- /dev/null +++ b/tests/baselines/reference/invalidLetInForOfAndForIn_ES5.errors.txt @@ -0,0 +1,22 @@ +tests/cases/compiler/invalidLetInForOfAndForIn_ES5.ts(5,13): error TS1005: '=' expected. +tests/cases/compiler/invalidLetInForOfAndForIn_ES5.ts(5,20): error TS1005: ',' expected. +tests/cases/compiler/invalidLetInForOfAndForIn_ES5.ts(7,1): error TS1005: ';' expected. + + +==== tests/cases/compiler/invalidLetInForOfAndForIn_ES5.ts (3 errors) ==== + // This should be an error + // More details: http://www.ecma-international.org/ecma-262/6.0/#sec-iteration-statements + + var let = 10; + for (let of [1,2,3]) {} + ~ +!!! error TS1005: '=' expected. + ~ +!!! error TS1005: ',' expected. + + for (let in [1,2,3]) {} + ~~~ +!!! error TS1005: ';' expected. + + + \ No newline at end of file diff --git a/tests/baselines/reference/invalidLetInForOfAndForIn_ES5.js b/tests/baselines/reference/invalidLetInForOfAndForIn_ES5.js new file mode 100644 index 00000000000..729cb246a85 --- /dev/null +++ b/tests/baselines/reference/invalidLetInForOfAndForIn_ES5.js @@ -0,0 +1,18 @@ +//// [invalidLetInForOfAndForIn_ES5.ts] +// This should be an error +// More details: http://www.ecma-international.org/ecma-262/6.0/#sec-iteration-statements + +var let = 10; +for (let of [1,2,3]) {} + +for (let in [1,2,3]) {} + + + + +//// [invalidLetInForOfAndForIn_ES5.js] +// This should be an error +// More details: http://www.ecma-international.org/ecma-262/6.0/#sec-iteration-statements +var let = 10; +for (let of = [1, 2, 3], { }; ; ) + for ( in [1, 2, 3]) { } diff --git a/tests/baselines/reference/invalidLetInForOfAndForIn_ES6.errors.txt b/tests/baselines/reference/invalidLetInForOfAndForIn_ES6.errors.txt new file mode 100644 index 00000000000..c126e8b7443 --- /dev/null +++ b/tests/baselines/reference/invalidLetInForOfAndForIn_ES6.errors.txt @@ -0,0 +1,22 @@ +tests/cases/compiler/invalidLetInForOfAndForIn_ES6.ts(5,13): error TS1005: '=' expected. +tests/cases/compiler/invalidLetInForOfAndForIn_ES6.ts(5,20): error TS1005: ',' expected. +tests/cases/compiler/invalidLetInForOfAndForIn_ES6.ts(7,1): error TS1005: ';' expected. + + +==== tests/cases/compiler/invalidLetInForOfAndForIn_ES6.ts (3 errors) ==== + // This should be an error + // More details: http://www.ecma-international.org/ecma-262/6.0/#sec-iteration-statements + + var let = 10; + for (let of [1,2,3]) {} + ~ +!!! error TS1005: '=' expected. + ~ +!!! error TS1005: ',' expected. + + for (let in [1,2,3]) {} + ~~~ +!!! error TS1005: ';' expected. + + + \ No newline at end of file diff --git a/tests/baselines/reference/invalidLetInForOfAndForIn_ES6.js b/tests/baselines/reference/invalidLetInForOfAndForIn_ES6.js new file mode 100644 index 00000000000..93258d6b225 --- /dev/null +++ b/tests/baselines/reference/invalidLetInForOfAndForIn_ES6.js @@ -0,0 +1,18 @@ +//// [invalidLetInForOfAndForIn_ES6.ts] +// This should be an error +// More details: http://www.ecma-international.org/ecma-262/6.0/#sec-iteration-statements + +var let = 10; +for (let of [1,2,3]) {} + +for (let in [1,2,3]) {} + + + + +//// [invalidLetInForOfAndForIn_ES6.js] +// This should be an error +// More details: http://www.ecma-international.org/ecma-262/6.0/#sec-iteration-statements +var let = 10; +for (let of = [1, 2, 3], { }; ; ) + for ( in [1, 2, 3]) { } diff --git a/tests/baselines/reference/letAsIdentifier2.js b/tests/baselines/reference/letAsIdentifier2.js new file mode 100644 index 00000000000..62c8461bfc8 --- /dev/null +++ b/tests/baselines/reference/letAsIdentifier2.js @@ -0,0 +1,6 @@ +//// [letAsIdentifier2.ts] + +function let() {} + +//// [letAsIdentifier2.js] +function let() { } diff --git a/tests/baselines/reference/letAsIdentifier2.symbols b/tests/baselines/reference/letAsIdentifier2.symbols new file mode 100644 index 00000000000..211aae05316 --- /dev/null +++ b/tests/baselines/reference/letAsIdentifier2.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/letAsIdentifier2.ts === + +function let() {} +>let : Symbol(let, Decl(letAsIdentifier2.ts, 0, 0)) + diff --git a/tests/baselines/reference/letAsIdentifier2.types b/tests/baselines/reference/letAsIdentifier2.types new file mode 100644 index 00000000000..dc1416fdae9 --- /dev/null +++ b/tests/baselines/reference/letAsIdentifier2.types @@ -0,0 +1,5 @@ +=== tests/cases/compiler/letAsIdentifier2.ts === + +function let() {} +>let : () => void + diff --git a/tests/baselines/reference/letInConstDeclarations_ES5.errors.txt b/tests/baselines/reference/letInConstDeclarations_ES5.errors.txt new file mode 100644 index 00000000000..8b694c35dbb --- /dev/null +++ b/tests/baselines/reference/letInConstDeclarations_ES5.errors.txt @@ -0,0 +1,16 @@ +tests/cases/compiler/letInConstDeclarations_ES5.ts(3,15): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInConstDeclarations_ES5.ts(6,19): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + +==== tests/cases/compiler/letInConstDeclarations_ES5.ts (2 errors) ==== + + // All use of let in const declaration should be an error + const x = 50, let = 5; + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + { + const x = 10, let = 20; + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/letInConstDeclarations_ES5.js b/tests/baselines/reference/letInConstDeclarations_ES5.js new file mode 100644 index 00000000000..f76d49765f0 --- /dev/null +++ b/tests/baselines/reference/letInConstDeclarations_ES5.js @@ -0,0 +1,15 @@ +//// [letInConstDeclarations_ES5.ts] + +// All use of let in const declaration should be an error +const x = 50, let = 5; + +{ + const x = 10, let = 20; +} + +//// [letInConstDeclarations_ES5.js] +// All use of let in const declaration should be an error +var x = 50, let = 5; +{ + var x_1 = 10, let_1 = 20; +} diff --git a/tests/baselines/reference/letInConstDeclarations_ES6.errors.txt b/tests/baselines/reference/letInConstDeclarations_ES6.errors.txt new file mode 100644 index 00000000000..d29f78be014 --- /dev/null +++ b/tests/baselines/reference/letInConstDeclarations_ES6.errors.txt @@ -0,0 +1,16 @@ +tests/cases/compiler/letInConstDeclarations_ES6.ts(3,15): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInConstDeclarations_ES6.ts(6,19): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + +==== tests/cases/compiler/letInConstDeclarations_ES6.ts (2 errors) ==== + + // All use of let in const declaration should be an error + const x = 50, let = 5; + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + { + const x = 10, let = 20; + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/letInConstDeclarations_ES6.js b/tests/baselines/reference/letInConstDeclarations_ES6.js new file mode 100644 index 00000000000..f209ef1dede --- /dev/null +++ b/tests/baselines/reference/letInConstDeclarations_ES6.js @@ -0,0 +1,15 @@ +//// [letInConstDeclarations_ES6.ts] + +// All use of let in const declaration should be an error +const x = 50, let = 5; + +{ + const x = 10, let = 20; +} + +//// [letInConstDeclarations_ES6.js] +// All use of let in const declaration should be an error +const x = 50, let = 5; +{ + const x = 10, let = 20; +} diff --git a/tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES5.errors.txt b/tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES5.errors.txt new file mode 100644 index 00000000000..e335a9652f4 --- /dev/null +++ b/tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES5.errors.txt @@ -0,0 +1,48 @@ +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts(3,10): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts(5,12): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts(7,10): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts(9,12): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts(12,11): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts(14,13): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts(16,11): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts(18,13): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + +==== tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts (8 errors) ==== + + // Should be an error + for (let let of [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + for (const let of [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + for (let let in [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + for (const let in [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + { + for (let let of [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + for (const let of [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + for (let let in [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + for (const let in [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + } + + \ No newline at end of file diff --git a/tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES5.js b/tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES5.js new file mode 100644 index 00000000000..4c467176492 --- /dev/null +++ b/tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES5.js @@ -0,0 +1,43 @@ +//// [letInLetConstDeclOfForOfAndForIn_ES5.ts] + +// Should be an error +for (let let of [1,2,3]) {} + +for (const let of [1,2,3]) {} + +for (let let in [1,2,3]) {} + +for (const let in [1,2,3]) {} + +{ + for (let let of [1,2,3]) {} + + for (const let of [1,2,3]) {} + + for (let let in [1,2,3]) {} + + for (const let in [1,2,3]) {} +} + + + +//// [letInLetConstDeclOfForOfAndForIn_ES5.js] +// Should be an error +for (var _i = 0, _a = [1, 2, 3]; _i < _a.length; _i++) { + var let = _a[_i]; +} +for (var _b = 0, _c = [1, 2, 3]; _b < _c.length; _b++) { + var let = _c[_b]; +} +for (var let in [1, 2, 3]) { } +for (var let in [1, 2, 3]) { } +{ + for (var _d = 0, _e = [1, 2, 3]; _d < _e.length; _d++) { + var let = _e[_d]; + } + for (var _f = 0, _g = [1, 2, 3]; _f < _g.length; _f++) { + var let = _g[_f]; + } + for (var let in [1, 2, 3]) { } + for (var let in [1, 2, 3]) { } +} diff --git a/tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES6.errors.txt b/tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES6.errors.txt new file mode 100644 index 00000000000..1a5af892b74 --- /dev/null +++ b/tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES6.errors.txt @@ -0,0 +1,48 @@ +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts(3,10): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts(5,12): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts(7,10): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts(9,12): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts(12,11): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts(14,13): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts(16,11): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts(18,13): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + +==== tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts (8 errors) ==== + + // Should be an error + for (let let of [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + for (const let of [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + for (let let in [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + for (const let in [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + { + for (let let of [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + for (const let of [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + for (let let in [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + for (const let in [1,2,3]) {} + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + } + + \ No newline at end of file diff --git a/tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES6.js b/tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES6.js new file mode 100644 index 00000000000..583dc936871 --- /dev/null +++ b/tests/baselines/reference/letInLetConstDeclOfForOfAndForIn_ES6.js @@ -0,0 +1,35 @@ +//// [letInLetConstDeclOfForOfAndForIn_ES6.ts] + +// Should be an error +for (let let of [1,2,3]) {} + +for (const let of [1,2,3]) {} + +for (let let in [1,2,3]) {} + +for (const let in [1,2,3]) {} + +{ + for (let let of [1,2,3]) {} + + for (const let of [1,2,3]) {} + + for (let let in [1,2,3]) {} + + for (const let in [1,2,3]) {} +} + + + +//// [letInLetConstDeclOfForOfAndForIn_ES6.js] +// Should be an error +for (let let of [1, 2, 3]) { } +for (const let of [1, 2, 3]) { } +for (let let in [1, 2, 3]) { } +for (const let in [1, 2, 3]) { } +{ + for (let let of [1, 2, 3]) { } + for (const let of [1, 2, 3]) { } + for (let let in [1, 2, 3]) { } + for (const let in [1, 2, 3]) { } +} diff --git a/tests/baselines/reference/letInLetDeclarations_ES5.errors.txt b/tests/baselines/reference/letInLetDeclarations_ES5.errors.txt new file mode 100644 index 00000000000..73f824dd7de --- /dev/null +++ b/tests/baselines/reference/letInLetDeclarations_ES5.errors.txt @@ -0,0 +1,16 @@ +tests/cases/compiler/letInLetDeclarations_ES5.ts(3,13): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetDeclarations_ES5.ts(6,17): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + +==== tests/cases/compiler/letInLetDeclarations_ES5.ts (2 errors) ==== + + // All use of let in const declaration should be an error + let x = 50, let = 5; + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + { + let x = 10, let = 20; + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/letInLetDeclarations_ES5.js b/tests/baselines/reference/letInLetDeclarations_ES5.js new file mode 100644 index 00000000000..0b7f02150a4 --- /dev/null +++ b/tests/baselines/reference/letInLetDeclarations_ES5.js @@ -0,0 +1,15 @@ +//// [letInLetDeclarations_ES5.ts] + +// All use of let in const declaration should be an error +let x = 50, let = 5; + +{ + let x = 10, let = 20; +} + +//// [letInLetDeclarations_ES5.js] +// All use of let in const declaration should be an error +var x = 50, let = 5; +{ + var x_1 = 10, let_1 = 20; +} diff --git a/tests/baselines/reference/letInLetDeclarations_ES6.errors.txt b/tests/baselines/reference/letInLetDeclarations_ES6.errors.txt new file mode 100644 index 00000000000..0fe1aa882e9 --- /dev/null +++ b/tests/baselines/reference/letInLetDeclarations_ES6.errors.txt @@ -0,0 +1,16 @@ +tests/cases/compiler/letInLetDeclarations_ES6.ts(3,13): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetDeclarations_ES6.ts(6,17): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + +==== tests/cases/compiler/letInLetDeclarations_ES6.ts (2 errors) ==== + + // All use of let in const declaration should be an error + let x = 50, let = 5; + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + { + let x = 10, let = 20; + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + } \ No newline at end of file diff --git a/tests/baselines/reference/letInLetDeclarations_ES6.js b/tests/baselines/reference/letInLetDeclarations_ES6.js new file mode 100644 index 00000000000..7c4385cd4d9 --- /dev/null +++ b/tests/baselines/reference/letInLetDeclarations_ES6.js @@ -0,0 +1,15 @@ +//// [letInLetDeclarations_ES6.ts] + +// All use of let in const declaration should be an error +let x = 50, let = 5; + +{ + let x = 10, let = 20; +} + +//// [letInLetDeclarations_ES6.js] +// All use of let in const declaration should be an error +let x = 50, let = 5; +{ + let x = 10, let = 20; +} diff --git a/tests/baselines/reference/letInLetOrConstDeclarations.errors.txt b/tests/baselines/reference/letInLetOrConstDeclarations.errors.txt deleted file mode 100644 index fbcee276583..00000000000 --- a/tests/baselines/reference/letInLetOrConstDeclarations.errors.txt +++ /dev/null @@ -1,23 +0,0 @@ -tests/cases/compiler/letInLetOrConstDeclarations.ts(2,9): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. -tests/cases/compiler/letInLetOrConstDeclarations.ts(3,14): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. -tests/cases/compiler/letInLetOrConstDeclarations.ts(6,11): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. - - -==== tests/cases/compiler/letInLetOrConstDeclarations.ts (3 errors) ==== - { - let let = 1; // should error - ~~~ -!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. - for (let let in []) { } // should error - ~~~ -!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. - } - { - const let = 1; // should error - ~~~ -!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. - } - { - function let() { // should be ok - } - } \ No newline at end of file diff --git a/tests/baselines/reference/letInLetOrConstDeclarations.js b/tests/baselines/reference/letInLetOrConstDeclarations.js deleted file mode 100644 index ee23abc4e4f..00000000000 --- a/tests/baselines/reference/letInLetOrConstDeclarations.js +++ /dev/null @@ -1,25 +0,0 @@ -//// [letInLetOrConstDeclarations.ts] -{ - let let = 1; // should error - for (let let in []) { } // should error -} -{ - const let = 1; // should error -} -{ - function let() { // should be ok - } -} - -//// [letInLetOrConstDeclarations.js] -{ - let let = 1; // should error - for (let let in []) { } // should error -} -{ - const let = 1; // should error -} -{ - function let() { - } -} diff --git a/tests/baselines/reference/letInVarDeclOfForIn_ES5.js b/tests/baselines/reference/letInVarDeclOfForIn_ES5.js new file mode 100644 index 00000000000..2cef7610199 --- /dev/null +++ b/tests/baselines/reference/letInVarDeclOfForIn_ES5.js @@ -0,0 +1,16 @@ +//// [letInVarDeclOfForIn_ES5.ts] + +// should not be an error +for (var let in [1,2,3]) {} + +{ + for (var let in [1,2,3]) {} +} + + +//// [letInVarDeclOfForIn_ES5.js] +// should not be an error +for (var let in [1, 2, 3]) { } +{ + for (var let in [1, 2, 3]) { } +} diff --git a/tests/baselines/reference/letInVarDeclOfForIn_ES5.symbols b/tests/baselines/reference/letInVarDeclOfForIn_ES5.symbols new file mode 100644 index 00000000000..cbfd0f58086 --- /dev/null +++ b/tests/baselines/reference/letInVarDeclOfForIn_ES5.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/letInVarDeclOfForIn_ES5.ts === + +// should not be an error +for (var let in [1,2,3]) {} +>let : Symbol(let, Decl(letInVarDeclOfForIn_ES5.ts, 2, 8), Decl(letInVarDeclOfForIn_ES5.ts, 5, 9)) + +{ + for (var let in [1,2,3]) {} +>let : Symbol(let, Decl(letInVarDeclOfForIn_ES5.ts, 2, 8), Decl(letInVarDeclOfForIn_ES5.ts, 5, 9)) +} + diff --git a/tests/baselines/reference/letInVarDeclOfForIn_ES5.types b/tests/baselines/reference/letInVarDeclOfForIn_ES5.types new file mode 100644 index 00000000000..ac1ca3f27c9 --- /dev/null +++ b/tests/baselines/reference/letInVarDeclOfForIn_ES5.types @@ -0,0 +1,19 @@ +=== tests/cases/compiler/letInVarDeclOfForIn_ES5.ts === + +// should not be an error +for (var let in [1,2,3]) {} +>let : any +>[1,2,3] : number[] +>1 : number +>2 : number +>3 : number + +{ + for (var let in [1,2,3]) {} +>let : any +>[1,2,3] : number[] +>1 : number +>2 : number +>3 : number +} + diff --git a/tests/baselines/reference/letInVarDeclOfForIn_ES6.js b/tests/baselines/reference/letInVarDeclOfForIn_ES6.js new file mode 100644 index 00000000000..1cf6850f588 --- /dev/null +++ b/tests/baselines/reference/letInVarDeclOfForIn_ES6.js @@ -0,0 +1,16 @@ +//// [letInVarDeclOfForIn_ES6.ts] + +// should not be an error +for (var let in [1,2,3]) {} + +{ + for (var let in [1,2,3]) {} +} + + +//// [letInVarDeclOfForIn_ES6.js] +// should not be an error +for (var let in [1, 2, 3]) { } +{ + for (var let in [1, 2, 3]) { } +} diff --git a/tests/baselines/reference/letInVarDeclOfForIn_ES6.symbols b/tests/baselines/reference/letInVarDeclOfForIn_ES6.symbols new file mode 100644 index 00000000000..3b3e68e3040 --- /dev/null +++ b/tests/baselines/reference/letInVarDeclOfForIn_ES6.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/letInVarDeclOfForIn_ES6.ts === + +// should not be an error +for (var let in [1,2,3]) {} +>let : Symbol(let, Decl(letInVarDeclOfForIn_ES6.ts, 2, 8), Decl(letInVarDeclOfForIn_ES6.ts, 5, 9)) + +{ + for (var let in [1,2,3]) {} +>let : Symbol(let, Decl(letInVarDeclOfForIn_ES6.ts, 2, 8), Decl(letInVarDeclOfForIn_ES6.ts, 5, 9)) +} + diff --git a/tests/baselines/reference/letInVarDeclOfForIn_ES6.types b/tests/baselines/reference/letInVarDeclOfForIn_ES6.types new file mode 100644 index 00000000000..3c508bd8e2b --- /dev/null +++ b/tests/baselines/reference/letInVarDeclOfForIn_ES6.types @@ -0,0 +1,19 @@ +=== tests/cases/compiler/letInVarDeclOfForIn_ES6.ts === + +// should not be an error +for (var let in [1,2,3]) {} +>let : any +>[1,2,3] : number[] +>1 : number +>2 : number +>3 : number + +{ + for (var let in [1,2,3]) {} +>let : any +>[1,2,3] : number[] +>1 : number +>2 : number +>3 : number +} + diff --git a/tests/baselines/reference/letInVarDeclOfForOf_ES5.js b/tests/baselines/reference/letInVarDeclOfForOf_ES5.js new file mode 100644 index 00000000000..cdc374fbea0 --- /dev/null +++ b/tests/baselines/reference/letInVarDeclOfForOf_ES5.js @@ -0,0 +1,20 @@ +//// [letInVarDeclOfForOf_ES5.ts] + +// should not be an error +for (var let of [1,2,3]) {} + +{ + for (var let of [1,2,3]) {} +} + + +//// [letInVarDeclOfForOf_ES5.js] +// should not be an error +for (var _i = 0, _a = [1, 2, 3]; _i < _a.length; _i++) { + var let = _a[_i]; +} +{ + for (var _b = 0, _c = [1, 2, 3]; _b < _c.length; _b++) { + var let = _c[_b]; + } +} diff --git a/tests/baselines/reference/letInVarDeclOfForOf_ES5.symbols b/tests/baselines/reference/letInVarDeclOfForOf_ES5.symbols new file mode 100644 index 00000000000..f5411cfca2d --- /dev/null +++ b/tests/baselines/reference/letInVarDeclOfForOf_ES5.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/letInVarDeclOfForOf_ES5.ts === + +// should not be an error +for (var let of [1,2,3]) {} +>let : Symbol(let, Decl(letInVarDeclOfForOf_ES5.ts, 2, 8), Decl(letInVarDeclOfForOf_ES5.ts, 5, 9)) + +{ + for (var let of [1,2,3]) {} +>let : Symbol(let, Decl(letInVarDeclOfForOf_ES5.ts, 2, 8), Decl(letInVarDeclOfForOf_ES5.ts, 5, 9)) +} + diff --git a/tests/baselines/reference/letInVarDeclOfForOf_ES5.types b/tests/baselines/reference/letInVarDeclOfForOf_ES5.types new file mode 100644 index 00000000000..a1000df8bed --- /dev/null +++ b/tests/baselines/reference/letInVarDeclOfForOf_ES5.types @@ -0,0 +1,19 @@ +=== tests/cases/compiler/letInVarDeclOfForOf_ES5.ts === + +// should not be an error +for (var let of [1,2,3]) {} +>let : number +>[1,2,3] : number[] +>1 : number +>2 : number +>3 : number + +{ + for (var let of [1,2,3]) {} +>let : number +>[1,2,3] : number[] +>1 : number +>2 : number +>3 : number +} + diff --git a/tests/baselines/reference/letInVarDeclOfForOf_ES6.js b/tests/baselines/reference/letInVarDeclOfForOf_ES6.js new file mode 100644 index 00000000000..fca365c4b0d --- /dev/null +++ b/tests/baselines/reference/letInVarDeclOfForOf_ES6.js @@ -0,0 +1,16 @@ +//// [letInVarDeclOfForOf_ES6.ts] + +// should not be an error +for (var let of [1,2,3]) {} + +{ + for (var let of [1,2,3]) {} +} + + +//// [letInVarDeclOfForOf_ES6.js] +// should not be an error +for (var let of [1, 2, 3]) { } +{ + for (var let of [1, 2, 3]) { } +} diff --git a/tests/baselines/reference/letInVarDeclOfForOf_ES6.symbols b/tests/baselines/reference/letInVarDeclOfForOf_ES6.symbols new file mode 100644 index 00000000000..d4c14eff0b0 --- /dev/null +++ b/tests/baselines/reference/letInVarDeclOfForOf_ES6.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/letInVarDeclOfForOf_ES6.ts === + +// should not be an error +for (var let of [1,2,3]) {} +>let : Symbol(let, Decl(letInVarDeclOfForOf_ES6.ts, 2, 8), Decl(letInVarDeclOfForOf_ES6.ts, 5, 9)) + +{ + for (var let of [1,2,3]) {} +>let : Symbol(let, Decl(letInVarDeclOfForOf_ES6.ts, 2, 8), Decl(letInVarDeclOfForOf_ES6.ts, 5, 9)) +} + diff --git a/tests/baselines/reference/letInVarDeclOfForOf_ES6.types b/tests/baselines/reference/letInVarDeclOfForOf_ES6.types new file mode 100644 index 00000000000..1515895feda --- /dev/null +++ b/tests/baselines/reference/letInVarDeclOfForOf_ES6.types @@ -0,0 +1,19 @@ +=== tests/cases/compiler/letInVarDeclOfForOf_ES6.ts === + +// should not be an error +for (var let of [1,2,3]) {} +>let : number +>[1,2,3] : number[] +>1 : number +>2 : number +>3 : number + +{ + for (var let of [1,2,3]) {} +>let : number +>[1,2,3] : number[] +>1 : number +>2 : number +>3 : number +} + diff --git a/tests/baselines/reference/strictModeReservedWord.errors.txt b/tests/baselines/reference/strictModeReservedWord.errors.txt index 6f6a387429d..02ece81a1d9 100644 --- a/tests/baselines/reference/strictModeReservedWord.errors.txt +++ b/tests/baselines/reference/strictModeReservedWord.errors.txt @@ -1,6 +1,8 @@ +tests/cases/compiler/strictModeReservedWord.ts(1,5): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. tests/cases/compiler/strictModeReservedWord.ts(5,9): error TS1212: Identifier expected. 'public' is a reserved word in strict mode tests/cases/compiler/strictModeReservedWord.ts(6,9): error TS1212: Identifier expected. 'static' is a reserved word in strict mode tests/cases/compiler/strictModeReservedWord.ts(7,9): error TS1212: Identifier expected. 'let' is a reserved word in strict mode +tests/cases/compiler/strictModeReservedWord.ts(7,9): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. tests/cases/compiler/strictModeReservedWord.ts(8,9): error TS1212: Identifier expected. 'package' is a reserved word in strict mode tests/cases/compiler/strictModeReservedWord.ts(8,9): error TS2300: Duplicate identifier 'package'. tests/cases/compiler/strictModeReservedWord.ts(9,14): error TS1212: Identifier expected. 'package' is a reserved word in strict mode @@ -41,8 +43,10 @@ tests/cases/compiler/strictModeReservedWord.ts(24,5): error TS1212: Identifier e tests/cases/compiler/strictModeReservedWord.ts(24,5): error TS2349: Cannot invoke an expression whose type lacks a call signature. -==== tests/cases/compiler/strictModeReservedWord.ts (41 errors) ==== +==== tests/cases/compiler/strictModeReservedWord.ts (43 errors) ==== let let = 10; + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. function foo() { "use strict" @@ -55,6 +59,8 @@ tests/cases/compiler/strictModeReservedWord.ts(24,5): error TS2349: Cannot invok let let = "blah"; ~~~ !!! error TS1212: Identifier expected. 'let' is a reserved word in strict mode + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. var package = "hello" ~~~~~~~ !!! error TS1212: Identifier expected. 'package' is a reserved word in strict mode diff --git a/tests/cases/compiler/invalidLetInForOfAndForIn_ES5.ts b/tests/cases/compiler/invalidLetInForOfAndForIn_ES5.ts new file mode 100644 index 00000000000..03a01204462 --- /dev/null +++ b/tests/cases/compiler/invalidLetInForOfAndForIn_ES5.ts @@ -0,0 +1,10 @@ +// @target: es6 +// This should be an error +// More details: http://www.ecma-international.org/ecma-262/6.0/#sec-iteration-statements + +var let = 10; +for (let of [1,2,3]) {} + +for (let in [1,2,3]) {} + + diff --git a/tests/cases/compiler/invalidLetInForOfAndForIn_ES6.ts b/tests/cases/compiler/invalidLetInForOfAndForIn_ES6.ts new file mode 100644 index 00000000000..03a01204462 --- /dev/null +++ b/tests/cases/compiler/invalidLetInForOfAndForIn_ES6.ts @@ -0,0 +1,10 @@ +// @target: es6 +// This should be an error +// More details: http://www.ecma-international.org/ecma-262/6.0/#sec-iteration-statements + +var let = 10; +for (let of [1,2,3]) {} + +for (let in [1,2,3]) {} + + diff --git a/tests/cases/compiler/letAsIdentifier2.ts b/tests/cases/compiler/letAsIdentifier2.ts new file mode 100644 index 00000000000..7ebbeb0704b --- /dev/null +++ b/tests/cases/compiler/letAsIdentifier2.ts @@ -0,0 +1,3 @@ +// @target: es6 + +function let() {} \ No newline at end of file diff --git a/tests/cases/compiler/letInConstDeclarations_ES5.ts b/tests/cases/compiler/letInConstDeclarations_ES5.ts new file mode 100644 index 00000000000..2898abd1e2a --- /dev/null +++ b/tests/cases/compiler/letInConstDeclarations_ES5.ts @@ -0,0 +1,8 @@ +// @target: es5 + +// All use of let in const declaration should be an error +const x = 50, let = 5; + +{ + const x = 10, let = 20; +} \ No newline at end of file diff --git a/tests/cases/compiler/letInConstDeclarations_ES6.ts b/tests/cases/compiler/letInConstDeclarations_ES6.ts new file mode 100644 index 00000000000..aac2a592d11 --- /dev/null +++ b/tests/cases/compiler/letInConstDeclarations_ES6.ts @@ -0,0 +1,8 @@ +// @target: es6 + +// All use of let in const declaration should be an error +const x = 50, let = 5; + +{ + const x = 10, let = 20; +} \ No newline at end of file diff --git a/tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts b/tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts new file mode 100644 index 00000000000..7e8b6824329 --- /dev/null +++ b/tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES5.ts @@ -0,0 +1,21 @@ +// @target: es5 + +// Should be an error +for (let let of [1,2,3]) {} + +for (const let of [1,2,3]) {} + +for (let let in [1,2,3]) {} + +for (const let in [1,2,3]) {} + +{ + for (let let of [1,2,3]) {} + + for (const let of [1,2,3]) {} + + for (let let in [1,2,3]) {} + + for (const let in [1,2,3]) {} +} + diff --git a/tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts b/tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts new file mode 100644 index 00000000000..68ba1716199 --- /dev/null +++ b/tests/cases/compiler/letInLetConstDeclOfForOfAndForIn_ES6.ts @@ -0,0 +1,21 @@ +// @target: es6 + +// Should be an error +for (let let of [1,2,3]) {} + +for (const let of [1,2,3]) {} + +for (let let in [1,2,3]) {} + +for (const let in [1,2,3]) {} + +{ + for (let let of [1,2,3]) {} + + for (const let of [1,2,3]) {} + + for (let let in [1,2,3]) {} + + for (const let in [1,2,3]) {} +} + diff --git a/tests/cases/compiler/letInLetDeclarations_ES5.ts b/tests/cases/compiler/letInLetDeclarations_ES5.ts new file mode 100644 index 00000000000..8d4a71b85c8 --- /dev/null +++ b/tests/cases/compiler/letInLetDeclarations_ES5.ts @@ -0,0 +1,8 @@ +// @target: es5 + +// All use of let in const declaration should be an error +let x = 50, let = 5; + +{ + let x = 10, let = 20; +} \ No newline at end of file diff --git a/tests/cases/compiler/letInLetDeclarations_ES6.ts b/tests/cases/compiler/letInLetDeclarations_ES6.ts new file mode 100644 index 00000000000..8c4650dd938 --- /dev/null +++ b/tests/cases/compiler/letInLetDeclarations_ES6.ts @@ -0,0 +1,8 @@ +// @target: es6 + +// All use of let in const declaration should be an error +let x = 50, let = 5; + +{ + let x = 10, let = 20; +} \ No newline at end of file diff --git a/tests/cases/compiler/letInLetOrConstDeclarations.ts b/tests/cases/compiler/letInLetOrConstDeclarations.ts deleted file mode 100644 index c622759a459..00000000000 --- a/tests/cases/compiler/letInLetOrConstDeclarations.ts +++ /dev/null @@ -1,12 +0,0 @@ -// @target: es6 -{ - let let = 1; // should error - for (let let in []) { } // should error -} -{ - const let = 1; // should error -} -{ - function let() { // should be ok - } -} \ No newline at end of file diff --git a/tests/cases/compiler/letInVarDeclOfForIn_ES5.ts b/tests/cases/compiler/letInVarDeclOfForIn_ES5.ts new file mode 100644 index 00000000000..684dc3b2e9f --- /dev/null +++ b/tests/cases/compiler/letInVarDeclOfForIn_ES5.ts @@ -0,0 +1,8 @@ +// @target: es5 + +// should not be an error +for (var let in [1,2,3]) {} + +{ + for (var let in [1,2,3]) {} +} diff --git a/tests/cases/compiler/letInVarDeclOfForIn_ES6.ts b/tests/cases/compiler/letInVarDeclOfForIn_ES6.ts new file mode 100644 index 00000000000..8d79f41713e --- /dev/null +++ b/tests/cases/compiler/letInVarDeclOfForIn_ES6.ts @@ -0,0 +1,8 @@ +// @target: es6 + +// should not be an error +for (var let in [1,2,3]) {} + +{ + for (var let in [1,2,3]) {} +} diff --git a/tests/cases/compiler/letInVarDeclOfForOf_ES5.ts b/tests/cases/compiler/letInVarDeclOfForOf_ES5.ts new file mode 100644 index 00000000000..2d369aa162e --- /dev/null +++ b/tests/cases/compiler/letInVarDeclOfForOf_ES5.ts @@ -0,0 +1,8 @@ +// @target: es5 + +// should not be an error +for (var let of [1,2,3]) {} + +{ + for (var let of [1,2,3]) {} +} diff --git a/tests/cases/compiler/letInVarDeclOfForOf_ES6.ts b/tests/cases/compiler/letInVarDeclOfForOf_ES6.ts new file mode 100644 index 00000000000..9e343a45f4b --- /dev/null +++ b/tests/cases/compiler/letInVarDeclOfForOf_ES6.ts @@ -0,0 +1,8 @@ +// @target: es6 + +// should not be an error +for (var let of [1,2,3]) {} + +{ + for (var let of [1,2,3]) {} +} From 58a83f1e45ddaa7a289c24bc84f870b7b0500203 Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 2 Dec 2015 13:57:10 -0800 Subject: [PATCH 055/103] Fix linter error --- src/compiler/checker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 1431a91ff43..5063cb6dea2 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -15973,7 +15973,7 @@ namespace ts { : Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement; return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic); } - const firstDeclaration = variableList.declarations[0] + const firstDeclaration = variableList.declarations[0]; // firstDeclaration can be undefined if there is variable declaration in for-of or for-in // See http://www.ecma-international.org/ecma-262/6.0/#sec-for-in-and-for-of-statements for details From 4fcb53b2536d4e29e9da7cb245e2388a200c4b24 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 2 Dec 2015 14:00:34 -0800 Subject: [PATCH 056/103] Strict mode errors --- ...CompilationBindStrictModeErrors.errors.txt | 37 ++++++++++++------- .../jsFileCompilationBindStrictModeErrors.ts | 13 +++++-- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/tests/baselines/reference/jsFileCompilationBindStrictModeErrors.errors.txt b/tests/baselines/reference/jsFileCompilationBindStrictModeErrors.errors.txt index d74dca88664..65dffb5a08e 100644 --- a/tests/baselines/reference/jsFileCompilationBindStrictModeErrors.errors.txt +++ b/tests/baselines/reference/jsFileCompilationBindStrictModeErrors.errors.txt @@ -1,18 +1,20 @@ tests/cases/compiler/a.js(3,5): error TS2300: Duplicate identifier 'a'. tests/cases/compiler/a.js(5,5): error TS1117: An object literal cannot have multiple properties with the same name in strict mode. tests/cases/compiler/a.js(5,5): error TS2300: Duplicate identifier 'a'. +tests/cases/compiler/a.js(7,5): error TS1212: Identifier expected. 'let' is a reserved word in strict mode tests/cases/compiler/a.js(8,8): error TS1102: 'delete' cannot be called on an identifier in strict mode. tests/cases/compiler/a.js(10,10): error TS1100: Invalid use of 'eval' in strict mode. tests/cases/compiler/a.js(12,10): error TS1100: Invalid use of 'arguments' in strict mode. -tests/cases/compiler/a.js(14,9): error TS1121: Octal literals are not allowed in strict mode. -tests/cases/compiler/a.js(14,11): error TS1005: ',' expected. tests/cases/compiler/a.js(15,1): error TS1101: 'with' statements are not allowed in strict mode. -tests/cases/compiler/b.js(5,7): error TS1210: Invalid use of 'eval'. Class definitions are automatically in strict mode. +tests/cases/compiler/b.js(3,7): error TS1210: Invalid use of 'eval'. Class definitions are automatically in strict mode. +tests/cases/compiler/b.js(6,13): error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode. tests/cases/compiler/c.js(1,12): error TS1214: Identifier expected. 'let' is a reserved word in strict mode. Modules are automatically in strict mode. tests/cases/compiler/c.js(2,5): error TS1215: Invalid use of 'eval'. Modules are automatically in strict mode. +tests/cases/compiler/d.js(2,9): error TS1121: Octal literals are not allowed in strict mode. +tests/cases/compiler/d.js(2,11): error TS1005: ',' expected. -==== tests/cases/compiler/a.js (9 errors) ==== +==== tests/cases/compiler/a.js (8 errors) ==== "use strict"; var a = { a: "hello", // error @@ -26,6 +28,8 @@ tests/cases/compiler/c.js(2,5): error TS1215: Invalid use of 'eval'. Modules are !!! error TS2300: Duplicate identifier 'a'. }; var let = 10; // error + ~~~ +!!! error TS1212: Identifier expected. 'let' is a reserved word in strict mode delete a; // error ~ !!! error TS1102: 'delete' cannot be called on an identifier in strict mode. @@ -38,26 +42,25 @@ tests/cases/compiler/c.js(2,5): error TS1215: Invalid use of 'eval'. Modules are ~~~~~~~~~ !!! error TS1100: Invalid use of 'arguments' in strict mode. } - var x = 009; - ~~ -!!! error TS1121: Octal literals are not allowed in strict mode. - ~ -!!! error TS1005: ',' expected. + with (a) { ~~~~ !!! error TS1101: 'with' statements are not allowed in strict mode. b = 10; } -==== tests/cases/compiler/b.js (1 errors) ==== +==== tests/cases/compiler/b.js (2 errors) ==== // this is not in strict mode but class definitions are always in strict mode class c { - let() { // error - } a(eval) { //error ~~~~ !!! error TS1210: Invalid use of 'eval'. Class definitions are automatically in strict mode. } + method() { + var let = 10; // error + ~~~ +!!! error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode. + } } ==== tests/cases/compiler/c.js (2 errors) ==== @@ -67,4 +70,12 @@ tests/cases/compiler/c.js(2,5): error TS1215: Invalid use of 'eval'. Modules are var eval = function () { ~~~~ !!! error TS1215: Invalid use of 'eval'. Modules are automatically in strict mode. - }; \ No newline at end of file + }; + +==== tests/cases/compiler/d.js (2 errors) ==== + "use strict"; + var x = 009; // error + ~~ +!!! error TS1121: Octal literals are not allowed in strict mode. + ~ +!!! error TS1005: ',' expected. \ No newline at end of file diff --git a/tests/cases/compiler/jsFileCompilationBindStrictModeErrors.ts b/tests/cases/compiler/jsFileCompilationBindStrictModeErrors.ts index c6812522e0c..30b43b1990e 100644 --- a/tests/cases/compiler/jsFileCompilationBindStrictModeErrors.ts +++ b/tests/cases/compiler/jsFileCompilationBindStrictModeErrors.ts @@ -15,7 +15,7 @@ try { } function arguments() { // error } -var x = 009; + with (a) { b = 10; } @@ -23,13 +23,18 @@ with (a) { // @filename: b.js // this is not in strict mode but class definitions are always in strict mode class c { - let() { // error - } a(eval) { //error } + method() { + var let = 10; // error + } } // @filename: c.js export var let = 10; // external modules are automatically in strict mode var eval = function () { -}; \ No newline at end of file +}; + +//@filename: d.js +"use strict"; +var x = 009; // error \ No newline at end of file From c82fe8631513bf9940093b9c9d8d2f6426a3a1dc Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Wed, 2 Dec 2015 15:16:04 -0800 Subject: [PATCH 057/103] Remove apparent type of primitives from errors And accept baselines --- src/compiler/checker.ts | 11 +++++++++-- tests/baselines/reference/assignToFn.errors.txt | 2 -- .../baselines/reference/assignmentToObject.errors.txt | 2 -- .../assignmentToObjectAndFunction.errors.txt | 6 +----- ...bstractAssignabilityConstructorFunction.errors.txt | 4 +--- .../baselines/reference/contextualTyping24.errors.txt | 4 +--- .../baselines/reference/enumAssignability.errors.txt | 6 ------ tests/baselines/reference/for-of30.errors.txt | 2 -- ...nericCallWithGenericSignatureArguments3.errors.txt | 4 +--- .../baselines/reference/incompatibleTypes.errors.txt | 2 -- ...heritanceMemberAccessorOverridingMethod.errors.txt | 2 -- ...heritanceStaticAccessorOverridingMethod.errors.txt | 2 -- ...heritanceStaticPropertyOverridingMethod.errors.txt | 2 -- tests/baselines/reference/intTypeCheck.errors.txt | 8 -------- .../reference/invalidBooleanAssignments.errors.txt | 2 -- .../reference/recursiveFunctionTypes.errors.txt | 10 ---------- tests/baselines/reference/typeName1.errors.txt | 4 ---- 17 files changed, 13 insertions(+), 60 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 06b0b603d02..577e546868f 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -376,6 +376,14 @@ namespace ts { return node.kind === SyntaxKind.SourceFile && !isExternalOrCommonJsModule(node); } + /** Is this type one of the apparent types created from the primitive types. */ + function isPrimitiveApparentType(type: Type): boolean { + return type === globalStringType || + type === globalNumberType || + type === globalBooleanType || + type === globalESSymbolType; + } + function getSymbol(symbols: SymbolTable, name: string, meaning: SymbolFlags): Symbol { if (meaning && hasProperty(symbols, name)) { const symbol = symbols[name]; @@ -5441,7 +5449,6 @@ namespace ts { if (!t.hasStringLiterals || target.flags & TypeFlags.FromSignature) { // Only elaborate errors from the first failure let shouldElaborateErrors = reportErrors; - const checkedAbstractAssignability = false; for (const s of sourceSignatures) { if (!s.hasStringLiterals || source.flags & TypeFlags.FromSignature) { const related = signatureRelatedTo(s, t, shouldElaborateErrors); @@ -5453,7 +5460,7 @@ namespace ts { shouldElaborateErrors = false; } } - if (shouldElaborateErrors) { + if (shouldElaborateErrors && !isPrimitiveApparentType(source)) { reportError(Diagnostics.Type_0_provides_no_match_for_the_signature_1, typeToString(source), signatureToString(t, /*enclosingDeclaration*/ undefined, /*flags*/ undefined, kind)); diff --git a/tests/baselines/reference/assignToFn.errors.txt b/tests/baselines/reference/assignToFn.errors.txt index 0456a6faa5e..7f2c7855a35 100644 --- a/tests/baselines/reference/assignToFn.errors.txt +++ b/tests/baselines/reference/assignToFn.errors.txt @@ -1,5 +1,4 @@ tests/cases/compiler/assignToFn.ts(8,5): error TS2322: Type 'string' is not assignable to type '(n: number) => boolean'. - Type 'String' provides no match for the signature '(n: number): boolean' ==== tests/cases/compiler/assignToFn.ts (1 errors) ==== @@ -13,6 +12,5 @@ tests/cases/compiler/assignToFn.ts(8,5): error TS2322: Type 'string' is not assi x.f="hello"; ~~~ !!! error TS2322: Type 'string' is not assignable to type '(n: number) => boolean'. -!!! error TS2322: Type 'String' provides no match for the signature '(n: number): boolean' } \ No newline at end of file diff --git a/tests/baselines/reference/assignmentToObject.errors.txt b/tests/baselines/reference/assignmentToObject.errors.txt index ff5c9c12653..aa1222bd799 100644 --- a/tests/baselines/reference/assignmentToObject.errors.txt +++ b/tests/baselines/reference/assignmentToObject.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/assignmentToObject.ts(3,5): error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type 'number' is not assignable to type '() => string'. - Type 'Number' provides no match for the signature '(): string' ==== tests/cases/compiler/assignmentToObject.ts (1 errors) ==== @@ -12,5 +11,4 @@ tests/cases/compiler/assignmentToObject.ts(3,5): error TS2322: Type '{ toString: !!! error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type 'number' is not assignable to type '() => string'. -!!! error TS2322: Type 'Number' provides no match for the signature '(): string' \ No newline at end of file diff --git a/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt b/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt index e13dc8f1f64..2e85ee101f5 100644 --- a/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt +++ b/tests/baselines/reference/assignmentToObjectAndFunction.errors.txt @@ -1,13 +1,11 @@ tests/cases/compiler/assignmentToObjectAndFunction.ts(1,5): error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. Types of property 'toString' are incompatible. Type 'number' is not assignable to type '() => string'. - Type 'Number' provides no match for the signature '(): string' tests/cases/compiler/assignmentToObjectAndFunction.ts(8,5): error TS2322: Type '{}' is not assignable to type 'Function'. Property 'apply' is missing in type '{}'. tests/cases/compiler/assignmentToObjectAndFunction.ts(29,5): error TS2322: Type 'typeof bad' is not assignable to type 'Function'. Types of property 'apply' are incompatible. Type 'number' is not assignable to type '(thisArg: any, argArray?: any) => any'. - Type 'Number' provides no match for the signature '(thisArg: any, argArray?: any): any' ==== tests/cases/compiler/assignmentToObjectAndFunction.ts (3 errors) ==== @@ -16,7 +14,6 @@ tests/cases/compiler/assignmentToObjectAndFunction.ts(29,5): error TS2322: Type !!! error TS2322: Type '{ toString: number; }' is not assignable to type 'Object'. !!! error TS2322: Types of property 'toString' are incompatible. !!! error TS2322: Type 'number' is not assignable to type '() => string'. -!!! error TS2322: Type 'Number' provides no match for the signature '(): string' var goodObj: Object = { toString(x?) { return ""; @@ -51,5 +48,4 @@ tests/cases/compiler/assignmentToObjectAndFunction.ts(29,5): error TS2322: Type ~~~~~~~~~~ !!! error TS2322: Type 'typeof bad' is not assignable to type 'Function'. !!! error TS2322: Types of property 'apply' are incompatible. -!!! error TS2322: Type 'number' is not assignable to type '(thisArg: any, argArray?: any) => any'. -!!! error TS2322: Type 'Number' provides no match for the signature '(thisArg: any, argArray?: any): any' \ No newline at end of file +!!! error TS2322: Type 'number' is not assignable to type '(thisArg: any, argArray?: any) => any'. \ No newline at end of file diff --git a/tests/baselines/reference/classAbstractAssignabilityConstructorFunction.errors.txt b/tests/baselines/reference/classAbstractAssignabilityConstructorFunction.errors.txt index 760bc9d8c43..c6c242396d8 100644 --- a/tests/baselines/reference/classAbstractAssignabilityConstructorFunction.errors.txt +++ b/tests/baselines/reference/classAbstractAssignabilityConstructorFunction.errors.txt @@ -1,7 +1,6 @@ tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAssignabilityConstructorFunction.ts(7,1): error TS2322: Type 'typeof A' is not assignable to type 'new () => A'. Cannot assign an abstract constructor type to a non-abstract constructor type. tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAssignabilityConstructorFunction.ts(8,1): error TS2322: Type 'string' is not assignable to type 'new () => A'. - Type 'String' provides no match for the signature 'new (): A' ==== tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAssignabilityConstructorFunction.ts (2 errors) ==== @@ -17,5 +16,4 @@ tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbst !!! error TS2322: Cannot assign an abstract constructor type to a non-abstract constructor type. AAA = "asdf"; ~~~ -!!! error TS2322: Type 'string' is not assignable to type 'new () => A'. -!!! error TS2322: Type 'String' provides no match for the signature 'new (): A' \ No newline at end of file +!!! error TS2322: Type 'string' is not assignable to type 'new () => A'. \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping24.errors.txt b/tests/baselines/reference/contextualTyping24.errors.txt index 57a5543e57a..a172600e1c5 100644 --- a/tests/baselines/reference/contextualTyping24.errors.txt +++ b/tests/baselines/reference/contextualTyping24.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/contextualTyping24.ts(1,55): error TS2322: Type '(a: string) => number' is not assignable to type '(a: { (): number; (i: number): number; }) => number'. Types of parameters 'a' and 'a' are incompatible. Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. - Type 'String' provides no match for the signature '(): number' ==== tests/cases/compiler/contextualTyping24.ts (1 errors) ==== @@ -9,5 +8,4 @@ tests/cases/compiler/contextualTyping24.ts(1,55): error TS2322: Type '(a: string ~~~ !!! error TS2322: Type '(a: string) => number' is not assignable to type '(a: { (): number; (i: number): number; }) => number'. !!! error TS2322: Types of parameters 'a' and 'a' are incompatible. -!!! error TS2322: Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. -!!! error TS2322: Type 'String' provides no match for the signature '(): number' \ No newline at end of file +!!! error TS2322: Type 'string' is not assignable to type '{ (): number; (i: number): number; }'. \ No newline at end of file diff --git a/tests/baselines/reference/enumAssignability.errors.txt b/tests/baselines/reference/enumAssignability.errors.txt index 5b12f6f941e..4a060ac3456 100644 --- a/tests/baselines/reference/enumAssignability.errors.txt +++ b/tests/baselines/reference/enumAssignability.errors.txt @@ -6,11 +6,9 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi Property 'toDateString' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(33,9): error TS2322: Type 'E' is not assignable to type 'void'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(36,9): error TS2322: Type 'E' is not assignable to type '() => {}'. - Type 'Number' provides no match for the signature '(): {}' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(37,9): error TS2322: Type 'E' is not assignable to type 'Function'. Property 'apply' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(38,9): error TS2322: Type 'E' is not assignable to type '(x: number) => string'. - Type 'Number' provides no match for the signature '(x: number): string' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(39,5): error TS2322: Type 'E' is not assignable to type 'C'. Property 'foo' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(40,5): error TS2322: Type 'E' is not assignable to type 'I'. @@ -20,7 +18,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(42,9): error TS2322: Type 'E' is not assignable to type '{ foo: string; }'. Property 'foo' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(43,9): error TS2322: Type 'E' is not assignable to type '(x: T) => T'. - Type 'Number' provides no match for the signature '(x: T): T' tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(45,9): error TS2322: Type 'E' is not assignable to type 'String'. Property 'charAt' is missing in type 'Number'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssignability.ts(47,21): error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list. @@ -83,7 +80,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi var j: () => {} = e; ~ !!! error TS2322: Type 'E' is not assignable to type '() => {}'. -!!! error TS2322: Type 'Number' provides no match for the signature '(): {}' var k: Function = e; ~ !!! error TS2322: Type 'E' is not assignable to type 'Function'. @@ -91,7 +87,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi var l: (x: number) => string = e; ~ !!! error TS2322: Type 'E' is not assignable to type '(x: number) => string'. -!!! error TS2322: Type 'Number' provides no match for the signature '(x: number): string' ac = e; ~~ !!! error TS2322: Type 'E' is not assignable to type 'C'. @@ -111,7 +106,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/enumAssi var o: (x: T) => T = e; ~ !!! error TS2322: Type 'E' is not assignable to type '(x: T) => T'. -!!! error TS2322: Type 'Number' provides no match for the signature '(x: T): T' var p: Number = e; var q: String = e; ~ diff --git a/tests/baselines/reference/for-of30.errors.txt b/tests/baselines/reference/for-of30.errors.txt index 528d14cf12b..6434b5294d5 100644 --- a/tests/baselines/reference/for-of30.errors.txt +++ b/tests/baselines/reference/for-of30.errors.txt @@ -4,7 +4,6 @@ tests/cases/conformance/es6/for-ofStatements/for-of30.ts(1,15): error TS2322: Ty Type 'StringIterator' is not assignable to type 'Iterator'. Types of property 'return' are incompatible. Type 'number' is not assignable to type '(value?: any) => IteratorResult'. - Type 'Number' provides no match for the signature '(value?: any): IteratorResult' ==== tests/cases/conformance/es6/for-ofStatements/for-of30.ts (1 errors) ==== @@ -16,7 +15,6 @@ tests/cases/conformance/es6/for-ofStatements/for-of30.ts(1,15): error TS2322: Ty !!! error TS2322: Type 'StringIterator' is not assignable to type 'Iterator'. !!! error TS2322: Types of property 'return' are incompatible. !!! error TS2322: Type 'number' is not assignable to type '(value?: any) => IteratorResult'. -!!! error TS2322: Type 'Number' provides no match for the signature '(value?: any): IteratorResult' class StringIterator { next() { diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt b/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt index 18febd754a4..87ae6b63855 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments3.errors.txt @@ -3,7 +3,6 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen Type 'boolean' is not assignable to type 'string'. tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments3.ts(33,11): error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate '(n: Object) => number' is not a valid type argument because it is not a supertype of candidate 'number'. - Type 'Number' provides no match for the signature '(n: Object): number' ==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments3.ts (2 errors) ==== @@ -46,5 +45,4 @@ tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithGen var r12 = foo2(x, (a1: (y: string) => boolean) => (n: Object) => 1, (a2: (z: string) => boolean) => 2); // error ~~~~ !!! error TS2453: The type argument for type parameter 'U' cannot be inferred from the usage. Consider specifying the type arguments explicitly. -!!! error TS2453: Type argument candidate '(n: Object) => number' is not a valid type argument because it is not a supertype of candidate 'number'. -!!! error TS2453: Type 'Number' provides no match for the signature '(n: Object): number' \ No newline at end of file +!!! error TS2453: Type argument candidate '(n: Object) => number' is not a valid type argument because it is not a supertype of candidate 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/incompatibleTypes.errors.txt b/tests/baselines/reference/incompatibleTypes.errors.txt index 131beacbeae..e612600a7f8 100644 --- a/tests/baselines/reference/incompatibleTypes.errors.txt +++ b/tests/baselines/reference/incompatibleTypes.errors.txt @@ -23,7 +23,6 @@ tests/cases/compiler/incompatibleTypes.ts(49,7): error TS2345: Argument of type tests/cases/compiler/incompatibleTypes.ts(66,47): error TS2322: Type '{ e: number; f: number; }' is not assignable to type '{ a: { a: string; }; b: string; }'. Object literal may only specify known properties, and 'e' does not exist in type '{ a: { a: string; }; b: string; }'. tests/cases/compiler/incompatibleTypes.ts(72,5): error TS2322: Type 'number' is not assignable to type '() => string'. - Type 'Number' provides no match for the signature '(): string' tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => number' is not assignable to type '() => any'. @@ -133,7 +132,6 @@ tests/cases/compiler/incompatibleTypes.ts(74,5): error TS2322: Type '(a: any) => var i1c1: { (): string; } = 5; ~~~~ !!! error TS2322: Type 'number' is not assignable to type '() => string'. -!!! error TS2322: Type 'Number' provides no match for the signature '(): string' var fp1: () =>any = a => 0; ~~~ diff --git a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt index afa0f8e73b4..6fde83e08b0 100644 --- a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt +++ b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(7,7): error TS2415: Class 'b' incorrectly extends base class 'a'. Types of property 'x' are incompatible. Type 'string' is not assignable to type '() => string'. - Type 'String' provides no match for the signature '(): string' tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(8,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(8,9): error TS2423: Class 'a' defines instance member function 'x', but extended class 'b' defines it as instance member accessor. tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(11,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. @@ -19,7 +18,6 @@ tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(11,9): error T !!! error TS2415: Class 'b' incorrectly extends base class 'a'. !!! error TS2415: Types of property 'x' are incompatible. !!! error TS2415: Type 'string' is not assignable to type '() => string'. -!!! error TS2415: Type 'String' provides no match for the signature '(): string' get x() { ~ !!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. diff --git a/tests/baselines/reference/inheritanceStaticAccessorOverridingMethod.errors.txt b/tests/baselines/reference/inheritanceStaticAccessorOverridingMethod.errors.txt index ac3ea03cbb8..38b1ed61fac 100644 --- a/tests/baselines/reference/inheritanceStaticAccessorOverridingMethod.errors.txt +++ b/tests/baselines/reference/inheritanceStaticAccessorOverridingMethod.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/inheritanceStaticAccessorOverridingMethod.ts(7,7): error TS2417: Class static side 'typeof b' incorrectly extends base class static side 'typeof a'. Types of property 'x' are incompatible. Type 'string' is not assignable to type '() => string'. - Type 'String' provides no match for the signature '(): string' tests/cases/compiler/inheritanceStaticAccessorOverridingMethod.ts(8,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. tests/cases/compiler/inheritanceStaticAccessorOverridingMethod.ts(11,16): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. @@ -18,7 +17,6 @@ tests/cases/compiler/inheritanceStaticAccessorOverridingMethod.ts(11,16): error !!! error TS2417: Class static side 'typeof b' incorrectly extends base class static side 'typeof a'. !!! error TS2417: Types of property 'x' are incompatible. !!! error TS2417: Type 'string' is not assignable to type '() => string'. -!!! error TS2417: Type 'String' provides no match for the signature '(): string' static get x() { ~ !!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. diff --git a/tests/baselines/reference/inheritanceStaticPropertyOverridingMethod.errors.txt b/tests/baselines/reference/inheritanceStaticPropertyOverridingMethod.errors.txt index 70bed434978..22748fda783 100644 --- a/tests/baselines/reference/inheritanceStaticPropertyOverridingMethod.errors.txt +++ b/tests/baselines/reference/inheritanceStaticPropertyOverridingMethod.errors.txt @@ -1,7 +1,6 @@ tests/cases/compiler/inheritanceStaticPropertyOverridingMethod.ts(7,7): error TS2417: Class static side 'typeof b' incorrectly extends base class static side 'typeof a'. Types of property 'x' are incompatible. Type 'string' is not assignable to type '() => string'. - Type 'String' provides no match for the signature '(): string' ==== tests/cases/compiler/inheritanceStaticPropertyOverridingMethod.ts (1 errors) ==== @@ -16,6 +15,5 @@ tests/cases/compiler/inheritanceStaticPropertyOverridingMethod.ts(7,7): error TS !!! error TS2417: Class static side 'typeof b' incorrectly extends base class static side 'typeof a'. !!! error TS2417: Types of property 'x' are incompatible. !!! error TS2417: Type 'string' is not assignable to type '() => string'. -!!! error TS2417: Type 'String' provides no match for the signature '(): string' static x: string; } \ No newline at end of file diff --git a/tests/baselines/reference/intTypeCheck.errors.txt b/tests/baselines/reference/intTypeCheck.errors.txt index b6f8afa3030..3d805a65822 100644 --- a/tests/baselines/reference/intTypeCheck.errors.txt +++ b/tests/baselines/reference/intTypeCheck.errors.txt @@ -21,7 +21,6 @@ tests/cases/compiler/intTypeCheck.ts(114,17): error TS2350: Only a void function tests/cases/compiler/intTypeCheck.ts(115,5): error TS2322: Type 'Base' is not assignable to type 'i2'. Type 'Base' provides no match for the signature '(): any' tests/cases/compiler/intTypeCheck.ts(120,5): error TS2322: Type 'boolean' is not assignable to type 'i2'. - Type 'Boolean' provides no match for the signature '(): any' tests/cases/compiler/intTypeCheck.ts(120,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(120,22): error TS2304: Cannot find name 'i2'. tests/cases/compiler/intTypeCheck.ts(121,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. @@ -34,7 +33,6 @@ tests/cases/compiler/intTypeCheck.ts(129,5): error TS2322: Type 'Base' is not as tests/cases/compiler/intTypeCheck.ts(131,5): error TS2322: Type '() => void' is not assignable to type 'i3'. Type '() => void' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(134,5): error TS2322: Type 'boolean' is not assignable to type 'i3'. - Type 'Boolean' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(134,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(134,22): error TS2304: Cannot find name 'i3'. tests/cases/compiler/intTypeCheck.ts(135,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. @@ -68,7 +66,6 @@ tests/cases/compiler/intTypeCheck.ts(171,5): error TS2322: Type 'Base' is not as tests/cases/compiler/intTypeCheck.ts(173,5): error TS2322: Type '() => void' is not assignable to type 'i6'. Type 'void' is not assignable to type 'number'. tests/cases/compiler/intTypeCheck.ts(176,5): error TS2322: Type 'boolean' is not assignable to type 'i6'. - Type 'Boolean' provides no match for the signature '(): any' tests/cases/compiler/intTypeCheck.ts(176,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(176,22): error TS2304: Cannot find name 'i6'. tests/cases/compiler/intTypeCheck.ts(177,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. @@ -81,7 +78,6 @@ tests/cases/compiler/intTypeCheck.ts(185,17): error TS2352: Neither type 'Base' tests/cases/compiler/intTypeCheck.ts(187,5): error TS2322: Type '() => void' is not assignable to type 'i7'. Type '() => void' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(190,5): error TS2322: Type 'boolean' is not assignable to type 'i7'. - Type 'Boolean' provides no match for the signature 'new (): any' tests/cases/compiler/intTypeCheck.ts(190,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(190,22): error TS2304: Cannot find name 'i7'. tests/cases/compiler/intTypeCheck.ts(191,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. @@ -253,7 +249,6 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj20: i2 = new anyVar; ~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i2'. -!!! error TS2322: Type 'Boolean' provides no match for the signature '(): any' ~ !!! error TS1109: Expression expected. ~~ @@ -288,7 +283,6 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj31: i3 = new anyVar; ~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i3'. -!!! error TS2322: Type 'Boolean' provides no match for the signature 'new (): any' ~ !!! error TS1109: Expression expected. ~~ @@ -387,7 +381,6 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj64: i6 = new anyVar; ~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i6'. -!!! error TS2322: Type 'Boolean' provides no match for the signature '(): any' ~ !!! error TS1109: Expression expected. ~~ @@ -422,7 +415,6 @@ tests/cases/compiler/intTypeCheck.ts(205,17): error TS2351: Cannot use 'new' wit var obj75: i7 = new anyVar; ~~~~~ !!! error TS2322: Type 'boolean' is not assignable to type 'i7'. -!!! error TS2322: Type 'Boolean' provides no match for the signature 'new (): any' ~ !!! error TS1109: Expression expected. ~~ diff --git a/tests/baselines/reference/invalidBooleanAssignments.errors.txt b/tests/baselines/reference/invalidBooleanAssignments.errors.txt index 85184de6607..84ced226113 100644 --- a/tests/baselines/reference/invalidBooleanAssignments.errors.txt +++ b/tests/baselines/reference/invalidBooleanAssignments.errors.txt @@ -7,7 +7,6 @@ tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(12 tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(15,5): error TS2322: Type 'boolean' is not assignable to type 'I'. Property 'bar' is missing in type 'Boolean'. tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(17,5): error TS2322: Type 'boolean' is not assignable to type '() => string'. - Type 'Boolean' provides no match for the signature '(): string' tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(21,1): error TS2364: Invalid left-hand side of assignment expression. tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(24,5): error TS2322: Type 'boolean' is not assignable to type 'T'. tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(26,1): error TS2364: Invalid left-hand side of assignment expression. @@ -47,7 +46,6 @@ tests/cases/conformance/types/primitives/boolean/invalidBooleanAssignments.ts(26 var h: { (): string } = x; ~ !!! error TS2322: Type 'boolean' is not assignable to type '() => string'. -!!! error TS2322: Type 'Boolean' provides no match for the signature '(): string' var h2: { toString(): string } = x; // no error module M { export var a = 1; } diff --git a/tests/baselines/reference/recursiveFunctionTypes.errors.txt b/tests/baselines/reference/recursiveFunctionTypes.errors.txt index 53993a06c60..8d5303c0669 100644 --- a/tests/baselines/reference/recursiveFunctionTypes.errors.txt +++ b/tests/baselines/reference/recursiveFunctionTypes.errors.txt @@ -1,5 +1,4 @@ tests/cases/compiler/recursiveFunctionTypes.ts(1,35): error TS2322: Type 'number' is not assignable to type '() => typeof fn'. - Type 'Number' provides no match for the signature '(): () => typeof fn' tests/cases/compiler/recursiveFunctionTypes.ts(3,5): error TS2322: Type '() => typeof fn' is not assignable to type 'number'. tests/cases/compiler/recursiveFunctionTypes.ts(4,5): error TS2322: Type '() => typeof fn' is not assignable to type '() => number'. Type '() => typeof fn' is not assignable to type 'number'. @@ -7,23 +6,18 @@ tests/cases/compiler/recursiveFunctionTypes.ts(11,16): error TS2355: A function tests/cases/compiler/recursiveFunctionTypes.ts(12,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. tests/cases/compiler/recursiveFunctionTypes.ts(17,5): error TS2322: Type '() => I' is not assignable to type 'number'. tests/cases/compiler/recursiveFunctionTypes.ts(22,5): error TS2345: Argument of type 'number' is not assignable to parameter of type '(t: typeof g) => void'. - Type 'Number' provides no match for the signature '(t: (t: typeof g) => void): void' tests/cases/compiler/recursiveFunctionTypes.ts(25,1): error TS2322: Type 'number' is not assignable to type '() => any'. - Type 'Number' provides no match for the signature '(): () => any' tests/cases/compiler/recursiveFunctionTypes.ts(30,10): error TS2394: Overload signature is not compatible with function implementation. tests/cases/compiler/recursiveFunctionTypes.ts(33,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/compiler/recursiveFunctionTypes.ts(34,4): error TS2345: Argument of type 'string' is not assignable to parameter of type '{ (): typeof f6; (a: typeof f6): () => number; }'. - Type 'String' provides no match for the signature '(): { (): typeof f6; (a: typeof f6): () => number; }' tests/cases/compiler/recursiveFunctionTypes.ts(42,1): error TS2346: Supplied parameters do not match any signature of call target. tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of type 'string' is not assignable to parameter of type '{ (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }'. - Type 'String' provides no match for the signature '(): { (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }' ==== tests/cases/compiler/recursiveFunctionTypes.ts (13 errors) ==== function fn(): typeof fn { return 1; } ~ !!! error TS2322: Type 'number' is not assignable to type '() => typeof fn'. -!!! error TS2322: Type 'Number' provides no match for the signature '(): () => typeof fn' var x: number = fn; // error ~ @@ -58,13 +52,11 @@ tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of C.g(3); // error ~ !!! error TS2345: Argument of type 'number' is not assignable to parameter of type '(t: typeof g) => void'. -!!! error TS2345: Type 'Number' provides no match for the signature '(t: (t: typeof g) => void): void' var f4: () => typeof f4; f4 = 3; // error ~~ !!! error TS2322: Type 'number' is not assignable to type '() => any'. -!!! error TS2322: Type 'Number' provides no match for the signature '(): () => any' function f5() { return f5; } @@ -80,7 +72,6 @@ tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of f6(""); // ok (function takes an any param) ~~ !!! error TS2345: Argument of type 'string' is not assignable to parameter of type '{ (): typeof f6; (a: typeof f6): () => number; }'. -!!! error TS2345: Type 'String' provides no match for the signature '(): { (): typeof f6; (a: typeof f6): () => number; }' f6(); // ok declare function f7(): typeof f7; @@ -94,5 +85,4 @@ tests/cases/compiler/recursiveFunctionTypes.ts(43,4): error TS2345: Argument of f7(""); // ok (function takes an any param) ~~ !!! error TS2345: Argument of type 'string' is not assignable to parameter of type '{ (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }'. -!!! error TS2345: Type 'String' provides no match for the signature '(): { (): typeof f7; (a: typeof f7): () => number; (a: number): number; (a?: typeof f7): typeof f7; }' f7(); // ok \ No newline at end of file diff --git a/tests/baselines/reference/typeName1.errors.txt b/tests/baselines/reference/typeName1.errors.txt index a55754221ce..84c8be360bd 100644 --- a/tests/baselines/reference/typeName1.errors.txt +++ b/tests/baselines/reference/typeName1.errors.txt @@ -3,7 +3,6 @@ tests/cases/compiler/typeName1.ts(9,5): error TS2322: Type 'number' is not assig tests/cases/compiler/typeName1.ts(10,5): error TS2322: Type 'number' is not assignable to type '{ f(s: string): number; }'. Property 'f' is missing in type 'Number'. tests/cases/compiler/typeName1.ts(11,5): error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; }'. - Type 'Number' provides no match for the signature '(s: string): number' tests/cases/compiler/typeName1.ts(12,5): error TS2322: Type 'number' is not assignable to type '{ x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. Property 'x' is missing in type 'Number'. tests/cases/compiler/typeName1.ts(13,5): error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. @@ -11,7 +10,6 @@ tests/cases/compiler/typeName1.ts(13,5): error TS2322: Type 'number' is not assi tests/cases/compiler/typeName1.ts(14,5): error TS2322: Type 'number' is not assignable to type '{ z: number; f: { (n: number): string; (s: string): number; }; }'. Property 'z' is missing in type 'Number'. tests/cases/compiler/typeName1.ts(15,5): error TS2322: Type 'number' is not assignable to type '(s: string) => boolean'. - Type 'Number' provides no match for the signature '(s: string): boolean' tests/cases/compiler/typeName1.ts(16,5): error TS2322: Type 'number' is not assignable to type '{ (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }'. Property 'z' is missing in type 'Number'. tests/cases/compiler/typeName1.ts(16,10): error TS2411: Property 'z' of type 'I' is not assignable to string index type '{ x: any; y: any; }'. @@ -51,7 +49,6 @@ tests/cases/compiler/typeName1.ts(23,5): error TS2322: Type 'typeof C' is not as var x3:{ (s:string):number;(n:number):string; }=3; ~~ !!! error TS2322: Type 'number' is not assignable to type '{ (s: string): number; (n: number): string; }'. -!!! error TS2322: Type 'Number' provides no match for the signature '(s: string): number' var x4:{ x;y;z:number;f(n:number):string;f(s:string):number; }=3; ~~ !!! error TS2322: Type 'number' is not assignable to type '{ x: any; y: any; z: number; f(n: number): string; f(s: string): number; }'. @@ -67,7 +64,6 @@ tests/cases/compiler/typeName1.ts(23,5): error TS2322: Type 'typeof C' is not as var x7:(s:string)=>boolean=3; ~~ !!! error TS2322: Type 'number' is not assignable to type '(s: string) => boolean'. -!!! error TS2322: Type 'Number' provides no match for the signature '(s: string): boolean' var x8:{ z:I;[s:string]:{ x; y; };[n:number]:{x; y;};():boolean; }=3; ~~ !!! error TS2322: Type 'number' is not assignable to type '{ (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }'. From 4338dcb308a16c3444f7f2604910b12f87a77603 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Wed, 2 Dec 2015 15:26:10 -0800 Subject: [PATCH 058/103] Add comment for use of isPrimitiveApparentType --- src/compiler/checker.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 577e546868f..91f148987ef 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5460,6 +5460,8 @@ namespace ts { shouldElaborateErrors = false; } } + // don't elaborate the primitive apparent types (like Number) + // because the actual primitives will have already been reported. if (shouldElaborateErrors && !isPrimitiveApparentType(source)) { reportError(Diagnostics.Type_0_provides_no_match_for_the_signature_1, typeToString(source), From 3e6d40f3fee5a47fe3b1aa39ae3322db1d3e63ed Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 2 Dec 2015 15:41:37 -0800 Subject: [PATCH 059/103] Removing comment from test --- .../reference/unionTypeParameterInference.js | 7 +++- .../unionTypeParameterInference.symbols | 42 ++++++++++--------- .../unionTypeParameterInference.types | 4 +- .../compiler/unionTypeParameterInference.ts | 4 +- 4 files changed, 33 insertions(+), 24 deletions(-) diff --git a/tests/baselines/reference/unionTypeParameterInference.js b/tests/baselines/reference/unionTypeParameterInference.js index cc797c511c8..c96e809cd4d 100644 --- a/tests/baselines/reference/unionTypeParameterInference.js +++ b/tests/baselines/reference/unionTypeParameterInference.js @@ -1,14 +1,17 @@ //// [unionTypeParameterInference.ts] +// Regression test for #5861 + interface Foo { prop: T; } declare function lift(value: U | Foo): Foo; function unlift(value: U | Foo): U { - return lift(value).prop; // error TS2322: Type '{}' is not assignable to type 'U'. + return lift(value).prop; } //// [unionTypeParameterInference.js] +// Regression test for #5861 function unlift(value) { - return lift(value).prop; // error TS2322: Type '{}' is not assignable to type 'U'. + return lift(value).prop; } diff --git a/tests/baselines/reference/unionTypeParameterInference.symbols b/tests/baselines/reference/unionTypeParameterInference.symbols index ee540379284..f2dbaac31ff 100644 --- a/tests/baselines/reference/unionTypeParameterInference.symbols +++ b/tests/baselines/reference/unionTypeParameterInference.symbols @@ -1,33 +1,35 @@ === tests/cases/compiler/unionTypeParameterInference.ts === +// Regression test for #5861 + interface Foo { prop: T; } >Foo : Symbol(Foo, Decl(unionTypeParameterInference.ts, 0, 0)) ->T : Symbol(T, Decl(unionTypeParameterInference.ts, 0, 14)) ->prop : Symbol(prop, Decl(unionTypeParameterInference.ts, 0, 18)) ->T : Symbol(T, Decl(unionTypeParameterInference.ts, 0, 14)) +>T : Symbol(T, Decl(unionTypeParameterInference.ts, 2, 14)) +>prop : Symbol(prop, Decl(unionTypeParameterInference.ts, 2, 18)) +>T : Symbol(T, Decl(unionTypeParameterInference.ts, 2, 14)) declare function lift(value: U | Foo): Foo; ->lift : Symbol(lift, Decl(unionTypeParameterInference.ts, 0, 29)) ->U : Symbol(U, Decl(unionTypeParameterInference.ts, 2, 22)) ->value : Symbol(value, Decl(unionTypeParameterInference.ts, 2, 25)) ->U : Symbol(U, Decl(unionTypeParameterInference.ts, 2, 22)) +>lift : Symbol(lift, Decl(unionTypeParameterInference.ts, 2, 29)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 4, 22)) +>value : Symbol(value, Decl(unionTypeParameterInference.ts, 4, 25)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 4, 22)) >Foo : Symbol(Foo, Decl(unionTypeParameterInference.ts, 0, 0)) ->U : Symbol(U, Decl(unionTypeParameterInference.ts, 2, 22)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 4, 22)) >Foo : Symbol(Foo, Decl(unionTypeParameterInference.ts, 0, 0)) ->U : Symbol(U, Decl(unionTypeParameterInference.ts, 2, 22)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 4, 22)) function unlift(value: U | Foo): U { ->unlift : Symbol(unlift, Decl(unionTypeParameterInference.ts, 2, 52)) ->U : Symbol(U, Decl(unionTypeParameterInference.ts, 4, 16)) ->value : Symbol(value, Decl(unionTypeParameterInference.ts, 4, 19)) ->U : Symbol(U, Decl(unionTypeParameterInference.ts, 4, 16)) +>unlift : Symbol(unlift, Decl(unionTypeParameterInference.ts, 4, 52)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 6, 16)) +>value : Symbol(value, Decl(unionTypeParameterInference.ts, 6, 19)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 6, 16)) >Foo : Symbol(Foo, Decl(unionTypeParameterInference.ts, 0, 0)) ->U : Symbol(U, Decl(unionTypeParameterInference.ts, 4, 16)) ->U : Symbol(U, Decl(unionTypeParameterInference.ts, 4, 16)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 6, 16)) +>U : Symbol(U, Decl(unionTypeParameterInference.ts, 6, 16)) - return lift(value).prop; // error TS2322: Type '{}' is not assignable to type 'U'. ->lift(value).prop : Symbol(Foo.prop, Decl(unionTypeParameterInference.ts, 0, 18)) ->lift : Symbol(lift, Decl(unionTypeParameterInference.ts, 0, 29)) ->value : Symbol(value, Decl(unionTypeParameterInference.ts, 4, 19)) ->prop : Symbol(Foo.prop, Decl(unionTypeParameterInference.ts, 0, 18)) + return lift(value).prop; +>lift(value).prop : Symbol(Foo.prop, Decl(unionTypeParameterInference.ts, 2, 18)) +>lift : Symbol(lift, Decl(unionTypeParameterInference.ts, 2, 29)) +>value : Symbol(value, Decl(unionTypeParameterInference.ts, 6, 19)) +>prop : Symbol(Foo.prop, Decl(unionTypeParameterInference.ts, 2, 18)) } diff --git a/tests/baselines/reference/unionTypeParameterInference.types b/tests/baselines/reference/unionTypeParameterInference.types index a4b6a09cf2c..54eaed90ecc 100644 --- a/tests/baselines/reference/unionTypeParameterInference.types +++ b/tests/baselines/reference/unionTypeParameterInference.types @@ -1,4 +1,6 @@ === tests/cases/compiler/unionTypeParameterInference.ts === +// Regression test for #5861 + interface Foo { prop: T; } >Foo : Foo >T : T @@ -24,7 +26,7 @@ function unlift(value: U | Foo): U { >U : U >U : U - return lift(value).prop; // error TS2322: Type '{}' is not assignable to type 'U'. + return lift(value).prop; >lift(value).prop : U >lift(value) : Foo >lift : (value: U | Foo) => Foo diff --git a/tests/cases/compiler/unionTypeParameterInference.ts b/tests/cases/compiler/unionTypeParameterInference.ts index 221b0891b98..79c4f3cc0e5 100644 --- a/tests/cases/compiler/unionTypeParameterInference.ts +++ b/tests/cases/compiler/unionTypeParameterInference.ts @@ -1,7 +1,9 @@ +// Regression test for #5861 + interface Foo { prop: T; } declare function lift(value: U | Foo): Foo; function unlift(value: U | Foo): U { - return lift(value).prop; // error TS2322: Type '{}' is not assignable to type 'U'. + return lift(value).prop; } From 86d4a4c11f2abfd7d20fb3cd69e2e41051c5479b Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 2 Dec 2015 15:42:25 -0800 Subject: [PATCH 060/103] Adding test to demonstrate limits of signature identity checking --- .../reference/genericSignatureIdentity.js | 32 ++++++++++++ .../genericSignatureIdentity.symbols | 49 +++++++++++++++++++ .../reference/genericSignatureIdentity.types | 49 +++++++++++++++++++ .../compiler/genericSignatureIdentity.ts | 20 ++++++++ 4 files changed, 150 insertions(+) create mode 100644 tests/baselines/reference/genericSignatureIdentity.js create mode 100644 tests/baselines/reference/genericSignatureIdentity.symbols create mode 100644 tests/baselines/reference/genericSignatureIdentity.types create mode 100644 tests/cases/compiler/genericSignatureIdentity.ts diff --git a/tests/baselines/reference/genericSignatureIdentity.js b/tests/baselines/reference/genericSignatureIdentity.js new file mode 100644 index 00000000000..9a51a61edbd --- /dev/null +++ b/tests/baselines/reference/genericSignatureIdentity.js @@ -0,0 +1,32 @@ +//// [genericSignatureIdentity.ts] +// This test is here to remind us of our current limits of type identity checking. +// Ideally all of the below declarations would be considered different (and thus errors) +// but they aren't because we erase type parameters to type any and don't check that +// constraints are identical. + +var x: { + (x: T): T; +}; + +var x: { + (x: T): T; +}; + +var x: { + (x: T): T; +}; + +var x: { + (x: any): any; +}; + + +//// [genericSignatureIdentity.js] +// This test is here to remind us of our current limits of type identity checking. +// Ideally all of the below declarations would be considered different (and thus errors) +// but they aren't because we erase type parameters to type any and don't check that +// constraints are identical. +var x; +var x; +var x; +var x; diff --git a/tests/baselines/reference/genericSignatureIdentity.symbols b/tests/baselines/reference/genericSignatureIdentity.symbols new file mode 100644 index 00000000000..afd12ec266a --- /dev/null +++ b/tests/baselines/reference/genericSignatureIdentity.symbols @@ -0,0 +1,49 @@ +=== tests/cases/compiler/genericSignatureIdentity.ts === +// This test is here to remind us of our current limits of type identity checking. +// Ideally all of the below declarations would be considered different (and thus errors) +// but they aren't because we erase type parameters to type any and don't check that +// constraints are identical. + +var x: { +>x : Symbol(x, Decl(genericSignatureIdentity.ts, 5, 3), Decl(genericSignatureIdentity.ts, 9, 3), Decl(genericSignatureIdentity.ts, 13, 3), Decl(genericSignatureIdentity.ts, 17, 3)) + + (x: T): T; +>T : Symbol(T, Decl(genericSignatureIdentity.ts, 6, 5)) +>Date : Symbol(Date, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --)) +>x : Symbol(x, Decl(genericSignatureIdentity.ts, 6, 21)) +>T : Symbol(T, Decl(genericSignatureIdentity.ts, 6, 5)) +>T : Symbol(T, Decl(genericSignatureIdentity.ts, 6, 5)) + +}; + +var x: { +>x : Symbol(x, Decl(genericSignatureIdentity.ts, 5, 3), Decl(genericSignatureIdentity.ts, 9, 3), Decl(genericSignatureIdentity.ts, 13, 3), Decl(genericSignatureIdentity.ts, 17, 3)) + + (x: T): T; +>T : Symbol(T, Decl(genericSignatureIdentity.ts, 10, 5)) +>x : Symbol(x, Decl(genericSignatureIdentity.ts, 10, 23)) +>T : Symbol(T, Decl(genericSignatureIdentity.ts, 10, 5)) +>T : Symbol(T, Decl(genericSignatureIdentity.ts, 10, 5)) + +}; + +var x: { +>x : Symbol(x, Decl(genericSignatureIdentity.ts, 5, 3), Decl(genericSignatureIdentity.ts, 9, 3), Decl(genericSignatureIdentity.ts, 13, 3), Decl(genericSignatureIdentity.ts, 17, 3)) + + (x: T): T; +>T : Symbol(T, Decl(genericSignatureIdentity.ts, 14, 5)) +>x : Symbol(x, Decl(genericSignatureIdentity.ts, 14, 8)) +>T : Symbol(T, Decl(genericSignatureIdentity.ts, 14, 5)) +>T : Symbol(T, Decl(genericSignatureIdentity.ts, 14, 5)) + +}; + +var x: { +>x : Symbol(x, Decl(genericSignatureIdentity.ts, 5, 3), Decl(genericSignatureIdentity.ts, 9, 3), Decl(genericSignatureIdentity.ts, 13, 3), Decl(genericSignatureIdentity.ts, 17, 3)) + + (x: any): any; +>T : Symbol(T, Decl(genericSignatureIdentity.ts, 18, 5)) +>x : Symbol(x, Decl(genericSignatureIdentity.ts, 18, 8)) + +}; + diff --git a/tests/baselines/reference/genericSignatureIdentity.types b/tests/baselines/reference/genericSignatureIdentity.types new file mode 100644 index 00000000000..9385718a361 --- /dev/null +++ b/tests/baselines/reference/genericSignatureIdentity.types @@ -0,0 +1,49 @@ +=== tests/cases/compiler/genericSignatureIdentity.ts === +// This test is here to remind us of our current limits of type identity checking. +// Ideally all of the below declarations would be considered different (and thus errors) +// but they aren't because we erase type parameters to type any and don't check that +// constraints are identical. + +var x: { +>x : (x: T) => T + + (x: T): T; +>T : T +>Date : Date +>x : T +>T : T +>T : T + +}; + +var x: { +>x : (x: T) => T + + (x: T): T; +>T : T +>x : T +>T : T +>T : T + +}; + +var x: { +>x : (x: T) => T + + (x: T): T; +>T : T +>x : T +>T : T +>T : T + +}; + +var x: { +>x : (x: T) => T + + (x: any): any; +>T : T +>x : any + +}; + diff --git a/tests/cases/compiler/genericSignatureIdentity.ts b/tests/cases/compiler/genericSignatureIdentity.ts new file mode 100644 index 00000000000..c685b8cc573 --- /dev/null +++ b/tests/cases/compiler/genericSignatureIdentity.ts @@ -0,0 +1,20 @@ +// This test is here to remind us of our current limits of type identity checking. +// Ideally all of the below declarations would be considered different (and thus errors) +// but they aren't because we erase type parameters to type any and don't check that +// constraints are identical. + +var x: { + (x: T): T; +}; + +var x: { + (x: T): T; +}; + +var x: { + (x: T): T; +}; + +var x: { + (x: any): any; +}; From 83e61cfa68acab15547cb437a5331319017bf9c3 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Wed, 2 Dec 2015 20:50:24 -0800 Subject: [PATCH 061/103] fix esmodule big, unify export emit between es6/pre-es6 --- src/compiler/emitter.ts | 55 +++++++++---------- .../reference/anonymousDefaultExportsAmd.js | 2 + .../anonymousDefaultExportsCommonjs.js | 2 + .../reference/anonymousDefaultExportsUmd.js | 2 + .../decoratedDefaultExportsGetExportedAmd.js | 2 + ...oratedDefaultExportsGetExportedCommonjs.js | 2 + .../decoratedDefaultExportsGetExportedUmd.js | 2 + .../reference/defaultExportsGetExportedAmd.js | 2 + .../defaultExportsGetExportedCommonjs.js | 2 + .../reference/defaultExportsGetExportedUmd.js | 2 + ...rtDefaultBindingFollowedWithNamedImport.js | 1 + .../reference/exportsAndImports4-es6.js | 1 + .../reference/outFilerootDirModuleNamesAmd.js | 2 + 13 files changed, 47 insertions(+), 30 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 380be73b482..2d1caebe48d 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -3628,12 +3628,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi // only allow export default at a source file level if (modulekind === ModuleKind.CommonJS || modulekind === ModuleKind.AMD || modulekind === ModuleKind.UMD) { if (!isEs6Module) { - if (languageVersion === ScriptTarget.ES5) { + if (languageVersion !== ScriptTarget.ES3) { // default value of configurable, enumerable, writable are `false`. write("Object.defineProperty(exports, \"__esModule\", { value: true });"); writeLine(); } - else if (languageVersion === ScriptTarget.ES3) { + else { write("exports.__esModule = true;"); writeLine(); } @@ -5171,35 +5171,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi if (!(node.flags & NodeFlags.Export)) { return; } - // If this is an exported class, but not on the top level (i.e. on an internal - // module), export it - if (node.flags & NodeFlags.Default) { - // if this is a top level default export of decorated class, write the export after the declaration. - writeLine(); - if (thisNodeIsDecorated && modulekind === ModuleKind.ES6) { - write("export default "); - emitDeclarationName(node); - write(";"); - } - else if (modulekind === ModuleKind.System) { - write(`${exportFunctionForFile}("default", `); - emitDeclarationName(node); - write(");"); - } - else if (modulekind !== ModuleKind.ES6) { - write(`exports.default = `); - emitDeclarationName(node); - write(";"); - } + if (modulekind !== ModuleKind.ES6) { + emitExportMemberAssignment(node as ClassDeclaration); } - else if (node.parent.kind !== SyntaxKind.SourceFile || (modulekind !== ModuleKind.ES6 && !(node.flags & NodeFlags.Default))) { - writeLine(); - emitStart(node); - emitModuleMemberName(node); - write(" = "); - emitDeclarationName(node); - emitEnd(node); - write(";"); + else { + // If this is an exported class, but not on the top level (i.e. on an internal + // module), export it + if (node.flags & NodeFlags.Default) { + // if this is a top level default export of decorated class, write the export after the declaration. + if (thisNodeIsDecorated) { + writeLine(); + write("export default "); + emitDeclarationName(node); + write(";"); + } + } + else if (node.parent.kind !== SyntaxKind.SourceFile) { + writeLine(); + emitStart(node); + emitModuleMemberName(node); + write(" = "); + emitDeclarationName(node); + emitEnd(node); + write(";"); + } } } diff --git a/tests/baselines/reference/anonymousDefaultExportsAmd.js b/tests/baselines/reference/anonymousDefaultExportsAmd.js index 67931fd6cc8..bb5cd587a83 100644 --- a/tests/baselines/reference/anonymousDefaultExportsAmd.js +++ b/tests/baselines/reference/anonymousDefaultExportsAmd.js @@ -11,11 +11,13 @@ define(["require", "exports"], function (require, exports) { "use strict"; class default_1 { } + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = default_1; }); //// [b.js] define(["require", "exports"], function (require, exports) { "use strict"; function default_1() { } + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = default_1; }); diff --git a/tests/baselines/reference/anonymousDefaultExportsCommonjs.js b/tests/baselines/reference/anonymousDefaultExportsCommonjs.js index 513b75c27bd..754ffdb7c9b 100644 --- a/tests/baselines/reference/anonymousDefaultExportsCommonjs.js +++ b/tests/baselines/reference/anonymousDefaultExportsCommonjs.js @@ -10,8 +10,10 @@ export default function() {} "use strict"; class default_1 { } +Object.defineProperty(exports, "__esModule", { value: true }); exports.default = default_1; //// [b.js] "use strict"; function default_1() { } +Object.defineProperty(exports, "__esModule", { value: true }); exports.default = default_1; diff --git a/tests/baselines/reference/anonymousDefaultExportsUmd.js b/tests/baselines/reference/anonymousDefaultExportsUmd.js index bdaf8dc6aa8..203b234dfa0 100644 --- a/tests/baselines/reference/anonymousDefaultExportsUmd.js +++ b/tests/baselines/reference/anonymousDefaultExportsUmd.js @@ -18,6 +18,7 @@ export default function() {} "use strict"; class default_1 { } + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = default_1; }); //// [b.js] @@ -31,5 +32,6 @@ export default function() {} })(function (require, exports) { "use strict"; function default_1() { } + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = default_1; }); diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.js b/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.js index 05323aa247d..dbbe72ba52c 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.js +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.js @@ -28,6 +28,7 @@ define(["require", "exports"], function (require, exports) { Foo = __decorate([ decorator ], Foo); + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Foo; }); //// [b.js] @@ -45,5 +46,6 @@ define(["require", "exports"], function (require, exports) { default_1 = __decorate([ decorator ], default_1); + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = default_1; }); diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.js b/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.js index 32e053789ce..ab518d73cb9 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.js +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.js @@ -27,6 +27,7 @@ let Foo = class { Foo = __decorate([ decorator ], Foo); +Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Foo; //// [b.js] "use strict"; @@ -42,4 +43,5 @@ let default_1 = class { default_1 = __decorate([ decorator ], default_1); +Object.defineProperty(exports, "__esModule", { value: true }); exports.default = default_1; diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.js b/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.js index d65bc33575b..f8cb770f1d2 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.js +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.js @@ -35,6 +35,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, Foo = __decorate([ decorator ], Foo); + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Foo; }); //// [b.js] @@ -59,5 +60,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, default_1 = __decorate([ decorator ], default_1); + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = default_1; }); diff --git a/tests/baselines/reference/defaultExportsGetExportedAmd.js b/tests/baselines/reference/defaultExportsGetExportedAmd.js index fd9927250cb..fc0385254c0 100644 --- a/tests/baselines/reference/defaultExportsGetExportedAmd.js +++ b/tests/baselines/reference/defaultExportsGetExportedAmd.js @@ -12,11 +12,13 @@ define(["require", "exports"], function (require, exports) { "use strict"; class Foo { } + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Foo; }); //// [b.js] define(["require", "exports"], function (require, exports) { "use strict"; function foo() { } + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = foo; }); diff --git a/tests/baselines/reference/defaultExportsGetExportedCommonjs.js b/tests/baselines/reference/defaultExportsGetExportedCommonjs.js index 8b97cff5d38..1290404099d 100644 --- a/tests/baselines/reference/defaultExportsGetExportedCommonjs.js +++ b/tests/baselines/reference/defaultExportsGetExportedCommonjs.js @@ -11,8 +11,10 @@ export default function foo() {} "use strict"; class Foo { } +Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Foo; //// [b.js] "use strict"; function foo() { } +Object.defineProperty(exports, "__esModule", { value: true }); exports.default = foo; diff --git a/tests/baselines/reference/defaultExportsGetExportedUmd.js b/tests/baselines/reference/defaultExportsGetExportedUmd.js index 2d442e42061..754c5b00ac8 100644 --- a/tests/baselines/reference/defaultExportsGetExportedUmd.js +++ b/tests/baselines/reference/defaultExportsGetExportedUmd.js @@ -19,6 +19,7 @@ export default function foo() {} "use strict"; class Foo { } + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Foo; }); //// [b.js] @@ -32,5 +33,6 @@ export default function foo() {} })(function (require, exports) { "use strict"; function foo() { } + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = foo; }); diff --git a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport.js b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport.js index 51fc7bf6897..d7dfe29208d 100644 --- a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport.js +++ b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport.js @@ -27,6 +27,7 @@ var x1: number = m; exports.a = 10; exports.x = exports.a; exports.m = exports.a; +Object.defineProperty(exports, "__esModule", { value: true }); exports.default = {}; //// [es6ImportDefaultBindingFollowedWithNamedImport_1.js] "use strict"; diff --git a/tests/baselines/reference/exportsAndImports4-es6.js b/tests/baselines/reference/exportsAndImports4-es6.js index 3d3278b4462..39c6583e935 100644 --- a/tests/baselines/reference/exportsAndImports4-es6.js +++ b/tests/baselines/reference/exportsAndImports4-es6.js @@ -41,6 +41,7 @@ export { a, b, c, d, e1, e2, f1, f2 }; //// [t1.js] "use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); exports.default = "hello"; //// [t3.js] "use strict"; diff --git a/tests/baselines/reference/outFilerootDirModuleNamesAmd.js b/tests/baselines/reference/outFilerootDirModuleNamesAmd.js index 66d280839d4..5b99f76a5b9 100644 --- a/tests/baselines/reference/outFilerootDirModuleNamesAmd.js +++ b/tests/baselines/reference/outFilerootDirModuleNamesAmd.js @@ -14,12 +14,14 @@ export default function foo() { new Foo(); } define("b", ["require", "exports", "a"], function (require, exports, a_1) { "use strict"; function foo() { new a_1.default(); } + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = foo; }); define("a", ["require", "exports", "b"], function (require, exports, b_1) { "use strict"; class Foo { } + Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Foo; b_1.default(); }); From a5a6c10322ed2fbdb04180d32abb14bc9a8a86a2 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Wed, 2 Dec 2015 21:06:32 -0800 Subject: [PATCH 062/103] use typeof to check for presence of `JSON` global --- src/compiler/utilities.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 280b8203ff4..95bf4ff7fa3 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -2400,7 +2400,7 @@ namespace ts { * Serialize an object graph into a JSON string. This is intended only for use on an acyclic graph * as the fallback implementation does not check for circular references by default. */ - export const stringify: (value: any) => string = JSON && JSON.stringify + export const stringify: (value: any) => string = typeof JSON !== "undefined" && JSON.stringify ? JSON.stringify : stringifyFallback; From 4137a103d886c8e042386b76b8e38ba173160602 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 2 Dec 2015 22:05:11 -0800 Subject: [PATCH 063/103] Fix typo in the spec --- ...anguage Specification (Change Markup).docx | Bin 360911 -> 360249 bytes doc/TypeScript Language Specification.docx | Bin 310698 -> 311634 bytes doc/spec.md | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/TypeScript Language Specification (Change Markup).docx b/doc/TypeScript Language Specification (Change Markup).docx index 893f2e7ed22f1181a50cfc3076afc572abe86f09..24e7d1b623abfecab3eca294411bbcffe5799a8e 100644 GIT binary patch delta 309957 zcmXt8WmubAv&9J>q`14gySux)yHhksaCdjt;#Qy(FRrBoEACJnN}-o?zH|TNN1ip? z*6erI%$~Uj+@7}&&21>iL-;f*w=b|zux9D~C?ufXt-oqIm(cZf6=?-6iI)iTp=}Qg zK>>Yswio(Exzrt*T0kU)913U>V0(jBwPsKBhD8(gCOLyfMrbCv`26~->q-Mn99-V( zy_BEW)$Q9e*%vmvv91Qg1Dos1m_FX*god2V+dlq4zq_f`{mek?hST<(>iE`)EfN!( z`f?B`=*lS{wv z8;l1S)YNVb9u8X@4&7=LrVp#*>k4e@GrP@laJLs%79Kp?t}s4B`V`qlqYvO4`Py#V z>)NjPR>_kGVqV7r_ef3c{U7Ty@eC;5J{p2_r`mD9=-RnuIoyx`-p%a3lrcP_d#3#K zX@o|_&M)_7bD@`U%a!f=w3q&d%8gHE?XB%a`ab2wRTRr5zr1HJpV26WGh_5r_)B-w zlFfE~tXR<%>rLaCQjig=@73o%^6yK6((MkJ`6!|lPwQ32th_W=1C$(O^OQGOtHmEd z@|dpMUV3RZd3bz$mpVLwnM&v5CZStBp>30-en^3Vv3&LQ2Q%~C?d$ zrUw>XbU!TQKY~K2kVCre62=tvKi)*l>Hg+>#2Mxg;309^wbU1_?o_*ojh6tWjZlp| zR=eUz_E`1aM5Xg8o{z`w!4KmN?@gl}H(Gua^}CpH|MFza^Oty44}}Az?=_2cizImF zOy)sAWXe~{@wV#pfu&aAHHTNPme(yOGhTC`wkIaDo7!GcJD!0FnUYn?1{r;tX@-(|7&ssqc0l>YYH;(YZ|%BalFjkiv;Wy@ zomfI-tcPF{CV3kpfM@XapmUeMRDpkJy3b|%=$Kze6Su>8(wk=r-aommjgu?n+5S&P zap7t!;3%Y}_YtFQrBDx}7p2@UaO$w*b@oQfu%J=qTjE~4a~4VgZ*n6Dw1uC6)RXvOGWxfqLng+FfDkI$fYt!GI# *#R1_uF38Gs!fArh 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
    97QcL?0pb)0wC{x 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

    YC9`dSBUxlFL~_(4o-y#s>kyw<@% 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