From ff7169530b18a874d396ace114be3e2e4dbfa31c Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 6 Oct 2015 12:49:42 -0700 Subject: [PATCH 01/89] 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 02/89] 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 03/89] 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 04/89] 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 05/89] 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 06/89] 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 07/89] 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 cb152003782114103ff4a3472d62381139e33dfa Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 10 Nov 2015 16:58:10 -0800 Subject: [PATCH 08/89] 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 09/89] 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 10/89] 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 11/89] 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 12/89] 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 13/89] 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 14/89] 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 15/89] 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 16/89] 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 17/89] 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 18/89] 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 19/89] 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 20/89] 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 21/89] 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 22/89] 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 23/89] 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 24/89] 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 25/89] 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 26/89] 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 27/89] 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 28/89] 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 1fb8a249dfcd577cc2d519775019f18ac2c7171c Mon Sep 17 00:00:00 2001 From: Dirk Holtwick Date: Tue, 1 Dec 2015 10:26:14 +0100 Subject: [PATCH 29/89] Enable await in ES6 and ES2015 script mode Even though strictly generators are an ES6 feature the real world support is large enough to use the feature in well known environments like node.js or Electron app. Since the previous output was not working at all anyway it feels like a good compromise to at least emit working code while still having the warning in place. The user would also need to add "use strict" on top of her .ts file to make it work with node.js. --- src/compiler/emitter.ts | 54 +++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 88847999a4b..09ae33c4edc 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -4514,32 +4514,34 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi convertedLoopState = undefined; tempFlags = 0; - tempVariables = undefined; - tempParameters = undefined; - - // When targeting ES6, emit arrow function natively in ES6 - if (shouldEmitAsArrowFunction(node)) { - emitSignatureParametersForArrow(node); - write(" =>"); - } - else { - emitSignatureParameters(node); - } - - const isAsync = isAsyncFunctionLike(node); - if (isAsync && languageVersion === ScriptTarget.ES6) { - emitAsyncFunctionBodyForES6(node); - } - else { - emitFunctionBody(node); - } - - if (!isES6ExportedDeclaration(node)) { - emitExportMemberAssignment(node); - } - - Debug.assert(convertedLoopState === undefined); - convertedLoopState = saveConvertedLoopState; + tempVariables = undefined; + tempParameters = undefined; + + // When targeting ES6, emit arrow function natively in ES6 + if (shouldEmitAsArrowFunction(node)) { + emitSignatureParametersForArrow(node); + write(" =>"); + } + else { + emitSignatureParameters(node); + } + + // Even though generators are a ES6 only feature, the functionality is wiedely supported + // in current browsers and latest node, therefore showing some tolerance + const isAsync = isAsyncFunctionLike(node); + if (isAsync && (languageVersion === ScriptTarget.ES6 || languageVersion === ScriptTarget.ES2015 || languageVersion === ScriptTarget.ES5)) { + emitAsyncFunctionBodyForES6(node); + } + else { + emitFunctionBody(node); + } + + if (!isES6ExportedDeclaration(node)) { + emitExportMemberAssignment(node); + } + + Debug.assert(convertedLoopState === undefined); + convertedLoopState = saveConvertedLoopState; tempFlags = saveTempFlags; tempVariables = saveTempVariables; From c12d29bda5fba0efef6473c95bae2c2abd1be996 Mon Sep 17 00:00:00 2001 From: Dirk Holtwick Date: Tue, 1 Dec 2015 20:26:20 +0100 Subject: [PATCH 30/89] Simplifying the pre ES6 async/await change --- src/compiler/emitter.ts | 58 ++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 09ae33c4edc..557c02bf4f7 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2978,7 +2978,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi } else { // this is top level converted loop so we need to create an alias for 'this' here - // NOTE: + // NOTE: // if converted loops were all nested in arrow function then we'll always emit '_this' so convertedLoopState.thisName will not be set. // If it is set this means that all nested loops are not nested in arrow function and it is safe to capture 'this'. write(`var ${convertedLoopState.thisName} = this;`); @@ -4369,7 +4369,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi function emitAsyncFunctionBodyForES6(node: FunctionLikeDeclaration) { const promiseConstructor = getEntityNameFromTypeNode(node.type); - const isArrowFunction = node.kind === SyntaxKind.ArrowFunction; + const isArrowFunction = node.kind === SyntaxKind.ArrowFunction; const hasLexicalArguments = (resolver.getNodeCheckFlags(node) & NodeCheckFlags.CaptureArguments) !== 0; // An async function is emit as an outer function that calls an inner @@ -4514,34 +4514,32 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi convertedLoopState = undefined; tempFlags = 0; - tempVariables = undefined; - tempParameters = undefined; - - // When targeting ES6, emit arrow function natively in ES6 - if (shouldEmitAsArrowFunction(node)) { - emitSignatureParametersForArrow(node); - write(" =>"); - } - else { - emitSignatureParameters(node); - } - - // Even though generators are a ES6 only feature, the functionality is wiedely supported - // in current browsers and latest node, therefore showing some tolerance - const isAsync = isAsyncFunctionLike(node); - if (isAsync && (languageVersion === ScriptTarget.ES6 || languageVersion === ScriptTarget.ES2015 || languageVersion === ScriptTarget.ES5)) { - emitAsyncFunctionBodyForES6(node); - } - else { - emitFunctionBody(node); - } - - if (!isES6ExportedDeclaration(node)) { - emitExportMemberAssignment(node); - } - - Debug.assert(convertedLoopState === undefined); - convertedLoopState = saveConvertedLoopState; + tempVariables = undefined; + tempParameters = undefined; + + // When targeting ES6, emit arrow function natively in ES6 + if (shouldEmitAsArrowFunction(node)) { + emitSignatureParametersForArrow(node); + write(" =>"); + } + else { + emitSignatureParameters(node); + } + + const isAsync = isAsyncFunctionLike(node); + if (isAsync) { + emitAsyncFunctionBodyForES6(node); + } + else { + emitFunctionBody(node); + } + + if (!isES6ExportedDeclaration(node)) { + emitExportMemberAssignment(node); + } + + Debug.assert(convertedLoopState === undefined); + convertedLoopState = saveConvertedLoopState; tempFlags = saveTempFlags; tempVariables = saveTempVariables; From acd1760c8c7fcde17189c517718c13645565ec55 Mon Sep 17 00:00:00 2001 From: Dirk Holtwick Date: Tue, 1 Dec 2015 20:30:50 +0100 Subject: [PATCH 31/89] Fix whitespace issues --- src/compiler/emitter.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 557c02bf4f7..641c50a8182 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2978,7 +2978,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi } else { // this is top level converted loop so we need to create an alias for 'this' here - // NOTE: + // NOTE: // if converted loops were all nested in arrow function then we'll always emit '_this' so convertedLoopState.thisName will not be set. // If it is set this means that all nested loops are not nested in arrow function and it is safe to capture 'this'. write(`var ${convertedLoopState.thisName} = this;`); @@ -4369,7 +4369,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi function emitAsyncFunctionBodyForES6(node: FunctionLikeDeclaration) { const promiseConstructor = getEntityNameFromTypeNode(node.type); - const isArrowFunction = node.kind === SyntaxKind.ArrowFunction; + const isArrowFunction = node.kind === SyntaxKind.ArrowFunction; const hasLexicalArguments = (resolver.getNodeCheckFlags(node) & NodeCheckFlags.CaptureArguments) !== 0; // An async function is emit as an outer function that calls an inner From 130f3304ea0efe27e63ff4824224a263ddabf7f3 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 1 Dec 2015 14:35:26 -0800 Subject: [PATCH 32/89] 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 33/89] 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 592d41c9cc8550e975674bdf13ab6f8572ea7519 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 1 Dec 2015 15:05:08 -0800 Subject: [PATCH 34/89] lint all filed before a failure --- Jakefile.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Jakefile.js b/Jakefile.js index 6243ce8ff97..1ab189a79ce 100644 --- a/Jakefile.js +++ b/Jakefile.js @@ -926,13 +926,17 @@ var lintTargets = compilerSources desc("Runs tslint on the compiler sources"); task("lint", ["build-rules"], function() { var lintOptions = getLinterOptions(); + var failed = 0; for (var i in lintTargets) { var result = lintFile(lintOptions, lintTargets[i]); if (result.failureCount > 0) { console.log(result.output); - fail('Linter errors.', result.failureCount); + failed += result.failureCount; } } + if (failed > 0) { + fail('Linter errors.', failed); + } }); /** From 3085806fc2c566b1d490f1a8228210cabe01b93f Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 1 Dec 2015 15:14:24 -0800 Subject: [PATCH 35/89] lint rule forbidding the in keyword binary expression --- Jakefile.js | 6 ++++-- scripts/tslint/noInOperatorRule.ts | 20 ++++++++++++++++++++ tslint.json | 3 ++- 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 scripts/tslint/noInOperatorRule.ts diff --git a/Jakefile.js b/Jakefile.js index 6243ce8ff97..eec704870c8 100644 --- a/Jakefile.js +++ b/Jakefile.js @@ -113,7 +113,8 @@ var scriptSources = [ "tslint/nextLineRule.ts", "tslint/noNullRule.ts", "tslint/preferConstRule.ts", - "tslint/typeOperatorSpacingRule.ts" + "tslint/typeOperatorSpacingRule.ts", + "tslint/noInOperatorRule.ts" ].map(function (f) { return path.join(scriptsDirectory, f); }); @@ -875,7 +876,8 @@ var tslintRules = ([ "noNullRule", "preferConstRule", "booleanTriviaRule", - "typeOperatorSpacingRule" + "typeOperatorSpacingRule", + "noInOperatorRule" ]); var tslintRulesFiles = tslintRules.map(function(p) { return path.join(tslintRuleDir, p + ".ts"); diff --git a/scripts/tslint/noInOperatorRule.ts b/scripts/tslint/noInOperatorRule.ts new file mode 100644 index 00000000000..527e8c1b895 --- /dev/null +++ b/scripts/tslint/noInOperatorRule.ts @@ -0,0 +1,20 @@ +import * as Lint from "tslint/lib/lint"; +import * as ts from "typescript"; + + +export class Rule extends Lint.Rules.AbstractRule { + public static FAILURE_STRING = "Don't use the 'in' keyword - use 'hasProperty' to check for key presence instead"; + + public apply(sourceFile: ts.SourceFile): Lint.RuleFailure[] { + return this.applyWithWalker(new InWalker(sourceFile, this.getOptions())); + } +} + +class InWalker extends Lint.RuleWalker { + visitNode(node: ts.Node) { + super.visitNode(node); + if (node.kind === ts.SyntaxKind.InKeyword && node.parent && node.parent.kind === ts.SyntaxKind.BinaryExpression) { + this.addFailure(this.createFailure(node.getStart(), node.getWidth(), Rule.FAILURE_STRING)); + } + } +} diff --git a/tslint.json b/tslint.json index 3cafdbfd39c..9b010d9a896 100644 --- a/tslint.json +++ b/tslint.json @@ -40,6 +40,7 @@ "no-null": true, "boolean-trivia": true, "type-operator-spacing": true, - "prefer-const": true + "prefer-const": true, + "no-in-operator": true } } From 956a6b720abf65376e80de610f819ec06afcf260 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Tue, 1 Dec 2015 16:18:06 -0800 Subject: [PATCH 36/89] 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 951a77f7bd447a322e6dd7f10e2b1fa41c3927f5 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 1 Dec 2015 17:34:40 -0800 Subject: [PATCH 37/89] respect root dir/common src dir when generating module names --- src/compiler/utilities.ts | 6 ++- tests/baselines/reference/commonSourceDir5.js | 6 +-- tests/baselines/reference/commonSourceDir6.js | 6 +-- ...ilesEmittingIntoSameOutputWithOutOption.js | 2 +- .../getEmitOutputSingleFile2.baseline | 2 +- .../reference/outFilerootDirModuleNamesAmd.js | 25 +++++++++++ .../outFilerootDirModuleNamesAmd.symbols | 18 ++++++++ .../outFilerootDirModuleNamesAmd.types | 20 +++++++++ .../outFilerootDirModuleNamesSystem.js | 44 +++++++++++++++++++ .../outFilerootDirModuleNamesSystem.symbols | 18 ++++++++ .../outFilerootDirModuleNamesSystem.types | 20 +++++++++ .../baselines/reference/outModuleConcatAmd.js | 10 ++--- .../outModuleConcatAmd.sourcemap.txt | 4 +- .../reference/outModuleConcatCommonjs.js | 6 +-- .../baselines/reference/outModuleConcatES6.js | 6 +-- .../reference/outModuleConcatSystem.js | 10 ++--- .../outModuleConcatSystem.sourcemap.txt | 4 +- .../baselines/reference/outModuleConcatUmd.js | 6 +-- .../reference/outModuleTripleSlashRefs.js | 10 ++--- .../outModuleTripleSlashRefs.sourcemap.txt | 6 +-- .../amd/bin/test.d.ts | 2 +- .../amd/bin/test.js | 2 +- ...MultifolderSpecifyOutputFile.sourcemap.txt | 2 +- .../node/bin/test.d.ts | 2 +- .../amd/bin/test.d.ts | 2 +- .../amd/bin/test.js | 2 +- ...MultifolderSpecifyOutputFile.sourcemap.txt | 2 +- .../node/bin/test.d.ts | 2 +- .../amd/bin/test.d.ts | 2 +- .../amd/bin/test.js | 2 +- ...MultifolderSpecifyOutputFile.sourcemap.txt | 2 +- .../node/bin/test.d.ts | 2 +- .../amd/bin/test.d.ts | 2 +- .../amd/bin/test.js | 2 +- ...MultifolderSpecifyOutputFile.sourcemap.txt | 2 +- .../node/bin/test.d.ts | 2 +- .../amd/bin/test.d.ts | 2 +- .../amd/bin/test.js | 2 +- .../node/bin/test.d.ts | 2 +- .../amd/bin/test.d.ts | 2 +- .../amd/bin/test.js | 2 +- ...MultifolderSpecifyOutputFile.sourcemap.txt | 2 +- .../node/bin/test.d.ts | 2 +- .../amd/bin/test.d.ts | 2 +- .../amd/bin/test.js | 2 +- ...MultifolderSpecifyOutputFile.sourcemap.txt | 2 +- .../node/bin/test.d.ts | 2 +- .../amd/bin/test.d.ts | 2 +- .../amd/bin/test.js | 2 +- ...MultifolderSpecifyOutputFile.sourcemap.txt | 2 +- .../node/bin/test.d.ts | 2 +- .../amd/bin/test.d.ts | 2 +- .../amd/bin/test.js | 2 +- ...MultifolderSpecifyOutputFile.sourcemap.txt | 2 +- .../node/bin/test.d.ts | 2 +- .../outFilerootDirModuleNamesAmd.ts | 12 +++++ .../outFilerootDirModuleNamesSystem.ts | 12 +++++ 57 files changed, 247 insertions(+), 76 deletions(-) create mode 100644 tests/baselines/reference/outFilerootDirModuleNamesAmd.js create mode 100644 tests/baselines/reference/outFilerootDirModuleNamesAmd.symbols create mode 100644 tests/baselines/reference/outFilerootDirModuleNamesAmd.types create mode 100644 tests/baselines/reference/outFilerootDirModuleNamesSystem.js create mode 100644 tests/baselines/reference/outFilerootDirModuleNamesSystem.symbols create mode 100644 tests/baselines/reference/outFilerootDirModuleNamesSystem.types create mode 100644 tests/cases/conformance/es6/moduleExportsAmd/outFilerootDirModuleNamesAmd.ts create mode 100644 tests/cases/conformance/es6/moduleExportsSystem/outFilerootDirModuleNamesSystem.ts diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 60118604c50..8c4b1312cdb 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -1889,8 +1889,10 @@ namespace ts { * Resolves a local path to a path which is absolute to the base of the emit */ export function getExternalModuleNameFromPath(host: EmitHost, fileName: string): string { - const dir = toPath(host.getCommonSourceDirectory(), host.getCurrentDirectory(), f => host.getCanonicalFileName(f)); - const relativePath = getRelativePathToDirectoryOrUrl(dir, fileName, dir, f => host.getCanonicalFileName(f), /*isAbsolutePathAnUrl*/ false); + const getCanonicalFileName = (f: string) => host.getCanonicalFileName(f); + const dir = toPath(host.getCommonSourceDirectory(), host.getCurrentDirectory(), getCanonicalFileName); + const filePath = toPath(fileName, host.getCurrentDirectory(), getCanonicalFileName); + const relativePath = getRelativePathToDirectoryOrUrl(dir, filePath, dir, getCanonicalFileName, /*isAbsolutePathAnUrl*/ false); return removeFileExtension(relativePath); } diff --git a/tests/baselines/reference/commonSourceDir5.js b/tests/baselines/reference/commonSourceDir5.js index 7a43aba254e..8bb11fec583 100644 --- a/tests/baselines/reference/commonSourceDir5.js +++ b/tests/baselines/reference/commonSourceDir5.js @@ -16,17 +16,17 @@ export var pi = Math.PI; export var y = x * i; //// [concat.js] -define("B:/baz", ["require", "exports", "A:/bar", "A:/foo"], function (require, exports, bar_1, foo_1) { +define("b:/baz", ["require", "exports", "a:/bar", "a:/foo"], function (require, exports, bar_1, foo_1) { "use strict"; exports.pi = Math.PI; exports.y = bar_1.x * foo_1.i; }); -define("A:/foo", ["require", "exports", "B:/baz"], function (require, exports, baz_1) { +define("a:/foo", ["require", "exports", "b:/baz"], function (require, exports, baz_1) { "use strict"; exports.i = Math.sqrt(-1); exports.z = baz_1.pi * baz_1.pi; }); -define("A:/bar", ["require", "exports", "A:/foo"], function (require, exports, foo_2) { +define("a:/bar", ["require", "exports", "a:/foo"], function (require, exports, foo_2) { "use strict"; exports.x = foo_2.z + foo_2.z; }); diff --git a/tests/baselines/reference/commonSourceDir6.js b/tests/baselines/reference/commonSourceDir6.js index 6fe0b4a1b8f..88f5828a500 100644 --- a/tests/baselines/reference/commonSourceDir6.js +++ b/tests/baselines/reference/commonSourceDir6.js @@ -16,17 +16,17 @@ export var pi = Math.PI; export var y = x * i; //// [concat.js] -define("tests/cases/compiler/baz", ["require", "exports", "tests/cases/compiler/a/bar", "tests/cases/compiler/a/foo"], function (require, exports, bar_1, foo_1) { +define("baz", ["require", "exports", "a/bar", "a/foo"], function (require, exports, bar_1, foo_1) { "use strict"; exports.pi = Math.PI; exports.y = bar_1.x * foo_1.i; }); -define("tests/cases/compiler/a/foo", ["require", "exports", "tests/cases/compiler/baz"], function (require, exports, baz_1) { +define("a/foo", ["require", "exports", "baz"], function (require, exports, baz_1) { "use strict"; exports.i = Math.sqrt(-1); exports.z = baz_1.pi * baz_1.pi; }); -define("tests/cases/compiler/a/bar", ["require", "exports", "tests/cases/compiler/a/foo"], function (require, exports, foo_2) { +define("a/bar", ["require", "exports", "a/foo"], function (require, exports, foo_2) { "use strict"; exports.x = foo_2.z + foo_2.z; }); diff --git a/tests/baselines/reference/filesEmittingIntoSameOutputWithOutOption.js b/tests/baselines/reference/filesEmittingIntoSameOutputWithOutOption.js index 164fd091c16..d8513e6731c 100644 --- a/tests/baselines/reference/filesEmittingIntoSameOutputWithOutOption.js +++ b/tests/baselines/reference/filesEmittingIntoSameOutputWithOutOption.js @@ -10,7 +10,7 @@ function foo() { //// [a.js] -define("tests/cases/compiler/a", ["require", "exports"], function (require, exports) { +define("a", ["require", "exports"], function (require, exports) { "use strict"; var c = (function () { function c() { diff --git a/tests/baselines/reference/getEmitOutputSingleFile2.baseline b/tests/baselines/reference/getEmitOutputSingleFile2.baseline index 21e28eb7feb..8d7b4662187 100644 --- a/tests/baselines/reference/getEmitOutputSingleFile2.baseline +++ b/tests/baselines/reference/getEmitOutputSingleFile2.baseline @@ -23,7 +23,7 @@ declare class Foo { x: string; y: number; } -declare module "inputFile3" { +declare module "inputfile3" { export var foo: number; export var bar: string; } diff --git a/tests/baselines/reference/outFilerootDirModuleNamesAmd.js b/tests/baselines/reference/outFilerootDirModuleNamesAmd.js new file mode 100644 index 00000000000..66d280839d4 --- /dev/null +++ b/tests/baselines/reference/outFilerootDirModuleNamesAmd.js @@ -0,0 +1,25 @@ +//// [tests/cases/conformance/es6/moduleExportsAmd/outFilerootDirModuleNamesAmd.ts] //// + +//// [a.ts] +import foo from "./b"; +export default class Foo {} +foo(); + +//// [b.ts] +import Foo from "./a"; +export default function foo() { new Foo(); } + + +//// [output.js] +define("b", ["require", "exports", "a"], function (require, exports, a_1) { + "use strict"; + function foo() { new a_1.default(); } + exports.default = foo; +}); +define("a", ["require", "exports", "b"], function (require, exports, b_1) { + "use strict"; + class Foo { + } + exports.default = Foo; + b_1.default(); +}); diff --git a/tests/baselines/reference/outFilerootDirModuleNamesAmd.symbols b/tests/baselines/reference/outFilerootDirModuleNamesAmd.symbols new file mode 100644 index 00000000000..fea742c20ca --- /dev/null +++ b/tests/baselines/reference/outFilerootDirModuleNamesAmd.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/es6/moduleExportsAmd/src/a.ts === +import foo from "./b"; +>foo : Symbol(foo, Decl(a.ts, 0, 6)) + +export default class Foo {} +>Foo : Symbol(Foo, Decl(a.ts, 0, 22)) + +foo(); +>foo : Symbol(foo, Decl(a.ts, 0, 6)) + +=== tests/cases/conformance/es6/moduleExportsAmd/src/b.ts === +import Foo from "./a"; +>Foo : Symbol(Foo, Decl(b.ts, 0, 6)) + +export default function foo() { new Foo(); } +>foo : Symbol(foo, Decl(b.ts, 0, 22)) +>Foo : Symbol(Foo, Decl(b.ts, 0, 6)) + diff --git a/tests/baselines/reference/outFilerootDirModuleNamesAmd.types b/tests/baselines/reference/outFilerootDirModuleNamesAmd.types new file mode 100644 index 00000000000..617096fd0dd --- /dev/null +++ b/tests/baselines/reference/outFilerootDirModuleNamesAmd.types @@ -0,0 +1,20 @@ +=== tests/cases/conformance/es6/moduleExportsAmd/src/a.ts === +import foo from "./b"; +>foo : () => void + +export default class Foo {} +>Foo : Foo + +foo(); +>foo() : void +>foo : () => void + +=== tests/cases/conformance/es6/moduleExportsAmd/src/b.ts === +import Foo from "./a"; +>Foo : typeof Foo + +export default function foo() { new Foo(); } +>foo : () => void +>new Foo() : Foo +>Foo : typeof Foo + diff --git a/tests/baselines/reference/outFilerootDirModuleNamesSystem.js b/tests/baselines/reference/outFilerootDirModuleNamesSystem.js new file mode 100644 index 00000000000..298ad52689f --- /dev/null +++ b/tests/baselines/reference/outFilerootDirModuleNamesSystem.js @@ -0,0 +1,44 @@ +//// [tests/cases/conformance/es6/moduleExportsSystem/outFilerootDirModuleNamesSystem.ts] //// + +//// [a.ts] +import foo from "./b"; +export default class Foo {} +foo(); + +//// [b.ts] +import Foo from "./a"; +export default function foo() { new Foo(); } + + +//// [output.js] +System.register("b", ["a"], function(exports_1) { + "use strict"; + var a_1; + function foo() { new a_1.default(); } + exports_1("default", foo); + return { + setters:[ + function (a_1_1) { + a_1 = a_1_1; + }], + execute: function() { + } + } +}); +System.register("a", ["b"], function(exports_2) { + "use strict"; + var b_1; + var Foo; + return { + setters:[ + function (b_1_1) { + b_1 = b_1_1; + }], + execute: function() { + class Foo { + } + exports_2("default", Foo); + b_1.default(); + } + } +}); diff --git a/tests/baselines/reference/outFilerootDirModuleNamesSystem.symbols b/tests/baselines/reference/outFilerootDirModuleNamesSystem.symbols new file mode 100644 index 00000000000..535c037f5af --- /dev/null +++ b/tests/baselines/reference/outFilerootDirModuleNamesSystem.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/es6/moduleExportsSystem/src/a.ts === +import foo from "./b"; +>foo : Symbol(foo, Decl(a.ts, 0, 6)) + +export default class Foo {} +>Foo : Symbol(Foo, Decl(a.ts, 0, 22)) + +foo(); +>foo : Symbol(foo, Decl(a.ts, 0, 6)) + +=== tests/cases/conformance/es6/moduleExportsSystem/src/b.ts === +import Foo from "./a"; +>Foo : Symbol(Foo, Decl(b.ts, 0, 6)) + +export default function foo() { new Foo(); } +>foo : Symbol(foo, Decl(b.ts, 0, 22)) +>Foo : Symbol(Foo, Decl(b.ts, 0, 6)) + diff --git a/tests/baselines/reference/outFilerootDirModuleNamesSystem.types b/tests/baselines/reference/outFilerootDirModuleNamesSystem.types new file mode 100644 index 00000000000..2f0e23c2e81 --- /dev/null +++ b/tests/baselines/reference/outFilerootDirModuleNamesSystem.types @@ -0,0 +1,20 @@ +=== tests/cases/conformance/es6/moduleExportsSystem/src/a.ts === +import foo from "./b"; +>foo : () => void + +export default class Foo {} +>Foo : Foo + +foo(); +>foo() : void +>foo : () => void + +=== tests/cases/conformance/es6/moduleExportsSystem/src/b.ts === +import Foo from "./a"; +>Foo : typeof Foo + +export default function foo() { new Foo(); } +>foo : () => void +>new Foo() : Foo +>Foo : typeof Foo + diff --git a/tests/baselines/reference/outModuleConcatAmd.js b/tests/baselines/reference/outModuleConcatAmd.js index cfcd1bad9b8..6408511f2ec 100644 --- a/tests/baselines/reference/outModuleConcatAmd.js +++ b/tests/baselines/reference/outModuleConcatAmd.js @@ -14,7 +14,7 @@ var __extends = (this && this.__extends) || function (d, b) { function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; -define("tests/cases/compiler/ref/a", ["require", "exports"], function (require, exports) { +define("ref/a", ["require", "exports"], function (require, exports) { "use strict"; var A = (function () { function A() { @@ -23,7 +23,7 @@ define("tests/cases/compiler/ref/a", ["require", "exports"], function (require, })(); exports.A = A; }); -define("tests/cases/compiler/b", ["require", "exports", "tests/cases/compiler/ref/a"], function (require, exports, a_1) { +define("b", ["require", "exports", "ref/a"], function (require, exports, a_1) { "use strict"; var B = (function (_super) { __extends(B, _super); @@ -37,12 +37,12 @@ define("tests/cases/compiler/b", ["require", "exports", "tests/cases/compiler/re //# sourceMappingURL=all.js.map //// [all.d.ts] -declare module "tests/cases/compiler/ref/a" { +declare module "ref/a" { export class A { } } -declare module "tests/cases/compiler/b" { - import { A } from "tests/cases/compiler/ref/a"; +declare module "b" { + import { A } from "ref/a"; export class B extends A { } } diff --git a/tests/baselines/reference/outModuleConcatAmd.sourcemap.txt b/tests/baselines/reference/outModuleConcatAmd.sourcemap.txt index 0b5988e4d3a..b8fe92f082c 100644 --- a/tests/baselines/reference/outModuleConcatAmd.sourcemap.txt +++ b/tests/baselines/reference/outModuleConcatAmd.sourcemap.txt @@ -13,7 +13,7 @@ sourceFile:tests/cases/compiler/ref/a.ts >>> function __() { this.constructor = d; } >>> d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); >>>}; ->>>define("tests/cases/compiler/ref/a", ["require", "exports"], function (require, exports) { +>>>define("ref/a", ["require", "exports"], function (require, exports) { >>> "use strict"; >>> var A = (function () { 1 >^^^^ @@ -79,7 +79,7 @@ emittedFile:all.js sourceFile:tests/cases/compiler/b.ts ------------------------------------------------------------------- >>>}); ->>>define("tests/cases/compiler/b", ["require", "exports", "tests/cases/compiler/ref/a"], function (require, exports, a_1) { +>>>define("b", ["require", "exports", "ref/a"], function (require, exports, a_1) { >>> "use strict"; >>> var B = (function (_super) { 1 >^^^^ diff --git a/tests/baselines/reference/outModuleConcatCommonjs.js b/tests/baselines/reference/outModuleConcatCommonjs.js index c859d6c63ef..0dbaee88004 100644 --- a/tests/baselines/reference/outModuleConcatCommonjs.js +++ b/tests/baselines/reference/outModuleConcatCommonjs.js @@ -20,12 +20,12 @@ var __extends = (this && this.__extends) || function (d, b) { //# sourceMappingURL=all.js.map //// [all.d.ts] -declare module "tests/cases/compiler/ref/a" { +declare module "ref/a" { export class A { } } -declare module "tests/cases/compiler/b" { - import { A } from "tests/cases/compiler/ref/a"; +declare module "b" { + import { A } from "ref/a"; export class B extends A { } } diff --git a/tests/baselines/reference/outModuleConcatES6.js b/tests/baselines/reference/outModuleConcatES6.js index 037d52eb410..45e58d2d773 100644 --- a/tests/baselines/reference/outModuleConcatES6.js +++ b/tests/baselines/reference/outModuleConcatES6.js @@ -15,12 +15,12 @@ export class B extends A { } //# sourceMappingURL=all.js.map //// [all.d.ts] -declare module "tests/cases/compiler/ref/a" { +declare module "ref/a" { export class A { } } -declare module "tests/cases/compiler/b" { - import { A } from "tests/cases/compiler/ref/a"; +declare module "b" { + import { A } from "ref/a"; export class B extends A { } } diff --git a/tests/baselines/reference/outModuleConcatSystem.js b/tests/baselines/reference/outModuleConcatSystem.js index 688221ca5b2..5ac811ea9a0 100644 --- a/tests/baselines/reference/outModuleConcatSystem.js +++ b/tests/baselines/reference/outModuleConcatSystem.js @@ -14,7 +14,7 @@ var __extends = (this && this.__extends) || function (d, b) { function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; -System.register("tests/cases/compiler/ref/a", [], function(exports_1) { +System.register("ref/a", [], function(exports_1) { "use strict"; var A; return { @@ -29,7 +29,7 @@ System.register("tests/cases/compiler/ref/a", [], function(exports_1) { } } }); -System.register("tests/cases/compiler/b", ["tests/cases/compiler/ref/a"], function(exports_2) { +System.register("b", ["ref/a"], function(exports_2) { "use strict"; var a_1; var B; @@ -53,12 +53,12 @@ System.register("tests/cases/compiler/b", ["tests/cases/compiler/ref/a"], functi //# sourceMappingURL=all.js.map //// [all.d.ts] -declare module "tests/cases/compiler/ref/a" { +declare module "ref/a" { export class A { } } -declare module "tests/cases/compiler/b" { - import { A } from "tests/cases/compiler/ref/a"; +declare module "b" { + import { A } from "ref/a"; export class B extends A { } } diff --git a/tests/baselines/reference/outModuleConcatSystem.sourcemap.txt b/tests/baselines/reference/outModuleConcatSystem.sourcemap.txt index 639fe3dcc89..88ff65a88a3 100644 --- a/tests/baselines/reference/outModuleConcatSystem.sourcemap.txt +++ b/tests/baselines/reference/outModuleConcatSystem.sourcemap.txt @@ -13,7 +13,7 @@ sourceFile:tests/cases/compiler/ref/a.ts >>> function __() { this.constructor = d; } >>> d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); >>>}; ->>>System.register("tests/cases/compiler/ref/a", [], function(exports_1) { +>>>System.register("ref/a", [], function(exports_1) { >>> "use strict"; >>> var A; >>> return { @@ -82,7 +82,7 @@ sourceFile:tests/cases/compiler/b.ts >>> } >>> } >>>}); ->>>System.register("tests/cases/compiler/b", ["tests/cases/compiler/ref/a"], function(exports_2) { +>>>System.register("b", ["ref/a"], function(exports_2) { >>> "use strict"; >>> var a_1; >>> var B; diff --git a/tests/baselines/reference/outModuleConcatUmd.js b/tests/baselines/reference/outModuleConcatUmd.js index c4aad41c6ed..6c60a13c892 100644 --- a/tests/baselines/reference/outModuleConcatUmd.js +++ b/tests/baselines/reference/outModuleConcatUmd.js @@ -20,12 +20,12 @@ var __extends = (this && this.__extends) || function (d, b) { //# sourceMappingURL=all.js.map //// [all.d.ts] -declare module "tests/cases/compiler/ref/a" { +declare module "ref/a" { export class A { } } -declare module "tests/cases/compiler/b" { - import { A } from "tests/cases/compiler/ref/a"; +declare module "b" { + import { A } from "ref/a"; export class B extends A { } } diff --git a/tests/baselines/reference/outModuleTripleSlashRefs.js b/tests/baselines/reference/outModuleTripleSlashRefs.js index 88cb9c9ed38..0aabf2b4835 100644 --- a/tests/baselines/reference/outModuleTripleSlashRefs.js +++ b/tests/baselines/reference/outModuleTripleSlashRefs.js @@ -42,7 +42,7 @@ var Foo = (function () { } return Foo; })(); -define("tests/cases/compiler/ref/a", ["require", "exports"], function (require, exports) { +define("ref/a", ["require", "exports"], function (require, exports) { "use strict"; /// var A = (function () { @@ -52,7 +52,7 @@ define("tests/cases/compiler/ref/a", ["require", "exports"], function (require, })(); exports.A = A; }); -define("tests/cases/compiler/b", ["require", "exports", "tests/cases/compiler/ref/a"], function (require, exports, a_1) { +define("b", ["require", "exports", "ref/a"], function (require, exports, a_1) { "use strict"; var B = (function (_super) { __extends(B, _super); @@ -71,13 +71,13 @@ declare class Foo { member: Bar; } declare var GlobalFoo: Foo; -declare module "tests/cases/compiler/ref/a" { +declare module "ref/a" { export class A { member: typeof GlobalFoo; } } -declare module "tests/cases/compiler/b" { - import { A } from "tests/cases/compiler/ref/a"; +declare module "b" { + import { A } from "ref/a"; export class B extends A { } } diff --git a/tests/baselines/reference/outModuleTripleSlashRefs.sourcemap.txt b/tests/baselines/reference/outModuleTripleSlashRefs.sourcemap.txt index 1d0724543ca..b80246ed9f7 100644 --- a/tests/baselines/reference/outModuleTripleSlashRefs.sourcemap.txt +++ b/tests/baselines/reference/outModuleTripleSlashRefs.sourcemap.txt @@ -58,7 +58,7 @@ sourceFile:tests/cases/compiler/ref/b.ts 2 >^ 3 > 4 > ^^^^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > 2 >} 3 > @@ -74,7 +74,7 @@ sourceFile:tests/cases/compiler/ref/b.ts emittedFile:all.js sourceFile:tests/cases/compiler/ref/a.ts ------------------------------------------------------------------- ->>>define("tests/cases/compiler/ref/a", ["require", "exports"], function (require, exports) { +>>>define("ref/a", ["require", "exports"], function (require, exports) { >>> "use strict"; >>> /// 1->^^^^ @@ -155,7 +155,7 @@ emittedFile:all.js sourceFile:tests/cases/compiler/b.ts ------------------------------------------------------------------- >>>}); ->>>define("tests/cases/compiler/b", ["require", "exports", "tests/cases/compiler/ref/a"], function (require, exports, a_1) { +>>>define("b", ["require", "exports", "ref/a"], function (require, exports, a_1) { >>> "use strict"; >>> var B = (function (_super) { 1 >^^^^ diff --git a/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts b/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts +++ b/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js b/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js index 6c9bb7e5029..a5ff923efe0 100644 --- a/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js +++ b/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js @@ -28,7 +28,7 @@ define("outputdir_module_multifolder_ref/m2", ["require", "exports"], function ( } exports.m2_f1 = m2_f1; }); -define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { "use strict"; exports.a1 = 10; var c1 = (function () { diff --git a/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile.sourcemap.txt b/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile.sourcemap.txt index 00c1d36ee61..d495eb07607 100644 --- a/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile.sourcemap.txt +++ b/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile.sourcemap.txt @@ -342,7 +342,7 @@ emittedFile:bin/test.js sourceFile:../test.ts ------------------------------------------------------------------- >>>}); ->>>define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +>>>define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { >>> "use strict"; >>> exports.a1 = 10; 1 >^^^^ diff --git a/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts b/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts +++ b/tests/baselines/reference/project/mapRootAbsolutePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts b/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts +++ b/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js b/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js index e39147c6ae1..9f8555682d6 100644 --- a/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js +++ b/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js @@ -28,7 +28,7 @@ define("outputdir_module_multifolder_ref/m2", ["require", "exports"], function ( } exports.m2_f1 = m2_f1; }); -define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { "use strict"; exports.a1 = 10; var c1 = (function () { diff --git a/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/amd/mapRootRelativePathModuleMultifolderSpecifyOutputFile.sourcemap.txt b/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/amd/mapRootRelativePathModuleMultifolderSpecifyOutputFile.sourcemap.txt index 064a3ae0604..ee3b40dc285 100644 --- a/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/amd/mapRootRelativePathModuleMultifolderSpecifyOutputFile.sourcemap.txt +++ b/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/amd/mapRootRelativePathModuleMultifolderSpecifyOutputFile.sourcemap.txt @@ -342,7 +342,7 @@ emittedFile:bin/test.js sourceFile:../projects/outputdir_module_multifolder/test.ts ------------------------------------------------------------------- >>>}); ->>>define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +>>>define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { >>> "use strict"; >>> exports.a1 = 10; 1 >^^^^ diff --git a/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts b/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts +++ b/tests/baselines/reference/project/mapRootRelativePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts b/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts +++ b/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.js b/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.js index 621d7634ee1..a31b4d772ec 100644 --- a/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.js +++ b/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.js @@ -28,7 +28,7 @@ define("outputdir_module_multifolder_ref/m2", ["require", "exports"], function ( } exports.m2_f1 = m2_f1; }); -define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { "use strict"; exports.a1 = 10; var c1 = (function () { diff --git a/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/amd/maprootUrlModuleMultifolderSpecifyOutputFile.sourcemap.txt b/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/amd/maprootUrlModuleMultifolderSpecifyOutputFile.sourcemap.txt index 568d06c38d1..829640b7bb1 100644 --- a/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/amd/maprootUrlModuleMultifolderSpecifyOutputFile.sourcemap.txt +++ b/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/amd/maprootUrlModuleMultifolderSpecifyOutputFile.sourcemap.txt @@ -342,7 +342,7 @@ emittedFile:bin/test.js sourceFile:file:///tests/cases/projects/outputdir_module_multifolder/test.ts ------------------------------------------------------------------- >>>}); ->>>define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +>>>define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { >>> "use strict"; >>> exports.a1 = 10; 1 >^^^^ diff --git a/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts b/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts +++ b/tests/baselines/reference/project/maprootUrlModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts b/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts +++ b/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.js b/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.js index 621d7634ee1..a31b4d772ec 100644 --- a/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.js +++ b/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.js @@ -28,7 +28,7 @@ define("outputdir_module_multifolder_ref/m2", ["require", "exports"], function ( } exports.m2_f1 = m2_f1; }); -define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { "use strict"; exports.a1 = 10; var c1 = (function () { diff --git a/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/amd/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile.sourcemap.txt b/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/amd/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile.sourcemap.txt index ea4aeaeecd9..c3f681d3691 100644 --- a/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/amd/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile.sourcemap.txt +++ b/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/amd/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile.sourcemap.txt @@ -342,7 +342,7 @@ emittedFile:bin/test.js sourceFile:outputdir_module_multifolder/test.ts ------------------------------------------------------------------- >>>}); ->>>define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +>>>define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { >>> "use strict"; >>> exports.a1 = 10; 1 >^^^^ diff --git a/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts b/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts +++ b/tests/baselines/reference/project/maprootUrlsourcerootUrlModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/outModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts b/tests/baselines/reference/project/outModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/outModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts +++ b/tests/baselines/reference/project/outModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/outModuleMultifolderSpecifyOutputFile/amd/bin/test.js b/tests/baselines/reference/project/outModuleMultifolderSpecifyOutputFile/amd/bin/test.js index 132e408c648..f4180b78739 100644 --- a/tests/baselines/reference/project/outModuleMultifolderSpecifyOutputFile/amd/bin/test.js +++ b/tests/baselines/reference/project/outModuleMultifolderSpecifyOutputFile/amd/bin/test.js @@ -28,7 +28,7 @@ define("outputdir_module_multifolder_ref/m2", ["require", "exports"], function ( } exports.m2_f1 = m2_f1; }); -define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { "use strict"; exports.a1 = 10; var c1 = (function () { diff --git a/tests/baselines/reference/project/outModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts b/tests/baselines/reference/project/outModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/outModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts +++ b/tests/baselines/reference/project/outModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts b/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts +++ b/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js b/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js index aa75fa33169..5db4d6336f1 100644 --- a/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js +++ b/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js @@ -28,7 +28,7 @@ define("outputdir_module_multifolder_ref/m2", ["require", "exports"], function ( } exports.m2_f1 = m2_f1; }); -define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { "use strict"; exports.a1 = 10; var c1 = (function () { diff --git a/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile.sourcemap.txt b/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile.sourcemap.txt index b4b30c5d8c2..116d03e99d1 100644 --- a/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile.sourcemap.txt +++ b/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/amd/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile.sourcemap.txt @@ -342,7 +342,7 @@ emittedFile:bin/test.js sourceFile:outputdir_module_multifolder/test.ts ------------------------------------------------------------------- >>>}); ->>>define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +>>>define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { >>> "use strict"; >>> exports.a1 = 10; 1 >^^^^ diff --git a/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts b/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts +++ b/tests/baselines/reference/project/sourceRootAbsolutePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts b/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts +++ b/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js b/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js index aa75fa33169..5db4d6336f1 100644 --- a/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js +++ b/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/amd/bin/test.js @@ -28,7 +28,7 @@ define("outputdir_module_multifolder_ref/m2", ["require", "exports"], function ( } exports.m2_f1 = m2_f1; }); -define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { "use strict"; exports.a1 = 10; var c1 = (function () { diff --git a/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/amd/sourceRootRelativePathModuleMultifolderSpecifyOutputFile.sourcemap.txt b/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/amd/sourceRootRelativePathModuleMultifolderSpecifyOutputFile.sourcemap.txt index ef5fa1f7b5a..14557880a96 100644 --- a/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/amd/sourceRootRelativePathModuleMultifolderSpecifyOutputFile.sourcemap.txt +++ b/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/amd/sourceRootRelativePathModuleMultifolderSpecifyOutputFile.sourcemap.txt @@ -342,7 +342,7 @@ emittedFile:bin/test.js sourceFile:outputdir_module_multifolder/test.ts ------------------------------------------------------------------- >>>}); ->>>define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +>>>define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { >>> "use strict"; >>> exports.a1 = 10; 1 >^^^^ diff --git a/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts b/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts +++ b/tests/baselines/reference/project/sourceRootRelativePathModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts b/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts +++ b/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/amd/bin/test.js b/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/amd/bin/test.js index aa75fa33169..5db4d6336f1 100644 --- a/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/amd/bin/test.js +++ b/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/amd/bin/test.js @@ -28,7 +28,7 @@ define("outputdir_module_multifolder_ref/m2", ["require", "exports"], function ( } exports.m2_f1 = m2_f1; }); -define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { "use strict"; exports.a1 = 10; var c1 = (function () { diff --git a/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/amd/sourcemapModuleMultifolderSpecifyOutputFile.sourcemap.txt b/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/amd/sourcemapModuleMultifolderSpecifyOutputFile.sourcemap.txt index 797b9c0bf3c..6a48a2b7d8d 100644 --- a/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/amd/sourcemapModuleMultifolderSpecifyOutputFile.sourcemap.txt +++ b/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/amd/sourcemapModuleMultifolderSpecifyOutputFile.sourcemap.txt @@ -342,7 +342,7 @@ emittedFile:bin/test.js sourceFile:../test.ts ------------------------------------------------------------------- >>>}); ->>>define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +>>>define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { >>> "use strict"; >>> exports.a1 = 10; 1 >^^^^ diff --git a/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts b/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts +++ b/tests/baselines/reference/project/sourcemapModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts b/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts +++ b/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.js b/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.js index aa75fa33169..5db4d6336f1 100644 --- a/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.js +++ b/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/amd/bin/test.js @@ -28,7 +28,7 @@ define("outputdir_module_multifolder_ref/m2", ["require", "exports"], function ( } exports.m2_f1 = m2_f1; }); -define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { "use strict"; exports.a1 = 10; var c1 = (function () { diff --git a/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/amd/sourcerootUrlModuleMultifolderSpecifyOutputFile.sourcemap.txt b/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/amd/sourcerootUrlModuleMultifolderSpecifyOutputFile.sourcemap.txt index a2d611841c4..e4b0a3e7496 100644 --- a/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/amd/sourcerootUrlModuleMultifolderSpecifyOutputFile.sourcemap.txt +++ b/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/amd/sourcerootUrlModuleMultifolderSpecifyOutputFile.sourcemap.txt @@ -342,7 +342,7 @@ emittedFile:bin/test.js sourceFile:outputdir_module_multifolder/test.ts ------------------------------------------------------------------- >>>}); ->>>define("test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { +>>>define("outputdir_module_multifolder/test", ["require", "exports", "outputdir_module_multifolder/ref/m1", "outputdir_module_multifolder_ref/m2"], function (require, exports, m1, m2) { >>> "use strict"; >>> exports.a1 = 10; 1 >^^^^ diff --git a/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts b/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts index d42fc1cd136..b66a73a7c90 100644 --- a/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts +++ b/tests/baselines/reference/project/sourcerootUrlModuleMultifolderSpecifyOutputFile/node/bin/test.d.ts @@ -14,7 +14,7 @@ declare module "outputdir_module_multifolder_ref/m2" { export var m2_instance1: m2_c1; export function m2_f1(): m2_c1; } -declare module "test" { +declare module "outputdir_module_multifolder/test" { import m1 = require("outputdir_module_multifolder/ref/m1"); import m2 = require("outputdir_module_multifolder_ref/m2"); export var a1: number; diff --git a/tests/cases/conformance/es6/moduleExportsAmd/outFilerootDirModuleNamesAmd.ts b/tests/cases/conformance/es6/moduleExportsAmd/outFilerootDirModuleNamesAmd.ts new file mode 100644 index 00000000000..7f6fad73490 --- /dev/null +++ b/tests/cases/conformance/es6/moduleExportsAmd/outFilerootDirModuleNamesAmd.ts @@ -0,0 +1,12 @@ +// @target: ES6 +// @module: amd +// @rootDir: tests/cases/conformance/es6/moduleExportsAmd/src +// @outFile: output.js +// @filename: src/a.ts +import foo from "./b"; +export default class Foo {} +foo(); + +// @filename: src/b.ts +import Foo from "./a"; +export default function foo() { new Foo(); } diff --git a/tests/cases/conformance/es6/moduleExportsSystem/outFilerootDirModuleNamesSystem.ts b/tests/cases/conformance/es6/moduleExportsSystem/outFilerootDirModuleNamesSystem.ts new file mode 100644 index 00000000000..5708c84c4bd --- /dev/null +++ b/tests/cases/conformance/es6/moduleExportsSystem/outFilerootDirModuleNamesSystem.ts @@ -0,0 +1,12 @@ +// @target: ES6 +// @module: system +// @rootDir: tests/cases/conformance/es6/moduleExportsSystem/src +// @outFile: output.js +// @filename: src/a.ts +import foo from "./b"; +export default class Foo {} +foo(); + +// @filename: src/b.ts +import Foo from "./a"; +export default function foo() { new Foo(); } From 8d3e4f34756839b483ee3a7219c264c3e2b75366 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Tue, 1 Dec 2015 17:44:43 -0800 Subject: [PATCH 38/89] 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 ace383d342e76866b653c5169d0ace81b3069dff Mon Sep 17 00:00:00 2001 From: Yui T Date: Tue, 1 Dec 2015 18:39:02 -0800 Subject: [PATCH 39/89] add tests --- .../quickInfoForTypeParameterInTypeAlias.ts | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias.ts diff --git a/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias.ts b/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias.ts new file mode 100644 index 00000000000..7259a299a7b --- /dev/null +++ b/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias.ts @@ -0,0 +1,29 @@ +/// + +//// type Ctor = new () => A/*1*/A; +//// type MixinCtor = new () => AA & { constructor: MixinCtor }; +//// type NestedCtor = new() => AA & (new () => AA & { constructor: NestedCtor }); +//// type Method = { method(): A/*4*/A }; +//// type Construct = { new(): A/*5*/A }; +//// type Call = { (): A/*6*/A }; +//// type Index = {[foo: string]: A/*7*/A}; +//// type GenericMethod = { method(): A/*8*/A & B/*9*/B } + +goTo.marker('1'); +verify.quickInfoIs('(type parameter) AA in type Ctor'); +goTo.marker('2'); +verify.quickInfoIs('(type parameter) AA in type MixinCtor'); +goTo.marker('3'); +verify.quickInfoIs('(type parameter) AA in type NestedCtor'); +goTo.marker('4'); +verify.quickInfoIs('(type parameter) AA in type Method'); +goTo.marker('5'); +verify.quickInfoIs('(type parameter) AA in type Construct'); +goTo.marker('6'); +verify.quickInfoIs('(type parameter) AA in type Call'); +goTo.marker('7'); +verify.quickInfoIs('(type parameter) AA in type Index'); +goTo.marker('8'); +verify.quickInfoIs('(type parameter) AA in type GenericMethod'); +goTo.marker('9'); +verify.quickInfoIs('(type parameter) BB in method(): AA & BB'); \ No newline at end of file From 81e012f90fe4837b4b5ee9d4d61e929578683fe9 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Tue, 1 Dec 2015 18:53:54 -0800 Subject: [PATCH 40/89] dont canonicalize the filename when generating names, just use the absolute path --- src/compiler/utilities.ts | 2 +- tests/baselines/reference/commonSourceDir5.js | 6 +++--- tests/baselines/reference/getEmitOutputSingleFile2.baseline | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 8c4b1312cdb..280b8203ff4 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -1891,7 +1891,7 @@ namespace ts { export function getExternalModuleNameFromPath(host: EmitHost, fileName: string): string { const getCanonicalFileName = (f: string) => host.getCanonicalFileName(f); const dir = toPath(host.getCommonSourceDirectory(), host.getCurrentDirectory(), getCanonicalFileName); - const filePath = toPath(fileName, host.getCurrentDirectory(), getCanonicalFileName); + const filePath = getNormalizedAbsolutePath(fileName, host.getCurrentDirectory()); const relativePath = getRelativePathToDirectoryOrUrl(dir, filePath, dir, getCanonicalFileName, /*isAbsolutePathAnUrl*/ false); return removeFileExtension(relativePath); } diff --git a/tests/baselines/reference/commonSourceDir5.js b/tests/baselines/reference/commonSourceDir5.js index 8bb11fec583..7a43aba254e 100644 --- a/tests/baselines/reference/commonSourceDir5.js +++ b/tests/baselines/reference/commonSourceDir5.js @@ -16,17 +16,17 @@ export var pi = Math.PI; export var y = x * i; //// [concat.js] -define("b:/baz", ["require", "exports", "a:/bar", "a:/foo"], function (require, exports, bar_1, foo_1) { +define("B:/baz", ["require", "exports", "A:/bar", "A:/foo"], function (require, exports, bar_1, foo_1) { "use strict"; exports.pi = Math.PI; exports.y = bar_1.x * foo_1.i; }); -define("a:/foo", ["require", "exports", "b:/baz"], function (require, exports, baz_1) { +define("A:/foo", ["require", "exports", "B:/baz"], function (require, exports, baz_1) { "use strict"; exports.i = Math.sqrt(-1); exports.z = baz_1.pi * baz_1.pi; }); -define("a:/bar", ["require", "exports", "a:/foo"], function (require, exports, foo_2) { +define("A:/bar", ["require", "exports", "A:/foo"], function (require, exports, foo_2) { "use strict"; exports.x = foo_2.z + foo_2.z; }); diff --git a/tests/baselines/reference/getEmitOutputSingleFile2.baseline b/tests/baselines/reference/getEmitOutputSingleFile2.baseline index 8d7b4662187..21e28eb7feb 100644 --- a/tests/baselines/reference/getEmitOutputSingleFile2.baseline +++ b/tests/baselines/reference/getEmitOutputSingleFile2.baseline @@ -23,7 +23,7 @@ declare class Foo { x: string; y: number; } -declare module "inputfile3" { +declare module "inputFile3" { export var foo: number; export var bar: string; } From 181c10a78fa116e791602215b51dd527cb425ffb Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 2 Dec 2015 10:23:28 -0800 Subject: [PATCH 41/89] 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 42/89] 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 43/89] 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 44/89] 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 45/89] 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 46/89] 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 47/89] 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 48/89] 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 49/89] 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 135e091c2acc81325f0d205db253e45b75d0c18c Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 2 Dec 2015 13:45:52 -0800 Subject: [PATCH 50/89] Add more tests --- ... quickInfoForTypeParameterInTypeAlias1.ts} | 14 ++--------- .../quickInfoForTypeParameterInTypeAlias2.ts | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 12 deletions(-) rename tests/cases/fourslash/{quickInfoForTypeParameterInTypeAlias.ts => quickInfoForTypeParameterInTypeAlias1.ts} (59%) create mode 100644 tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias2.ts diff --git a/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias.ts b/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias1.ts similarity index 59% rename from tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias.ts rename to tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias1.ts index 7259a299a7b..7f5f6df4d5b 100644 --- a/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias.ts +++ b/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias1.ts @@ -5,9 +5,7 @@ //// type NestedCtor = new() => AA & (new () => AA & { constructor: NestedCtor }); //// type Method = { method(): A/*4*/A }; //// type Construct = { new(): A/*5*/A }; -//// type Call = { (): A/*6*/A }; -//// type Index = {[foo: string]: A/*7*/A}; -//// type GenericMethod = { method(): A/*8*/A & B/*9*/B } + goTo.marker('1'); verify.quickInfoIs('(type parameter) AA in type Ctor'); @@ -18,12 +16,4 @@ verify.quickInfoIs('(type parameter) AA in type NestedCtor'); goTo.marker('4'); verify.quickInfoIs('(type parameter) AA in type Method'); goTo.marker('5'); -verify.quickInfoIs('(type parameter) AA in type Construct'); -goTo.marker('6'); -verify.quickInfoIs('(type parameter) AA in type Call'); -goTo.marker('7'); -verify.quickInfoIs('(type parameter) AA in type Index'); -goTo.marker('8'); -verify.quickInfoIs('(type parameter) AA in type GenericMethod'); -goTo.marker('9'); -verify.quickInfoIs('(type parameter) BB in method(): AA & BB'); \ No newline at end of file +verify.quickInfoIs('(type parameter) AA in type Construct'); \ No newline at end of file diff --git a/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias2.ts b/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias2.ts new file mode 100644 index 00000000000..9a3682bf3bc --- /dev/null +++ b/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias2.ts @@ -0,0 +1,24 @@ +/// + +//// type Call = { (): A/*1*/A }; +//// type Index = {[foo: string]: A/*2*/A}; +//// type GenericMethod = { method(): A/*3*/A & B/*4*/B } +//// type Nesting = { method(): new () => T/*5*/T & U/*6*/U & W/*7*/W }; + +type Nesting = { method(): new () => TT & UU & WW } + +goTo.marker('1'); +verify.quickInfoIs('(type parameter) AA in type Call'); +goTo.marker('2'); +verify.quickInfoIs('(type parameter) AA in type Index'); +goTo.marker('3'); +verify.quickInfoIs('(type parameter) AA in type GenericMethod'); +goTo.marker('4'); +verify.quickInfoIs('(type parameter) BB in method(): AA & BB'); +goTo.marker('5'); +verify.quickInfoIs('(type parameter) TT in type Nesting'); +goTo.marker('6'); +verify.quickInfoIs('(type parameter) UU in method(): new () => TT & UU & WW'); +goTo.marker('7'); +verify.quickInfoIs('(type parameter) WW in (): TT & UU & WW'); + From f83817a4884940ddc6e3144965ac91e3652df0ba Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 2 Dec 2015 13:47:19 -0800 Subject: [PATCH 51/89] remove line and unused code --- tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias2.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias2.ts b/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias2.ts index 9a3682bf3bc..89a648470d6 100644 --- a/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias2.ts +++ b/tests/cases/fourslash/quickInfoForTypeParameterInTypeAlias2.ts @@ -5,8 +5,6 @@ //// type GenericMethod = { method(): A/*3*/A & B/*4*/B } //// type Nesting = { method(): new () => T/*5*/T & U/*6*/U & W/*7*/W }; -type Nesting = { method(): new () => TT & UU & WW } - goTo.marker('1'); verify.quickInfoIs('(type parameter) AA in type Call'); goTo.marker('2'); From 58a83f1e45ddaa7a289c24bc84f870b7b0500203 Mon Sep 17 00:00:00 2001 From: Yui T Date: Wed, 2 Dec 2015 13:57:10 -0800 Subject: [PATCH 52/89] 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 53/89] 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 54/89] 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 55/89] 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 56/89] 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 57/89] 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 58/89] 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 59/89] 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 60/89] 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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