From 2312c09b8789123d9174bcb952e165415665534d Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 7 Feb 2019 00:42:22 -0800 Subject: [PATCH] Update LKG. --- lib/protocol.d.ts | 2 +- lib/tsc.js | 17 +++++++++++++++-- lib/tsserver.js | 34 +++++++++++++++++++++++++++------- lib/tsserverlibrary.d.ts | 4 ++-- lib/tsserverlibrary.js | 34 +++++++++++++++++++++++++++------- lib/typescript.d.ts | 2 +- lib/typescript.js | 34 +++++++++++++++++++++++++++------- lib/typescriptServices.d.ts | 2 +- lib/typescriptServices.js | 34 +++++++++++++++++++++++++++------- lib/typingsInstaller.js | 19 +++++++++++++++++-- 10 files changed, 145 insertions(+), 37 deletions(-) diff --git a/lib/protocol.d.ts b/lib/protocol.d.ts index 66ad7eb215469..68651b804a5c2 100644 --- a/lib/protocol.d.ts +++ b/lib/protocol.d.ts @@ -2265,7 +2265,7 @@ declare namespace ts.server.protocol { } interface UserPreferences { readonly disableSuggestions?: boolean; - readonly quotePreference?: "double" | "single"; + readonly quotePreference?: "auto" | "double" | "single"; /** * If enabled, TypeScript will search through all external modules' exports and add them to the completions list. * This affects lone identifier completions but not completions on the right hand side of `obj.`. diff --git a/lib/tsc.js b/lib/tsc.js index 2de7a3e73ef21..d2c1c23fed419 100644 --- a/lib/tsc.js +++ b/lib/tsc.js @@ -61,7 +61,7 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook var ts; (function (ts) { ts.versionMajorMinor = "3.3"; - ts.version = ts.versionMajorMinor + ".1"; + ts.version = ts.versionMajorMinor + ".3"; })(ts || (ts = {})); (function (ts) { ts.emptyArray = []; @@ -48476,7 +48476,7 @@ var ts; return; } var file = host.getSourceFile(resolvedDirective.resolvedFileName); - fileToDirective.set(file.path, key); + addReferencedFilesToTypeDirective(file, key); }); } return { @@ -48615,6 +48615,19 @@ var ts; } return false; } + function addReferencedFilesToTypeDirective(file, key) { + if (fileToDirective.has(file.path)) + return; + fileToDirective.set(file.path, key); + for (var _i = 0, _a = file.referencedFiles; _i < _a.length; _i++) { + var fileName = _a[_i].fileName; + var resolvedFile = ts.resolveTripleslashReference(fileName, file.originalFileName); + var referencedFile = host.getSourceFile(resolvedFile); + if (referencedFile) { + addReferencedFilesToTypeDirective(referencedFile, key); + } + } + } } function getExternalModuleFileFromDeclaration(declaration) { var specifier = declaration.kind === 244 ? ts.tryCast(declaration.name, ts.isStringLiteral) : ts.getExternalModuleName(declaration); diff --git a/lib/tsserver.js b/lib/tsserver.js index 93b04dacfaf94..3b376eef55243 100644 --- a/lib/tsserver.js +++ b/lib/tsserver.js @@ -88,7 +88,7 @@ var ts; // If changing the text in this section, be sure to test `configureNightly` too. ts.versionMajorMinor = "3.3"; /** The version of the TypeScript compiler release */ - ts.version = ts.versionMajorMinor + ".1"; + ts.version = ts.versionMajorMinor + ".3"; })(ts || (ts = {})); (function (ts) { /* @internal */ @@ -57874,7 +57874,9 @@ var ts; return; } var file = host.getSourceFile(resolvedDirective.resolvedFileName); - fileToDirective.set(file.path, key); + // Add the transitive closure of path references loaded by this file (as long as they are not) + // part of an existing type reference. + addReferencedFilesToTypeDirective(file, key); }); } return { @@ -58029,6 +58031,19 @@ var ts; } return false; } + function addReferencedFilesToTypeDirective(file, key) { + if (fileToDirective.has(file.path)) + return; + fileToDirective.set(file.path, key); + for (var _i = 0, _a = file.referencedFiles; _i < _a.length; _i++) { + var fileName = _a[_i].fileName; + var resolvedFile = ts.resolveTripleslashReference(fileName, file.originalFileName); + var referencedFile = host.getSourceFile(resolvedFile); + if (referencedFile) { + addReferencedFilesToTypeDirective(referencedFile, key); + } + } + } } function getExternalModuleFileFromDeclaration(declaration) { var specifier = declaration.kind === 244 /* ModuleDeclaration */ ? ts.tryCast(declaration.name, ts.isStringLiteral) : ts.getExternalModuleName(declaration); @@ -94462,7 +94477,7 @@ var ts; } ts.quotePreferenceFromString = quotePreferenceFromString; function getQuotePreference(sourceFile, preferences) { - if (preferences.quotePreference) { + if (preferences.quotePreference && preferences.quotePreference !== "auto") { return preferences.quotePreference === "single" ? 0 /* Single */ : 1 /* Double */; } else { @@ -95033,15 +95048,18 @@ var ts; if (/^\d+$/.test(text)) { return text; } + // Editors can pass in undefined or empty string - we want to infer the preference in those cases. + var quotePreference = preferences.quotePreference || "auto"; var quoted = JSON.stringify(text); - switch (preferences.quotePreference) { - case undefined: + switch (quotePreference) { + // TODO use getQuotePreference to infer the actual quote style. + case "auto": case "double": return quoted; case "single": return "'" + stripQuotes(quoted).replace("'", "\\'").replace('\\"', '"') + "'"; default: - return ts.Debug.assertNever(preferences.quotePreference); + return ts.Debug.assertNever(quotePreference); } } ts.quote = quote; @@ -113925,7 +113943,9 @@ var ts; } function createStubbedMethodBody(preferences) { return ts.createBlock([ts.createThrow(ts.createNew(ts.createIdentifier("Error"), - /*typeArguments*/ undefined, [ts.createLiteral("Method not implemented.", /*isSingleQuote*/ preferences.quotePreference === "single")]))], + /*typeArguments*/ undefined, + // TODO Handle auto quote preference. + [ts.createLiteral("Method not implemented.", /*isSingleQuote*/ preferences.quotePreference === "single")]))], /*multiline*/ true); } function createVisibilityModifier(flags) { diff --git a/lib/tsserverlibrary.d.ts b/lib/tsserverlibrary.d.ts index ae457551a5003..a09413fbba71f 100644 --- a/lib/tsserverlibrary.d.ts +++ b/lib/tsserverlibrary.d.ts @@ -3009,7 +3009,7 @@ declare namespace ts { } interface UserPreferences { readonly disableSuggestions?: boolean; - readonly quotePreference?: "double" | "single"; + readonly quotePreference?: "auto" | "double" | "single"; readonly includeCompletionsForModuleExports?: boolean; readonly includeCompletionsWithInsertText?: boolean; readonly importModuleSpecifierPreference?: "relative" | "non-relative"; @@ -7925,7 +7925,7 @@ declare namespace ts.server.protocol { } interface UserPreferences { readonly disableSuggestions?: boolean; - readonly quotePreference?: "double" | "single"; + readonly quotePreference?: "auto" | "double" | "single"; /** * If enabled, TypeScript will search through all external modules' exports and add them to the completions list. * This affects lone identifier completions but not completions on the right hand side of `obj.`. diff --git a/lib/tsserverlibrary.js b/lib/tsserverlibrary.js index f2ff48d023c53..b248dbc859309 100644 --- a/lib/tsserverlibrary.js +++ b/lib/tsserverlibrary.js @@ -84,7 +84,7 @@ var ts; // If changing the text in this section, be sure to test `configureNightly` too. ts.versionMajorMinor = "3.3"; /** The version of the TypeScript compiler release */ - ts.version = ts.versionMajorMinor + ".1"; + ts.version = ts.versionMajorMinor + ".3"; })(ts || (ts = {})); (function (ts) { /* @internal */ @@ -57870,7 +57870,9 @@ var ts; return; } var file = host.getSourceFile(resolvedDirective.resolvedFileName); - fileToDirective.set(file.path, key); + // Add the transitive closure of path references loaded by this file (as long as they are not) + // part of an existing type reference. + addReferencedFilesToTypeDirective(file, key); }); } return { @@ -58025,6 +58027,19 @@ var ts; } return false; } + function addReferencedFilesToTypeDirective(file, key) { + if (fileToDirective.has(file.path)) + return; + fileToDirective.set(file.path, key); + for (var _i = 0, _a = file.referencedFiles; _i < _a.length; _i++) { + var fileName = _a[_i].fileName; + var resolvedFile = ts.resolveTripleslashReference(fileName, file.originalFileName); + var referencedFile = host.getSourceFile(resolvedFile); + if (referencedFile) { + addReferencedFilesToTypeDirective(referencedFile, key); + } + } + } } function getExternalModuleFileFromDeclaration(declaration) { var specifier = declaration.kind === 244 /* ModuleDeclaration */ ? ts.tryCast(declaration.name, ts.isStringLiteral) : ts.getExternalModuleName(declaration); @@ -94772,7 +94787,7 @@ var ts; } ts.quotePreferenceFromString = quotePreferenceFromString; function getQuotePreference(sourceFile, preferences) { - if (preferences.quotePreference) { + if (preferences.quotePreference && preferences.quotePreference !== "auto") { return preferences.quotePreference === "single" ? 0 /* Single */ : 1 /* Double */; } else { @@ -95343,15 +95358,18 @@ var ts; if (/^\d+$/.test(text)) { return text; } + // Editors can pass in undefined or empty string - we want to infer the preference in those cases. + var quotePreference = preferences.quotePreference || "auto"; var quoted = JSON.stringify(text); - switch (preferences.quotePreference) { - case undefined: + switch (quotePreference) { + // TODO use getQuotePreference to infer the actual quote style. + case "auto": case "double": return quoted; case "single": return "'" + stripQuotes(quoted).replace("'", "\\'").replace('\\"', '"') + "'"; default: - return ts.Debug.assertNever(preferences.quotePreference); + return ts.Debug.assertNever(quotePreference); } } ts.quote = quote; @@ -114235,7 +114253,9 @@ var ts; } function createStubbedMethodBody(preferences) { return ts.createBlock([ts.createThrow(ts.createNew(ts.createIdentifier("Error"), - /*typeArguments*/ undefined, [ts.createLiteral("Method not implemented.", /*isSingleQuote*/ preferences.quotePreference === "single")]))], + /*typeArguments*/ undefined, + // TODO Handle auto quote preference. + [ts.createLiteral("Method not implemented.", /*isSingleQuote*/ preferences.quotePreference === "single")]))], /*multiline*/ true); } function createVisibilityModifier(flags) { diff --git a/lib/typescript.d.ts b/lib/typescript.d.ts index a7dd2892a238c..83e72bf280009 100644 --- a/lib/typescript.d.ts +++ b/lib/typescript.d.ts @@ -3009,7 +3009,7 @@ declare namespace ts { } interface UserPreferences { readonly disableSuggestions?: boolean; - readonly quotePreference?: "double" | "single"; + readonly quotePreference?: "auto" | "double" | "single"; readonly includeCompletionsForModuleExports?: boolean; readonly includeCompletionsWithInsertText?: boolean; readonly importModuleSpecifierPreference?: "relative" | "non-relative"; diff --git a/lib/typescript.js b/lib/typescript.js index 149e147ccb0b5..bcf37b570fd29 100644 --- a/lib/typescript.js +++ b/lib/typescript.js @@ -75,7 +75,7 @@ var ts; // If changing the text in this section, be sure to test `configureNightly` too. ts.versionMajorMinor = "3.3"; /** The version of the TypeScript compiler release */ - ts.version = ts.versionMajorMinor + ".1"; + ts.version = ts.versionMajorMinor + ".3"; })(ts || (ts = {})); (function (ts) { /* @internal */ @@ -57861,7 +57861,9 @@ var ts; return; } var file = host.getSourceFile(resolvedDirective.resolvedFileName); - fileToDirective.set(file.path, key); + // Add the transitive closure of path references loaded by this file (as long as they are not) + // part of an existing type reference. + addReferencedFilesToTypeDirective(file, key); }); } return { @@ -58016,6 +58018,19 @@ var ts; } return false; } + function addReferencedFilesToTypeDirective(file, key) { + if (fileToDirective.has(file.path)) + return; + fileToDirective.set(file.path, key); + for (var _i = 0, _a = file.referencedFiles; _i < _a.length; _i++) { + var fileName = _a[_i].fileName; + var resolvedFile = ts.resolveTripleslashReference(fileName, file.originalFileName); + var referencedFile = host.getSourceFile(resolvedFile); + if (referencedFile) { + addReferencedFilesToTypeDirective(referencedFile, key); + } + } + } } function getExternalModuleFileFromDeclaration(declaration) { var specifier = declaration.kind === 244 /* ModuleDeclaration */ ? ts.tryCast(declaration.name, ts.isStringLiteral) : ts.getExternalModuleName(declaration); @@ -94763,7 +94778,7 @@ var ts; } ts.quotePreferenceFromString = quotePreferenceFromString; function getQuotePreference(sourceFile, preferences) { - if (preferences.quotePreference) { + if (preferences.quotePreference && preferences.quotePreference !== "auto") { return preferences.quotePreference === "single" ? 0 /* Single */ : 1 /* Double */; } else { @@ -95334,15 +95349,18 @@ var ts; if (/^\d+$/.test(text)) { return text; } + // Editors can pass in undefined or empty string - we want to infer the preference in those cases. + var quotePreference = preferences.quotePreference || "auto"; var quoted = JSON.stringify(text); - switch (preferences.quotePreference) { - case undefined: + switch (quotePreference) { + // TODO use getQuotePreference to infer the actual quote style. + case "auto": case "double": return quoted; case "single": return "'" + stripQuotes(quoted).replace("'", "\\'").replace('\\"', '"') + "'"; default: - return ts.Debug.assertNever(preferences.quotePreference); + return ts.Debug.assertNever(quotePreference); } } ts.quote = quote; @@ -114226,7 +114244,9 @@ var ts; } function createStubbedMethodBody(preferences) { return ts.createBlock([ts.createThrow(ts.createNew(ts.createIdentifier("Error"), - /*typeArguments*/ undefined, [ts.createLiteral("Method not implemented.", /*isSingleQuote*/ preferences.quotePreference === "single")]))], + /*typeArguments*/ undefined, + // TODO Handle auto quote preference. + [ts.createLiteral("Method not implemented.", /*isSingleQuote*/ preferences.quotePreference === "single")]))], /*multiline*/ true); } function createVisibilityModifier(flags) { diff --git a/lib/typescriptServices.d.ts b/lib/typescriptServices.d.ts index 6cf4178c3f1e5..546acda5c3fb6 100644 --- a/lib/typescriptServices.d.ts +++ b/lib/typescriptServices.d.ts @@ -3009,7 +3009,7 @@ declare namespace ts { } interface UserPreferences { readonly disableSuggestions?: boolean; - readonly quotePreference?: "double" | "single"; + readonly quotePreference?: "auto" | "double" | "single"; readonly includeCompletionsForModuleExports?: boolean; readonly includeCompletionsWithInsertText?: boolean; readonly importModuleSpecifierPreference?: "relative" | "non-relative"; diff --git a/lib/typescriptServices.js b/lib/typescriptServices.js index 149e147ccb0b5..bcf37b570fd29 100644 --- a/lib/typescriptServices.js +++ b/lib/typescriptServices.js @@ -75,7 +75,7 @@ var ts; // If changing the text in this section, be sure to test `configureNightly` too. ts.versionMajorMinor = "3.3"; /** The version of the TypeScript compiler release */ - ts.version = ts.versionMajorMinor + ".1"; + ts.version = ts.versionMajorMinor + ".3"; })(ts || (ts = {})); (function (ts) { /* @internal */ @@ -57861,7 +57861,9 @@ var ts; return; } var file = host.getSourceFile(resolvedDirective.resolvedFileName); - fileToDirective.set(file.path, key); + // Add the transitive closure of path references loaded by this file (as long as they are not) + // part of an existing type reference. + addReferencedFilesToTypeDirective(file, key); }); } return { @@ -58016,6 +58018,19 @@ var ts; } return false; } + function addReferencedFilesToTypeDirective(file, key) { + if (fileToDirective.has(file.path)) + return; + fileToDirective.set(file.path, key); + for (var _i = 0, _a = file.referencedFiles; _i < _a.length; _i++) { + var fileName = _a[_i].fileName; + var resolvedFile = ts.resolveTripleslashReference(fileName, file.originalFileName); + var referencedFile = host.getSourceFile(resolvedFile); + if (referencedFile) { + addReferencedFilesToTypeDirective(referencedFile, key); + } + } + } } function getExternalModuleFileFromDeclaration(declaration) { var specifier = declaration.kind === 244 /* ModuleDeclaration */ ? ts.tryCast(declaration.name, ts.isStringLiteral) : ts.getExternalModuleName(declaration); @@ -94763,7 +94778,7 @@ var ts; } ts.quotePreferenceFromString = quotePreferenceFromString; function getQuotePreference(sourceFile, preferences) { - if (preferences.quotePreference) { + if (preferences.quotePreference && preferences.quotePreference !== "auto") { return preferences.quotePreference === "single" ? 0 /* Single */ : 1 /* Double */; } else { @@ -95334,15 +95349,18 @@ var ts; if (/^\d+$/.test(text)) { return text; } + // Editors can pass in undefined or empty string - we want to infer the preference in those cases. + var quotePreference = preferences.quotePreference || "auto"; var quoted = JSON.stringify(text); - switch (preferences.quotePreference) { - case undefined: + switch (quotePreference) { + // TODO use getQuotePreference to infer the actual quote style. + case "auto": case "double": return quoted; case "single": return "'" + stripQuotes(quoted).replace("'", "\\'").replace('\\"', '"') + "'"; default: - return ts.Debug.assertNever(preferences.quotePreference); + return ts.Debug.assertNever(quotePreference); } } ts.quote = quote; @@ -114226,7 +114244,9 @@ var ts; } function createStubbedMethodBody(preferences) { return ts.createBlock([ts.createThrow(ts.createNew(ts.createIdentifier("Error"), - /*typeArguments*/ undefined, [ts.createLiteral("Method not implemented.", /*isSingleQuote*/ preferences.quotePreference === "single")]))], + /*typeArguments*/ undefined, + // TODO Handle auto quote preference. + [ts.createLiteral("Method not implemented.", /*isSingleQuote*/ preferences.quotePreference === "single")]))], /*multiline*/ true); } function createVisibilityModifier(flags) { diff --git a/lib/typingsInstaller.js b/lib/typingsInstaller.js index c4a44409f01d8..6bcd26838398a 100644 --- a/lib/typingsInstaller.js +++ b/lib/typingsInstaller.js @@ -88,7 +88,7 @@ var ts; // If changing the text in this section, be sure to test `configureNightly` too. ts.versionMajorMinor = "3.3"; /** The version of the TypeScript compiler release */ - ts.version = ts.versionMajorMinor + ".1"; + ts.version = ts.versionMajorMinor + ".3"; })(ts || (ts = {})); (function (ts) { /* @internal */ @@ -57874,7 +57874,9 @@ var ts; return; } var file = host.getSourceFile(resolvedDirective.resolvedFileName); - fileToDirective.set(file.path, key); + // Add the transitive closure of path references loaded by this file (as long as they are not) + // part of an existing type reference. + addReferencedFilesToTypeDirective(file, key); }); } return { @@ -58029,6 +58031,19 @@ var ts; } return false; } + function addReferencedFilesToTypeDirective(file, key) { + if (fileToDirective.has(file.path)) + return; + fileToDirective.set(file.path, key); + for (var _i = 0, _a = file.referencedFiles; _i < _a.length; _i++) { + var fileName = _a[_i].fileName; + var resolvedFile = ts.resolveTripleslashReference(fileName, file.originalFileName); + var referencedFile = host.getSourceFile(resolvedFile); + if (referencedFile) { + addReferencedFilesToTypeDirective(referencedFile, key); + } + } + } } function getExternalModuleFileFromDeclaration(declaration) { var specifier = declaration.kind === 244 /* ModuleDeclaration */ ? ts.tryCast(declaration.name, ts.isStringLiteral) : ts.getExternalModuleName(declaration);