mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-10 15:25:54 -06:00
Merge branch 'master' into typedBindCallApply
# Conflicts: # src/compiler/diagnosticMessages.json
This commit is contained in:
commit
9414fbe30b
@ -288,7 +288,7 @@ namespace ts {
|
||||
// module.exports = ...
|
||||
return InternalSymbolName.ExportEquals;
|
||||
case SyntaxKind.BinaryExpression:
|
||||
if (getSpecialPropertyAssignmentKind(node as BinaryExpression) === SpecialPropertyAssignmentKind.ModuleExports) {
|
||||
if (getAssignmentDeclarationKind(node as BinaryExpression) === AssignmentDeclarationKind.ModuleExports) {
|
||||
// module.exports = ...
|
||||
return InternalSymbolName.ExportEquals;
|
||||
}
|
||||
@ -374,8 +374,8 @@ namespace ts {
|
||||
// prototype symbols like methods.
|
||||
symbolTable.set(name, symbol = createSymbol(SymbolFlags.None, name));
|
||||
}
|
||||
else if (!(includes & SymbolFlags.Variable && symbol.flags & SymbolFlags.JSContainer)) {
|
||||
// JSContainers are allowed to merge with variables, no matter what other flags they have.
|
||||
else if (!(includes & SymbolFlags.Variable && symbol.flags & SymbolFlags.Assignment)) {
|
||||
// Assignment declarations are allowed to merge with variables, no matter what other flags they have.
|
||||
if (isNamedDeclaration(node)) {
|
||||
node.name.parent = node;
|
||||
}
|
||||
@ -461,7 +461,7 @@ namespace ts {
|
||||
// during global merging in the checker. Why? The only case when ambient module is permitted inside another module is module augmentation
|
||||
// and this case is specially handled. Module augmentations should only be merged with original module definition
|
||||
// and should never be merged directly with other augmentation, and the latter case would be possible if automatic merge is allowed.
|
||||
if (isJSDocTypeAlias(node)) Debug.assert(isInJavaScriptFile(node)); // We shouldn't add symbols for JSDoc nodes if not in a JS file.
|
||||
if (isJSDocTypeAlias(node)) Debug.assert(isInJSFile(node)); // We shouldn't add symbols for JSDoc nodes if not in a JS file.
|
||||
if ((!isAmbientModule(node) && (hasExportModifier || container.flags & NodeFlags.ExportContext)) || isJSDocTypeAlias(node)) {
|
||||
if (hasModifier(node, ModifierFlags.Default) && !getDeclarationName(node)) {
|
||||
return declareSymbol(container.symbol.exports!, container.symbol, node, symbolFlags, symbolExcludes); // No local symbol for an unnamed default!
|
||||
@ -2009,7 +2009,7 @@ namespace ts {
|
||||
|
||||
function bindJSDoc(node: Node) {
|
||||
if (hasJSDocNodes(node)) {
|
||||
if (isInJavaScriptFile(node)) {
|
||||
if (isInJSFile(node)) {
|
||||
for (const j of node.jsDoc!) {
|
||||
bind(j);
|
||||
}
|
||||
@ -2075,7 +2075,7 @@ namespace ts {
|
||||
if (isSpecialPropertyDeclaration(node as PropertyAccessExpression)) {
|
||||
bindSpecialPropertyDeclaration(node as PropertyAccessExpression);
|
||||
}
|
||||
if (isInJavaScriptFile(node) &&
|
||||
if (isInJSFile(node) &&
|
||||
file.commonJsModuleIndicator &&
|
||||
isModuleExportsPropertyAccessExpression(node as PropertyAccessExpression) &&
|
||||
!lookupSymbolForNameWorker(blockScopeContainer, "module" as __String)) {
|
||||
@ -2084,27 +2084,27 @@ namespace ts {
|
||||
}
|
||||
break;
|
||||
case SyntaxKind.BinaryExpression:
|
||||
const specialKind = getSpecialPropertyAssignmentKind(node as BinaryExpression);
|
||||
const specialKind = getAssignmentDeclarationKind(node as BinaryExpression);
|
||||
switch (specialKind) {
|
||||
case SpecialPropertyAssignmentKind.ExportsProperty:
|
||||
case AssignmentDeclarationKind.ExportsProperty:
|
||||
bindExportsPropertyAssignment(node as BinaryExpression);
|
||||
break;
|
||||
case SpecialPropertyAssignmentKind.ModuleExports:
|
||||
case AssignmentDeclarationKind.ModuleExports:
|
||||
bindModuleExportsAssignment(node as BinaryExpression);
|
||||
break;
|
||||
case SpecialPropertyAssignmentKind.PrototypeProperty:
|
||||
case AssignmentDeclarationKind.PrototypeProperty:
|
||||
bindPrototypePropertyAssignment((node as BinaryExpression).left as PropertyAccessEntityNameExpression, node);
|
||||
break;
|
||||
case SpecialPropertyAssignmentKind.Prototype:
|
||||
case AssignmentDeclarationKind.Prototype:
|
||||
bindPrototypeAssignment(node as BinaryExpression);
|
||||
break;
|
||||
case SpecialPropertyAssignmentKind.ThisProperty:
|
||||
case AssignmentDeclarationKind.ThisProperty:
|
||||
bindThisPropertyAssignment(node as BinaryExpression);
|
||||
break;
|
||||
case SpecialPropertyAssignmentKind.Property:
|
||||
case AssignmentDeclarationKind.Property:
|
||||
bindSpecialPropertyAssignment(node as BinaryExpression);
|
||||
break;
|
||||
case SpecialPropertyAssignmentKind.None:
|
||||
case AssignmentDeclarationKind.None:
|
||||
// Nothing to do
|
||||
break;
|
||||
default:
|
||||
@ -2184,7 +2184,7 @@ namespace ts {
|
||||
return bindFunctionExpression(<FunctionExpression>node);
|
||||
|
||||
case SyntaxKind.CallExpression:
|
||||
if (isInJavaScriptFile(node)) {
|
||||
if (isInJSFile(node)) {
|
||||
bindCallExpression(<CallExpression>node);
|
||||
}
|
||||
break;
|
||||
@ -2361,7 +2361,7 @@ namespace ts {
|
||||
const lhs = node.left as PropertyAccessEntityNameExpression;
|
||||
const symbol = forEachIdentifierInEntityName(lhs.expression, /*parent*/ undefined, (id, symbol) => {
|
||||
if (symbol) {
|
||||
addDeclarationToSymbol(symbol, id, SymbolFlags.Module | SymbolFlags.JSContainer);
|
||||
addDeclarationToSymbol(symbol, id, SymbolFlags.Module | SymbolFlags.Assignment);
|
||||
}
|
||||
return symbol;
|
||||
});
|
||||
@ -2394,7 +2394,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
function bindThisPropertyAssignment(node: BinaryExpression | PropertyAccessExpression) {
|
||||
Debug.assert(isInJavaScriptFile(node));
|
||||
Debug.assert(isInJSFile(node));
|
||||
const thisContainer = getThisContainer(node, /*includeArrowFunctions*/ false);
|
||||
switch (thisContainer.kind) {
|
||||
case SyntaxKind.FunctionDeclaration:
|
||||
@ -2482,7 +2482,7 @@ namespace ts {
|
||||
const lhs = node.left as PropertyAccessEntityNameExpression;
|
||||
// Class declarations in Typescript do not allow property declarations
|
||||
const parentSymbol = lookupSymbolForPropertyAccess(lhs.expression);
|
||||
if (!isInJavaScriptFile(node) && !isFunctionSymbol(parentSymbol)) {
|
||||
if (!isInJSFile(node) && !isFunctionSymbol(parentSymbol)) {
|
||||
return;
|
||||
}
|
||||
// Fix up parent pointers since we're going to use these nodes before we bind into them
|
||||
@ -2515,8 +2515,8 @@ namespace ts {
|
||||
: propertyAccess.parent.parent.kind === SyntaxKind.SourceFile;
|
||||
if (!isPrototypeProperty && (!namespaceSymbol || !(namespaceSymbol.flags & SymbolFlags.Namespace)) && isToplevel) {
|
||||
// make symbols or add declarations for intermediate containers
|
||||
const flags = SymbolFlags.Module | SymbolFlags.JSContainer;
|
||||
const excludeFlags = SymbolFlags.ValueModuleExcludes & ~SymbolFlags.JSContainer;
|
||||
const flags = SymbolFlags.Module | SymbolFlags.Assignment;
|
||||
const excludeFlags = SymbolFlags.ValueModuleExcludes & ~SymbolFlags.Assignment;
|
||||
namespaceSymbol = forEachIdentifierInEntityName(propertyAccess.expression, namespaceSymbol, (id, symbol, parent) => {
|
||||
if (symbol) {
|
||||
addDeclarationToSymbol(symbol, id, flags);
|
||||
@ -2527,7 +2527,7 @@ namespace ts {
|
||||
}
|
||||
});
|
||||
}
|
||||
if (!namespaceSymbol || !isJavascriptContainer(namespaceSymbol)) {
|
||||
if (!namespaceSymbol || !isExpandoSymbol(namespaceSymbol)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2536,14 +2536,14 @@ namespace ts {
|
||||
(namespaceSymbol.members || (namespaceSymbol.members = createSymbolTable())) :
|
||||
(namespaceSymbol.exports || (namespaceSymbol.exports = createSymbolTable()));
|
||||
|
||||
const isMethod = isFunctionLikeDeclaration(getAssignedJavascriptInitializer(propertyAccess)!);
|
||||
const isMethod = isFunctionLikeDeclaration(getAssignedExpandoInitializer(propertyAccess)!);
|
||||
const includes = isMethod ? SymbolFlags.Method : SymbolFlags.Property;
|
||||
const excludes = isMethod ? SymbolFlags.MethodExcludes : SymbolFlags.PropertyExcludes;
|
||||
declareSymbol(symbolTable, namespaceSymbol, propertyAccess, includes | SymbolFlags.JSContainer, excludes & ~SymbolFlags.JSContainer);
|
||||
declareSymbol(symbolTable, namespaceSymbol, propertyAccess, includes | SymbolFlags.Assignment, excludes & ~SymbolFlags.Assignment);
|
||||
}
|
||||
|
||||
/**
|
||||
* Javascript containers are:
|
||||
* Javascript expando values are:
|
||||
* - Functions
|
||||
* - classes
|
||||
* - namespaces
|
||||
@ -2552,7 +2552,7 @@ namespace ts {
|
||||
* - with empty object literals
|
||||
* - with non-empty object literals if assigned to the prototype property
|
||||
*/
|
||||
function isJavascriptContainer(symbol: Symbol): boolean {
|
||||
function isExpandoSymbol(symbol: Symbol): boolean {
|
||||
if (symbol.flags & (SymbolFlags.Function | SymbolFlags.Class | SymbolFlags.NamespaceModule)) {
|
||||
return true;
|
||||
}
|
||||
@ -2565,7 +2565,7 @@ namespace ts {
|
||||
init = init && getRightMostAssignedExpression(init);
|
||||
if (init) {
|
||||
const isPrototypeAssignment = isPrototypeAccess(isVariableDeclaration(node) ? node.name : isBinaryExpression(node) ? node.left : node);
|
||||
return !!getJavascriptInitializer(isBinaryExpression(init) && init.operatorToken.kind === SyntaxKind.BarBarToken ? init.right : init, isPrototypeAssignment);
|
||||
return !!getExpandoInitializer(isBinaryExpression(init) && init.operatorToken.kind === SyntaxKind.BarBarToken ? init.right : init, isPrototypeAssignment);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1851,8 +1851,21 @@ namespace ts {
|
||||
if (hasProperty(raw, "files") && !isNullOrUndefined(raw.files)) {
|
||||
if (isArray(raw.files)) {
|
||||
filesSpecs = <ReadonlyArray<string>>raw.files;
|
||||
if (filesSpecs.length === 0) {
|
||||
createCompilerDiagnosticOnlyIfJson(Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
|
||||
const hasReferences = hasProperty(raw, "references") && !isNullOrUndefined(raw.references);
|
||||
const hasZeroOrNoReferences = !hasReferences || raw.references.length === 0;
|
||||
if (filesSpecs.length === 0 && hasZeroOrNoReferences) {
|
||||
if (sourceFile) {
|
||||
const fileName = configFileName || "tsconfig.json";
|
||||
const diagnosticMessage = Diagnostics.The_files_list_in_config_file_0_is_empty;
|
||||
const nodeValue = firstDefined(getTsConfigPropArray(sourceFile, "files"), property => property.initializer);
|
||||
const error = nodeValue
|
||||
? createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
|
||||
: createCompilerDiagnostic(diagnosticMessage, fileName);
|
||||
errors.push(error);
|
||||
}
|
||||
else {
|
||||
createCompilerDiagnosticOnlyIfJson(Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -2075,11 +2088,6 @@ namespace ts {
|
||||
createDiagnosticForNodeInSourceFile(sourceFile, valueNode, message, arg0)
|
||||
);
|
||||
return;
|
||||
case "files":
|
||||
if ((<ReadonlyArray<string>>value).length === 0) {
|
||||
errors.push(createDiagnosticForNodeInSourceFile(sourceFile, valueNode, Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
},
|
||||
onSetUnknownOptionKeyValueInRoot(key: string, keyNode: PropertyName, _value: CompilerOptionsValue, _valueNode: Expression) {
|
||||
@ -2089,6 +2097,7 @@ namespace ts {
|
||||
}
|
||||
};
|
||||
const json = convertToObjectWorker(sourceFile, errors, /*returnValue*/ true, getTsconfigRootOptionsMap(), optionsIterator);
|
||||
|
||||
if (!typeAcquisition) {
|
||||
if (typingOptionstypeAcquisition) {
|
||||
typeAcquisition = (typingOptionstypeAcquisition.enableAutoDiscovery !== undefined) ?
|
||||
|
||||
@ -2088,6 +2088,30 @@
|
||||
"category": "Error",
|
||||
"code": 2577
|
||||
},
|
||||
"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i @types/node`.": {
|
||||
"category": "Error",
|
||||
"code": 2580
|
||||
},
|
||||
"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i @types/jquery`.": {
|
||||
"category": "Error",
|
||||
"code": 2581
|
||||
},
|
||||
"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.": {
|
||||
"category": "Error",
|
||||
"code": 2582
|
||||
},
|
||||
"Cannot find name '{0}'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.": {
|
||||
"category": "Error",
|
||||
"code": 2583
|
||||
},
|
||||
"Cannot find name '{0}'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'.": {
|
||||
"category": "Error",
|
||||
"code": 2584
|
||||
},
|
||||
"'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.": {
|
||||
"category": "Error",
|
||||
"code": 2585
|
||||
},
|
||||
"JSX element attributes type '{0}' may not be a union type.": {
|
||||
"category": "Error",
|
||||
"code": 2600
|
||||
@ -2457,6 +2481,10 @@
|
||||
"category": "Error",
|
||||
"code": 2733
|
||||
},
|
||||
"It is highly likely that you are missing a semicolon.": {
|
||||
"category": "Error",
|
||||
"code": 2734
|
||||
},
|
||||
|
||||
"Import declaration '{0}' is using private name '{1}'.": {
|
||||
"category": "Error",
|
||||
@ -3716,10 +3744,18 @@
|
||||
"category": "Message",
|
||||
"code": 6211
|
||||
},
|
||||
"Enable strict 'bind', 'call', and 'apply' methods on functions.": {
|
||||
"Did you mean to call this expression?": {
|
||||
"category": "Message",
|
||||
"code": 6212
|
||||
},
|
||||
"Did you mean to use `new` with this expression?": {
|
||||
"category": "Message",
|
||||
"code": 6213
|
||||
},
|
||||
"Enable strict 'bind', 'call', and 'apply' methods on functions.": {
|
||||
"category": "Message",
|
||||
"code": 6214
|
||||
},
|
||||
|
||||
"Projects to reference": {
|
||||
"category": "Message",
|
||||
|
||||
@ -52,7 +52,7 @@ namespace ts {
|
||||
const jsFilePath = getOwnEmitOutputFilePath(sourceFile.fileName, host, getOutputExtension(sourceFile, options));
|
||||
const sourceMapFilePath = isJsonSourceFile(sourceFile) ? undefined : getSourceMapFilePath(jsFilePath, options);
|
||||
// For legacy reasons (ie, we have baselines capturing the behavior), js files don't report a .d.ts output path - this would only matter if `declaration` and `allowJs` were both on, which is currently an error
|
||||
const isJs = isSourceFileJavaScript(sourceFile);
|
||||
const isJs = isSourceFileJS(sourceFile);
|
||||
const declarationFilePath = ((forceDtsPaths || getEmitDeclarations(options)) && !isJs) ? getDeclarationEmitOutputFilePath(sourceFile.fileName, host) : undefined;
|
||||
const declarationMapPath = getAreDeclarationMapsEnabled(options) ? declarationFilePath + ".map" : undefined;
|
||||
return { jsFilePath, sourceMapFilePath, declarationFilePath, declarationMapPath, bundleInfoPath: undefined };
|
||||
@ -80,7 +80,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
if (options.jsx === JsxEmit.Preserve) {
|
||||
if (isSourceFileJavaScript(sourceFile)) {
|
||||
if (isSourceFileJS(sourceFile)) {
|
||||
if (fileExtensionIs(sourceFile.fileName, Extension.Jsx)) {
|
||||
return Extension.Jsx;
|
||||
}
|
||||
@ -187,12 +187,12 @@ namespace ts {
|
||||
}
|
||||
|
||||
function emitDeclarationFileOrBundle(sourceFileOrBundle: SourceFile | Bundle, declarationFilePath: string | undefined, declarationMapPath: string | undefined) {
|
||||
if (!(declarationFilePath && !isInJavaScriptFile(sourceFileOrBundle))) {
|
||||
if (!(declarationFilePath && !isInJSFile(sourceFileOrBundle))) {
|
||||
return;
|
||||
}
|
||||
const sourceFiles = isSourceFile(sourceFileOrBundle) ? [sourceFileOrBundle] : sourceFileOrBundle.sourceFiles;
|
||||
// Setup and perform the transformation to retrieve declarations from the input files
|
||||
const nonJsFiles = filter(sourceFiles, isSourceFileNotJavaScript);
|
||||
const nonJsFiles = filter(sourceFiles, isSourceFileNotJavascript);
|
||||
const inputListOrBundle = (compilerOptions.outFile || compilerOptions.out) ? [createBundle(nonJsFiles, !isSourceFile(sourceFileOrBundle) ? sourceFileOrBundle.prepends : undefined)] : nonJsFiles;
|
||||
if (emitOnlyDtsFiles && !getEmitDeclarations(compilerOptions)) {
|
||||
// Checker wont collect the linked aliases since thats only done when declaration is enabled.
|
||||
|
||||
@ -778,7 +778,7 @@ namespace ts {
|
||||
* Throws an error if the module can't be resolved.
|
||||
*/
|
||||
/* @internal */
|
||||
export function resolveJavaScriptModule(moduleName: string, initialDir: string, host: ModuleResolutionHost): string {
|
||||
export function resolveJavascriptModule(moduleName: string, initialDir: string, host: ModuleResolutionHost): string {
|
||||
const { resolvedModule, failedLookupLocations } =
|
||||
nodeModuleNameResolverWorker(moduleName, initialDir, { moduleResolution: ModuleResolutionKind.NodeJs, allowJs: true }, host, /*cache*/ undefined, /*jsOnly*/ true);
|
||||
if (!resolvedModule) {
|
||||
@ -958,7 +958,7 @@ namespace ts {
|
||||
|
||||
// If that didn't work, try stripping a ".js" or ".jsx" extension and replacing it with a TypeScript one;
|
||||
// e.g. "./foo.js" can be matched by "./foo.ts" or "./foo.d.ts"
|
||||
if (hasJavaScriptFileExtension(candidate)) {
|
||||
if (hasJavascriptFileExtension(candidate)) {
|
||||
const extensionless = removeFileExtension(candidate);
|
||||
if (state.traceEnabled) {
|
||||
const extension = candidate.substring(extensionless.length);
|
||||
|
||||
@ -30,7 +30,7 @@ namespace ts.moduleSpecifiers {
|
||||
function getPreferencesForUpdate(compilerOptions: CompilerOptions, oldImportSpecifier: string): Preferences {
|
||||
return {
|
||||
relativePreference: isExternalModuleNameRelative(oldImportSpecifier) ? RelativePreference.Relative : RelativePreference.NonRelative,
|
||||
ending: hasJavaScriptOrJsonFileExtension(oldImportSpecifier) ? Ending.JsExtension
|
||||
ending: hasJavascriptOrJsonFileExtension(oldImportSpecifier) ? Ending.JsExtension
|
||||
: getEmitModuleResolutionKind(compilerOptions) !== ModuleResolutionKind.NodeJs || endsWith(oldImportSpecifier, "index") ? Ending.Index : Ending.Minimal,
|
||||
};
|
||||
}
|
||||
@ -148,7 +148,7 @@ namespace ts.moduleSpecifiers {
|
||||
}
|
||||
|
||||
function usesJsExtensionOnImports({ imports }: SourceFile): boolean {
|
||||
return firstDefined(imports, ({ text }) => pathIsRelative(text) ? hasJavaScriptOrJsonFileExtension(text) : undefined) || false;
|
||||
return firstDefined(imports, ({ text }) => pathIsRelative(text) ? hasJavascriptOrJsonFileExtension(text) : undefined) || false;
|
||||
}
|
||||
|
||||
function stringsEqual(a: string, b: string, getCanonicalFileName: GetCanonicalFileName): boolean {
|
||||
@ -415,13 +415,13 @@ namespace ts.moduleSpecifiers {
|
||||
case Ending.Index:
|
||||
return noExtension;
|
||||
case Ending.JsExtension:
|
||||
return noExtension + getJavaScriptExtensionForFile(fileName, options);
|
||||
return noExtension + getJavascriptExtensionForFile(fileName, options);
|
||||
default:
|
||||
return Debug.assertNever(ending);
|
||||
}
|
||||
}
|
||||
|
||||
function getJavaScriptExtensionForFile(fileName: string, options: CompilerOptions): Extension {
|
||||
function getJavascriptExtensionForFile(fileName: string, options: CompilerOptions): Extension {
|
||||
const ext = extensionFromPath(fileName);
|
||||
switch (ext) {
|
||||
case Extension.Ts:
|
||||
|
||||
@ -250,7 +250,7 @@ namespace ts {
|
||||
Blue = "\u001b[94m",
|
||||
Cyan = "\u001b[96m"
|
||||
}
|
||||
const gutterStyleSequence = "\u001b[30;47m";
|
||||
const gutterStyleSequence = "\u001b[7m";
|
||||
const gutterSeparator = " ";
|
||||
const resetEscapeSequence = "\u001b[0m";
|
||||
const ellipsis = "...";
|
||||
@ -1438,9 +1438,9 @@ namespace ts {
|
||||
function getSyntacticDiagnosticsForFile(sourceFile: SourceFile): ReadonlyArray<DiagnosticWithLocation> {
|
||||
// For JavaScript files, we report semantic errors for using TypeScript-only
|
||||
// constructs from within a JavaScript file as syntactic errors.
|
||||
if (isSourceFileJavaScript(sourceFile)) {
|
||||
if (isSourceFileJS(sourceFile)) {
|
||||
if (!sourceFile.additionalSyntacticDiagnostics) {
|
||||
sourceFile.additionalSyntacticDiagnostics = getJavaScriptSyntacticDiagnosticsForFile(sourceFile);
|
||||
sourceFile.additionalSyntacticDiagnostics = getJavascriptSyntacticDiagnosticsForFile(sourceFile);
|
||||
}
|
||||
return concatenate(sourceFile.additionalSyntacticDiagnostics, sourceFile.parseDiagnostics);
|
||||
}
|
||||
@ -1538,7 +1538,7 @@ namespace ts {
|
||||
return true;
|
||||
}
|
||||
|
||||
function getJavaScriptSyntacticDiagnosticsForFile(sourceFile: SourceFile): DiagnosticWithLocation[] {
|
||||
function getJavascriptSyntacticDiagnosticsForFile(sourceFile: SourceFile): DiagnosticWithLocation[] {
|
||||
return runWithCancellationToken(() => {
|
||||
const diagnostics: DiagnosticWithLocation[] = [];
|
||||
let parent: Node = sourceFile;
|
||||
@ -1801,7 +1801,7 @@ namespace ts {
|
||||
return;
|
||||
}
|
||||
|
||||
const isJavaScriptFile = isSourceFileJavaScript(file);
|
||||
const isJavaScriptFile = isSourceFileJS(file);
|
||||
const isExternalModuleFile = isExternalModule(file);
|
||||
|
||||
// file.imports may not be undefined if there exists dynamic import
|
||||
@ -2295,7 +2295,7 @@ namespace ts {
|
||||
&& i < file.imports.length
|
||||
&& !elideImport
|
||||
&& !(isJsFile && !options.allowJs)
|
||||
&& (isInJavaScriptFile(file.imports[i]) || !(file.imports[i].flags & NodeFlags.JSDoc));
|
||||
&& (isInJSFile(file.imports[i]) || !(file.imports[i].flags & NodeFlags.JSDoc));
|
||||
|
||||
if (elideImport) {
|
||||
modulesWithElidedImports.set(file.path, true);
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
/*@internal*/
|
||||
namespace ts {
|
||||
export function getDeclarationDiagnostics(host: EmitHost, resolver: EmitResolver, file: SourceFile | undefined): DiagnosticWithLocation[] | undefined {
|
||||
if (file && isSourceFileJavaScript(file)) {
|
||||
if (file && isSourceFileJS(file)) {
|
||||
return []; // No declaration diagnostics for js for now
|
||||
}
|
||||
const compilerOptions = host.getCompilerOptions();
|
||||
const result = transformNodes(resolver, host, compilerOptions, file ? [file] : filter(host.getSourceFiles(), isSourceFileNotJavaScript), [transformDeclarations], /*allowDtsFiles*/ false);
|
||||
const result = transformNodes(resolver, host, compilerOptions, file ? [file] : filter(host.getSourceFiles(), isSourceFileNotJavascript), [transformDeclarations], /*allowDtsFiles*/ false);
|
||||
return result.diagnostics;
|
||||
}
|
||||
|
||||
@ -157,7 +157,7 @@ namespace ts {
|
||||
function transformRoot(node: SourceFile): SourceFile;
|
||||
function transformRoot(node: SourceFile | Bundle): SourceFile | Bundle;
|
||||
function transformRoot(node: SourceFile | Bundle) {
|
||||
if (node.kind === SyntaxKind.SourceFile && (node.isDeclarationFile || isSourceFileJavaScript(node))) {
|
||||
if (node.kind === SyntaxKind.SourceFile && (node.isDeclarationFile || isSourceFileJS(node))) {
|
||||
return node;
|
||||
}
|
||||
|
||||
@ -168,7 +168,7 @@ namespace ts {
|
||||
let hasNoDefaultLib = false;
|
||||
const bundle = createBundle(map(node.sourceFiles,
|
||||
sourceFile => {
|
||||
if (sourceFile.isDeclarationFile || isSourceFileJavaScript(sourceFile)) return undefined!; // Omit declaration files from bundle results, too // TODO: GH#18217
|
||||
if (sourceFile.isDeclarationFile || isSourceFileJS(sourceFile)) return undefined!; // Omit declaration files from bundle results, too // TODO: GH#18217
|
||||
hasNoDefaultLib = hasNoDefaultLib || sourceFile.hasNoDefaultLib;
|
||||
currentSourceFile = sourceFile;
|
||||
enclosingDeclaration = sourceFile;
|
||||
@ -303,7 +303,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
function collectReferences(sourceFile: SourceFile, ret: Map<SourceFile>) {
|
||||
if (noResolve || isSourceFileJavaScript(sourceFile)) return ret;
|
||||
if (noResolve || isSourceFileJS(sourceFile)) return ret;
|
||||
forEach(sourceFile.referencedFiles, f => {
|
||||
const elem = tryResolveScriptReference(host, sourceFile, f);
|
||||
if (elem) {
|
||||
@ -989,7 +989,7 @@ namespace ts {
|
||||
ensureType(input, input.type),
|
||||
/*body*/ undefined
|
||||
));
|
||||
if (clean && resolver.isJSContainerFunctionDeclaration(input)) {
|
||||
if (clean && resolver.isExpandoFunctionDeclaration(input)) {
|
||||
const declarations = mapDefined(resolver.getPropertiesOfContainerFunction(input), p => {
|
||||
if (!isPropertyAccessExpression(p.valueDeclaration)) {
|
||||
return undefined;
|
||||
|
||||
@ -302,7 +302,7 @@ namespace ts {
|
||||
return changeExtension(outputPath, Extension.Dts);
|
||||
}
|
||||
|
||||
function getOutputJavaScriptFileName(inputFileName: string, configFile: ParsedCommandLine) {
|
||||
function getOutputJavascriptFileName(inputFileName: string, configFile: ParsedCommandLine) {
|
||||
const relativePath = getRelativePathFromDirectory(rootDirOfOptions(configFile.options, configFile.options.configFilePath!), inputFileName, /*ignoreCase*/ true);
|
||||
const outputPath = resolvePath(configFile.options.outDir || getDirectoryPath(configFile.options.configFilePath!), relativePath);
|
||||
const newExtension = fileExtensionIs(inputFileName, Extension.Json) ? Extension.Json :
|
||||
@ -317,7 +317,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
const outputs: string[] = [];
|
||||
const js = getOutputJavaScriptFileName(inputFileName, configFile);
|
||||
const js = getOutputJavascriptFileName(inputFileName, configFile);
|
||||
outputs.push(js);
|
||||
if (configFile.options.sourceMap) {
|
||||
outputs.push(`${js}.map`);
|
||||
@ -946,7 +946,6 @@ namespace ts {
|
||||
context.projectStatus.setValue(proj, { type: UpToDateStatusType.Unbuildable, reason: "Config file errors" });
|
||||
return resultFlags;
|
||||
}
|
||||
|
||||
if (configFile.fileNames.length === 0) {
|
||||
// Nothing to build - must be a solution file, basically
|
||||
return BuildResultFlags.None;
|
||||
@ -956,7 +955,8 @@ namespace ts {
|
||||
projectReferences: configFile.projectReferences,
|
||||
host,
|
||||
rootNames: configFile.fileNames,
|
||||
options: configFile.options
|
||||
options: configFile.options,
|
||||
configFileParsingDiagnostics: configFile.errors,
|
||||
};
|
||||
const program = createProgram(programOptions);
|
||||
|
||||
@ -1149,7 +1149,6 @@ namespace ts {
|
||||
|
||||
const queue = graph.buildQueue;
|
||||
reportBuildQueue(graph);
|
||||
|
||||
let anyFailed = false;
|
||||
for (const next of queue) {
|
||||
const proj = configFileCache.parseConfigFile(next);
|
||||
@ -1157,11 +1156,15 @@ namespace ts {
|
||||
anyFailed = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// report errors early when using continue or break statements
|
||||
const errors = proj.errors;
|
||||
const status = getUpToDateStatus(proj);
|
||||
verboseReportProjectStatus(next, status);
|
||||
|
||||
const projName = proj.options.configFilePath!;
|
||||
if (status.type === UpToDateStatusType.UpToDate && !context.options.force) {
|
||||
reportErrors(errors);
|
||||
// Up to date, skip
|
||||
if (defaultOptions.dry) {
|
||||
// In a dry build, inform the user of this fact
|
||||
@ -1171,17 +1174,20 @@ namespace ts {
|
||||
}
|
||||
|
||||
if (status.type === UpToDateStatusType.UpToDateWithUpstreamTypes && !context.options.force) {
|
||||
reportErrors(errors);
|
||||
// Fake build
|
||||
updateOutputTimestamps(proj);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (status.type === UpToDateStatusType.UpstreamBlocked) {
|
||||
reportErrors(errors);
|
||||
if (context.options.verbose) reportStatus(Diagnostics.Skipping_build_of_project_0_because_its_dependency_1_has_errors, projName, status.upstreamProjectName);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (status.type === UpToDateStatusType.ContainerOnly) {
|
||||
reportErrors(errors);
|
||||
// Do nothing
|
||||
continue;
|
||||
}
|
||||
@ -1193,6 +1199,10 @@ namespace ts {
|
||||
return anyFailed ? ExitStatus.DiagnosticsPresent_OutputsSkipped : ExitStatus.Success;
|
||||
}
|
||||
|
||||
function reportErrors(errors: Diagnostic[]) {
|
||||
errors.forEach((err) => host.reportDiagnostic(err));
|
||||
}
|
||||
|
||||
/**
|
||||
* Report the build ordering inferred from the current project graph if we're in verbose mode
|
||||
*/
|
||||
|
||||
@ -3383,7 +3383,7 @@ namespace ts {
|
||||
isImplementationOfOverload(node: FunctionLike): boolean | undefined;
|
||||
isRequiredInitializedParameter(node: ParameterDeclaration): boolean;
|
||||
isOptionalUninitializedParameterProperty(node: ParameterDeclaration): boolean;
|
||||
isJSContainerFunctionDeclaration(node: FunctionDeclaration): boolean;
|
||||
isExpandoFunctionDeclaration(node: FunctionDeclaration): boolean;
|
||||
getPropertiesOfContainerFunction(node: Declaration): Symbol[];
|
||||
createTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration | PropertyAccessExpression, enclosingDeclaration: Node, flags: NodeBuilderFlags, tracker: SymbolTracker, addUndefined?: boolean): TypeNode | undefined;
|
||||
createReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: NodeBuilderFlags, tracker: SymbolTracker): TypeNode | undefined;
|
||||
@ -3435,7 +3435,7 @@ namespace ts {
|
||||
ExportStar = 1 << 23, // Export * declaration
|
||||
Optional = 1 << 24, // Optional property
|
||||
Transient = 1 << 25, // Transient symbol (created during type check)
|
||||
JSContainer = 1 << 26, // Contains Javascript special declarations
|
||||
Assignment = 1 << 26, // Assignment treated as declaration (eg `this.prop = 1`)
|
||||
ModuleExports = 1 << 27, // Symbol for CommonJS `module` of `module.exports`
|
||||
|
||||
/* @internal */
|
||||
@ -3444,8 +3444,8 @@ namespace ts {
|
||||
|
||||
Enum = RegularEnum | ConstEnum,
|
||||
Variable = FunctionScopedVariable | BlockScopedVariable,
|
||||
Value = Variable | Property | EnumMember | ObjectLiteral | Function | Class | Enum | ValueModule | Method | GetAccessor | SetAccessor | JSContainer,
|
||||
Type = Class | Interface | Enum | EnumMember | TypeLiteral | TypeParameter | TypeAlias | JSContainer,
|
||||
Value = Variable | Property | EnumMember | ObjectLiteral | Function | Class | Enum | ValueModule | Method | GetAccessor | SetAccessor | Assignment,
|
||||
Type = Class | Interface | Enum | EnumMember | TypeLiteral | TypeParameter | TypeAlias | Assignment,
|
||||
Namespace = ValueModule | NamespaceModule | Enum,
|
||||
Module = ValueModule | NamespaceModule,
|
||||
Accessor = GetAccessor | SetAccessor,
|
||||
@ -3466,7 +3466,7 @@ namespace ts {
|
||||
InterfaceExcludes = Type & ~(Interface | Class),
|
||||
RegularEnumExcludes = (Value | Type) & ~(RegularEnum | ValueModule), // regular enums merge only with regular enums and modules
|
||||
ConstEnumExcludes = (Value | Type) & ~ConstEnum, // const enums merge only with const enums
|
||||
ValueModuleExcludes = Value & ~(Function | Class | RegularEnum | ValueModule | JSContainer),
|
||||
ValueModuleExcludes = Value & ~(Function | Class | RegularEnum | ValueModule | Assignment),
|
||||
NamespaceModuleExcludes = 0,
|
||||
MethodExcludes = Value & ~Method,
|
||||
GetAccessorExcludes = Value & ~SetAccessor,
|
||||
@ -4219,7 +4219,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
/* @internal */
|
||||
export const enum SpecialPropertyAssignmentKind {
|
||||
export const enum AssignmentDeclarationKind {
|
||||
None,
|
||||
/// exports.name = expr
|
||||
ExportsProperty,
|
||||
|
||||
@ -1678,15 +1678,15 @@ namespace ts {
|
||||
return node.kind === SyntaxKind.ImportEqualsDeclaration && (<ImportEqualsDeclaration>node).moduleReference.kind !== SyntaxKind.ExternalModuleReference;
|
||||
}
|
||||
|
||||
export function isSourceFileJavaScript(file: SourceFile): boolean {
|
||||
return isInJavaScriptFile(file);
|
||||
export function isSourceFileJS(file: SourceFile): boolean {
|
||||
return isInJSFile(file);
|
||||
}
|
||||
|
||||
export function isSourceFileNotJavaScript(file: SourceFile): boolean {
|
||||
return !isInJavaScriptFile(file);
|
||||
export function isSourceFileNotJavascript(file: SourceFile): boolean {
|
||||
return !isInJSFile(file);
|
||||
}
|
||||
|
||||
export function isInJavaScriptFile(node: Node | undefined): boolean {
|
||||
export function isInJSFile(node: Node | undefined): boolean {
|
||||
return !!node && !!(node.flags & NodeFlags.JavaScriptFile);
|
||||
}
|
||||
|
||||
@ -1738,14 +1738,14 @@ namespace ts {
|
||||
return getSourceTextOfNodeFromSourceFile(sourceFile, str).charCodeAt(0) === CharacterCodes.doubleQuote;
|
||||
}
|
||||
|
||||
export function getDeclarationOfJSInitializer(node: Node): Node | undefined {
|
||||
export function getDeclarationOfExpando(node: Node): Node | undefined {
|
||||
if (!node.parent) {
|
||||
return undefined;
|
||||
}
|
||||
let name: Expression | BindingName | undefined;
|
||||
let decl: Node | undefined;
|
||||
if (isVariableDeclaration(node.parent) && node.parent.initializer === node) {
|
||||
if (!isInJavaScriptFile(node) && !isVarConst(node.parent)) {
|
||||
if (!isInJSFile(node) && !isVarConst(node.parent)) {
|
||||
return undefined;
|
||||
}
|
||||
name = node.parent.name;
|
||||
@ -1770,7 +1770,7 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
|
||||
if (!name || !getJavascriptInitializer(node, isPrototypeAccess(name))) {
|
||||
if (!name || !getExpandoInitializer(node, isPrototypeAccess(name))) {
|
||||
return undefined;
|
||||
}
|
||||
return decl;
|
||||
@ -1782,7 +1782,7 @@ namespace ts {
|
||||
|
||||
/** Get the initializer, taking into account defaulted Javascript initializers */
|
||||
export function getEffectiveInitializer(node: HasExpressionInitializer) {
|
||||
if (isInJavaScriptFile(node) && node.initializer &&
|
||||
if (isInJSFile(node) && node.initializer &&
|
||||
isBinaryExpression(node.initializer) && node.initializer.operatorToken.kind === SyntaxKind.BarBarToken &&
|
||||
node.name && isEntityNameExpression(node.name) && isSameEntityName(node.name, node.initializer.left)) {
|
||||
return node.initializer.right;
|
||||
@ -1790,26 +1790,26 @@ namespace ts {
|
||||
return node.initializer;
|
||||
}
|
||||
|
||||
/** Get the declaration initializer when it is container-like (See getJavascriptInitializer). */
|
||||
export function getDeclaredJavascriptInitializer(node: HasExpressionInitializer) {
|
||||
/** Get the declaration initializer when it is container-like (See getExpandoInitializer). */
|
||||
export function getDeclaredExpandoInitializer(node: HasExpressionInitializer) {
|
||||
const init = getEffectiveInitializer(node);
|
||||
return init && getJavascriptInitializer(init, isPrototypeAccess(node.name));
|
||||
return init && getExpandoInitializer(init, isPrototypeAccess(node.name));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the assignment 'initializer' -- the righthand side-- when the initializer is container-like (See getJavascriptInitializer).
|
||||
* Get the assignment 'initializer' -- the righthand side-- when the initializer is container-like (See getExpandoInitializer).
|
||||
* We treat the right hand side of assignments with container-like initalizers as declarations.
|
||||
*/
|
||||
export function getAssignedJavascriptInitializer(node: Node) {
|
||||
export function getAssignedExpandoInitializer(node: Node) {
|
||||
if (node && node.parent && isBinaryExpression(node.parent) && node.parent.operatorToken.kind === SyntaxKind.EqualsToken) {
|
||||
const isPrototypeAssignment = isPrototypeAccess(node.parent.left);
|
||||
return getJavascriptInitializer(node.parent.right, isPrototypeAssignment) ||
|
||||
getDefaultedJavascriptInitializer(node.parent.left as EntityNameExpression, node.parent.right, isPrototypeAssignment);
|
||||
return getExpandoInitializer(node.parent.right, isPrototypeAssignment) ||
|
||||
getDefaultedExpandoInitializer(node.parent.left as EntityNameExpression, node.parent.right, isPrototypeAssignment);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Recognized Javascript container-like initializers are:
|
||||
* Recognized expando initializers are:
|
||||
* 1. (function() {})() -- IIFEs
|
||||
* 2. function() { } -- Function expressions
|
||||
* 3. class { } -- Class expressions
|
||||
@ -1818,7 +1818,7 @@ namespace ts {
|
||||
*
|
||||
* This function returns the provided initializer, or undefined if it is not valid.
|
||||
*/
|
||||
export function getJavascriptInitializer(initializer: Node, isPrototypeAssignment: boolean): Expression | undefined {
|
||||
export function getExpandoInitializer(initializer: Node, isPrototypeAssignment: boolean): Expression | undefined {
|
||||
if (isCallExpression(initializer)) {
|
||||
const e = skipParentheses(initializer.expression);
|
||||
return e.kind === SyntaxKind.FunctionExpression || e.kind === SyntaxKind.ArrowFunction ? initializer : undefined;
|
||||
@ -1834,29 +1834,29 @@ namespace ts {
|
||||
}
|
||||
|
||||
/**
|
||||
* A defaulted Javascript initializer matches the pattern
|
||||
* `Lhs = Lhs || JavascriptInitializer`
|
||||
* or `var Lhs = Lhs || JavascriptInitializer`
|
||||
* A defaulted expando initializer matches the pattern
|
||||
* `Lhs = Lhs || ExpandoInitializer`
|
||||
* or `var Lhs = Lhs || ExpandoInitializer`
|
||||
*
|
||||
* The second Lhs is required to be the same as the first except that it may be prefixed with
|
||||
* 'window.', 'global.' or 'self.' The second Lhs is otherwise ignored by the binder and checker.
|
||||
*/
|
||||
function getDefaultedJavascriptInitializer(name: EntityNameExpression, initializer: Expression, isPrototypeAssignment: boolean) {
|
||||
const e = isBinaryExpression(initializer) && initializer.operatorToken.kind === SyntaxKind.BarBarToken && getJavascriptInitializer(initializer.right, isPrototypeAssignment);
|
||||
function getDefaultedExpandoInitializer(name: EntityNameExpression, initializer: Expression, isPrototypeAssignment: boolean) {
|
||||
const e = isBinaryExpression(initializer) && initializer.operatorToken.kind === SyntaxKind.BarBarToken && getExpandoInitializer(initializer.right, isPrototypeAssignment);
|
||||
if (e && isSameEntityName(name, (initializer as BinaryExpression).left as EntityNameExpression)) {
|
||||
return e;
|
||||
}
|
||||
}
|
||||
|
||||
export function isDefaultedJavascriptInitializer(node: BinaryExpression) {
|
||||
export function isDefaultedExpandoInitializer(node: BinaryExpression) {
|
||||
const name = isVariableDeclaration(node.parent) ? node.parent.name :
|
||||
isBinaryExpression(node.parent) && node.parent.operatorToken.kind === SyntaxKind.EqualsToken ? node.parent.left :
|
||||
undefined;
|
||||
return name && getJavascriptInitializer(node.right, isPrototypeAccess(name)) && isEntityNameExpression(name) && isSameEntityName(name, node.left);
|
||||
return name && getExpandoInitializer(node.right, isPrototypeAccess(name)) && isEntityNameExpression(name) && isSameEntityName(name, node.left);
|
||||
}
|
||||
|
||||
/** Given a Javascript initializer, return the outer name. That is, the lhs of the assignment or the declaration name. */
|
||||
export function getOuterNameOfJsInitializer(node: Declaration): DeclarationName | undefined {
|
||||
/** Given an expando initializer, return its declaration name, or the left-hand side of the assignment if it's part of an assignment declaration. */
|
||||
export function getNameOfExpando(node: Declaration): DeclarationName | undefined {
|
||||
if (isBinaryExpression(node.parent)) {
|
||||
const parent = (node.parent.operatorToken.kind === SyntaxKind.BarBarToken && isBinaryExpression(node.parent.parent)) ? node.parent.parent : node.parent;
|
||||
if (parent.operatorToken.kind === SyntaxKind.EqualsToken && isIdentifier(parent.left)) {
|
||||
@ -1912,36 +1912,36 @@ namespace ts {
|
||||
|
||||
/// Given a BinaryExpression, returns SpecialPropertyAssignmentKind for the various kinds of property
|
||||
/// assignments we treat as special in the binder
|
||||
export function getSpecialPropertyAssignmentKind(expr: BinaryExpression): SpecialPropertyAssignmentKind {
|
||||
const special = getSpecialPropertyAssignmentKindWorker(expr);
|
||||
return special === SpecialPropertyAssignmentKind.Property || isInJavaScriptFile(expr) ? special : SpecialPropertyAssignmentKind.None;
|
||||
export function getAssignmentDeclarationKind(expr: BinaryExpression): AssignmentDeclarationKind {
|
||||
const special = getAssignmentDeclarationKindWorker(expr);
|
||||
return special === AssignmentDeclarationKind.Property || isInJSFile(expr) ? special : AssignmentDeclarationKind.None;
|
||||
}
|
||||
|
||||
function getSpecialPropertyAssignmentKindWorker(expr: BinaryExpression): SpecialPropertyAssignmentKind {
|
||||
function getAssignmentDeclarationKindWorker(expr: BinaryExpression): AssignmentDeclarationKind {
|
||||
if (expr.operatorToken.kind !== SyntaxKind.EqualsToken ||
|
||||
!isPropertyAccessExpression(expr.left)) {
|
||||
return SpecialPropertyAssignmentKind.None;
|
||||
return AssignmentDeclarationKind.None;
|
||||
}
|
||||
const lhs = expr.left;
|
||||
if (isEntityNameExpression(lhs.expression) && lhs.name.escapedText === "prototype" && isObjectLiteralExpression(getInitializerOfBinaryExpression(expr))) {
|
||||
// F.prototype = { ... }
|
||||
return SpecialPropertyAssignmentKind.Prototype;
|
||||
return AssignmentDeclarationKind.Prototype;
|
||||
}
|
||||
return getSpecialPropertyAccessKind(lhs);
|
||||
return getAssignmentDeclarationPropertyAccessKind(lhs);
|
||||
}
|
||||
|
||||
export function getSpecialPropertyAccessKind(lhs: PropertyAccessExpression): SpecialPropertyAssignmentKind {
|
||||
export function getAssignmentDeclarationPropertyAccessKind(lhs: PropertyAccessExpression): AssignmentDeclarationKind {
|
||||
if (lhs.expression.kind === SyntaxKind.ThisKeyword) {
|
||||
return SpecialPropertyAssignmentKind.ThisProperty;
|
||||
return AssignmentDeclarationKind.ThisProperty;
|
||||
}
|
||||
else if (isIdentifier(lhs.expression) && lhs.expression.escapedText === "module" && lhs.name.escapedText === "exports") {
|
||||
// module.exports = expr
|
||||
return SpecialPropertyAssignmentKind.ModuleExports;
|
||||
return AssignmentDeclarationKind.ModuleExports;
|
||||
}
|
||||
else if (isEntityNameExpression(lhs.expression)) {
|
||||
if (isPrototypeAccess(lhs.expression)) {
|
||||
// F.G....prototype.x = expr
|
||||
return SpecialPropertyAssignmentKind.PrototypeProperty;
|
||||
return AssignmentDeclarationKind.PrototypeProperty;
|
||||
}
|
||||
|
||||
let nextToLast = lhs;
|
||||
@ -1953,13 +1953,13 @@ namespace ts {
|
||||
if (id.escapedText === "exports" ||
|
||||
id.escapedText === "module" && nextToLast.name.escapedText === "exports") {
|
||||
// exports.name = expr OR module.exports.name = expr
|
||||
return SpecialPropertyAssignmentKind.ExportsProperty;
|
||||
return AssignmentDeclarationKind.ExportsProperty;
|
||||
}
|
||||
// F.G...x = expr
|
||||
return SpecialPropertyAssignmentKind.Property;
|
||||
return AssignmentDeclarationKind.Property;
|
||||
}
|
||||
|
||||
return SpecialPropertyAssignmentKind.None;
|
||||
return AssignmentDeclarationKind.None;
|
||||
}
|
||||
|
||||
export function getInitializerOfBinaryExpression(expr: BinaryExpression) {
|
||||
@ -1970,11 +1970,11 @@ namespace ts {
|
||||
}
|
||||
|
||||
export function isPrototypePropertyAssignment(node: Node): boolean {
|
||||
return isBinaryExpression(node) && getSpecialPropertyAssignmentKind(node) === SpecialPropertyAssignmentKind.PrototypeProperty;
|
||||
return isBinaryExpression(node) && getAssignmentDeclarationKind(node) === AssignmentDeclarationKind.PrototypeProperty;
|
||||
}
|
||||
|
||||
export function isSpecialPropertyDeclaration(expr: PropertyAccessExpression): boolean {
|
||||
return isInJavaScriptFile(expr) &&
|
||||
return isInJSFile(expr) &&
|
||||
expr.parent && expr.parent.kind === SyntaxKind.ExpressionStatement &&
|
||||
!!getJSDocTypeTag(expr.parent);
|
||||
}
|
||||
@ -2082,7 +2082,7 @@ namespace ts {
|
||||
function getSourceOfDefaultedAssignment(node: Node): Node | undefined {
|
||||
return isExpressionStatement(node) &&
|
||||
isBinaryExpression(node.expression) &&
|
||||
getSpecialPropertyAssignmentKind(node.expression) !== SpecialPropertyAssignmentKind.None &&
|
||||
getAssignmentDeclarationKind(node.expression) !== AssignmentDeclarationKind.None &&
|
||||
isBinaryExpression(node.expression.right) &&
|
||||
node.expression.right.operatorToken.kind === SyntaxKind.BarBarToken
|
||||
? node.expression.right.right
|
||||
@ -2402,7 +2402,7 @@ namespace ts {
|
||||
else {
|
||||
const binExp = parent.parent;
|
||||
return isBinaryExpression(binExp) &&
|
||||
getSpecialPropertyAssignmentKind(binExp) !== SpecialPropertyAssignmentKind.None &&
|
||||
getAssignmentDeclarationKind(binExp) !== AssignmentDeclarationKind.None &&
|
||||
(binExp.left.symbol || binExp.symbol) &&
|
||||
getNameOfDeclaration(binExp) === name
|
||||
? binExp
|
||||
@ -2471,7 +2471,7 @@ namespace ts {
|
||||
node.kind === SyntaxKind.ImportSpecifier ||
|
||||
node.kind === SyntaxKind.ExportSpecifier ||
|
||||
node.kind === SyntaxKind.ExportAssignment && exportAssignmentIsAlias(<ExportAssignment>node) ||
|
||||
isBinaryExpression(node) && getSpecialPropertyAssignmentKind(node) === SpecialPropertyAssignmentKind.ModuleExports;
|
||||
isBinaryExpression(node) && getAssignmentDeclarationKind(node) === AssignmentDeclarationKind.ModuleExports;
|
||||
}
|
||||
|
||||
export function exportAssignmentIsAlias(node: ExportAssignment | BinaryExpression): boolean {
|
||||
@ -2480,7 +2480,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
export function getEffectiveBaseTypeNode(node: ClassLikeDeclaration | InterfaceDeclaration) {
|
||||
if (isInJavaScriptFile(node)) {
|
||||
if (isInJSFile(node)) {
|
||||
// Prefer an @augments tag because it may have type parameters.
|
||||
const tag = getJSDocAugmentsTag(node);
|
||||
if (tag) {
|
||||
@ -3286,7 +3286,7 @@ namespace ts {
|
||||
|
||||
/** Don't call this for `--outFile`, just for `--outDir` or plain emit. `--outFile` needs additional checks. */
|
||||
export function sourceFileMayBeEmitted(sourceFile: SourceFile, options: CompilerOptions, isSourceFileFromExternalLibrary: (file: SourceFile) => boolean) {
|
||||
return !(options.noEmitForJsFiles && isSourceFileJavaScript(sourceFile)) && !sourceFile.isDeclarationFile && !isSourceFileFromExternalLibrary(sourceFile);
|
||||
return !(options.noEmitForJsFiles && isSourceFileJS(sourceFile)) && !sourceFile.isDeclarationFile && !isSourceFileFromExternalLibrary(sourceFile);
|
||||
}
|
||||
|
||||
export function getSourceFilePathInNewDir(fileName: string, host: EmitHost, newDirPath: string): string {
|
||||
@ -3410,7 +3410,7 @@ namespace ts {
|
||||
*/
|
||||
export function getEffectiveTypeAnnotationNode(node: Node): TypeNode | undefined {
|
||||
const type = (node as HasType).type;
|
||||
if (type || !isInJavaScriptFile(node)) return type;
|
||||
if (type || !isInJSFile(node)) return type;
|
||||
return isJSDocPropertyLikeTag(node) ? node.typeExpression && node.typeExpression.type : getJSDocType(node);
|
||||
}
|
||||
|
||||
@ -3425,7 +3425,7 @@ namespace ts {
|
||||
export function getEffectiveReturnTypeNode(node: SignatureDeclaration | JSDocSignature): TypeNode | undefined {
|
||||
return isJSDocSignature(node) ?
|
||||
node.type && node.type.typeExpression && node.type.typeExpression.type :
|
||||
node.type || (isInJavaScriptFile(node) ? getJSDocReturnType(node) : undefined);
|
||||
node.type || (isInJSFile(node) ? getJSDocReturnType(node) : undefined);
|
||||
}
|
||||
|
||||
export function getJSDocTypeParameterDeclarations(node: DeclarationWithTypeParameters): ReadonlyArray<TypeParameterDeclaration> {
|
||||
@ -4986,11 +4986,11 @@ namespace ts {
|
||||
}
|
||||
case SyntaxKind.BinaryExpression: {
|
||||
const expr = declaration as BinaryExpression;
|
||||
switch (getSpecialPropertyAssignmentKind(expr)) {
|
||||
case SpecialPropertyAssignmentKind.ExportsProperty:
|
||||
case SpecialPropertyAssignmentKind.ThisProperty:
|
||||
case SpecialPropertyAssignmentKind.Property:
|
||||
case SpecialPropertyAssignmentKind.PrototypeProperty:
|
||||
switch (getAssignmentDeclarationKind(expr)) {
|
||||
case AssignmentDeclarationKind.ExportsProperty:
|
||||
case AssignmentDeclarationKind.ThisProperty:
|
||||
case AssignmentDeclarationKind.Property:
|
||||
case AssignmentDeclarationKind.PrototypeProperty:
|
||||
return (expr.left as PropertyAccessExpression).name;
|
||||
default:
|
||||
return undefined;
|
||||
@ -5207,7 +5207,7 @@ namespace ts {
|
||||
if (node.typeParameters) {
|
||||
return node.typeParameters;
|
||||
}
|
||||
if (isInJavaScriptFile(node)) {
|
||||
if (isInJSFile(node)) {
|
||||
const decls = getJSDocTypeParameterDeclarations(node);
|
||||
if (decls.length) {
|
||||
return decls;
|
||||
@ -6613,7 +6613,7 @@ namespace ts {
|
||||
/* @internal */
|
||||
export function isDeclaration(node: Node): node is NamedDeclaration {
|
||||
if (node.kind === SyntaxKind.TypeParameter) {
|
||||
return node.parent.kind !== SyntaxKind.JSDocTemplateTag || isInJavaScriptFile(node);
|
||||
return node.parent.kind !== SyntaxKind.JSDocTemplateTag || isInJSFile(node);
|
||||
}
|
||||
|
||||
return isDeclarationKind(node.kind);
|
||||
@ -7671,6 +7671,15 @@ namespace ts {
|
||||
// It may be inefficient (we could just match (/[-[\]{}()*+?.,\\^$|#\s]/g), but this is future
|
||||
// proof.
|
||||
const reservedCharacterPattern = /[^\w\s\/]/g;
|
||||
|
||||
export function regExpEscape(text: string) {
|
||||
return text.replace(reservedCharacterPattern, escapeRegExpCharacter);
|
||||
}
|
||||
|
||||
function escapeRegExpCharacter(match: string) {
|
||||
return "\\" + match;
|
||||
}
|
||||
|
||||
const wildcardCharCodes = [CharacterCodes.asterisk, CharacterCodes.question];
|
||||
|
||||
export function hasExtension(fileName: string): boolean {
|
||||
@ -8001,42 +8010,42 @@ namespace ts {
|
||||
/**
|
||||
* List of supported extensions in order of file resolution precedence.
|
||||
*/
|
||||
export const supportedTypeScriptExtensions: ReadonlyArray<Extension> = [Extension.Ts, Extension.Tsx, Extension.Dts];
|
||||
export const supportedTypescriptExtensions: ReadonlyArray<Extension> = [Extension.Ts, Extension.Tsx, Extension.Dts];
|
||||
/** Must have ".d.ts" first because if ".ts" goes first, that will be detected as the extension instead of ".d.ts". */
|
||||
export const supportedTypescriptExtensionsForExtractExtension: ReadonlyArray<Extension> = [Extension.Dts, Extension.Ts, Extension.Tsx];
|
||||
export const supportedJavascriptExtensions: ReadonlyArray<Extension> = [Extension.Js, Extension.Jsx];
|
||||
export const supportedJavaScriptAndJsonExtensions: ReadonlyArray<Extension> = [Extension.Js, Extension.Jsx, Extension.Json];
|
||||
const allSupportedExtensions: ReadonlyArray<Extension> = [...supportedTypeScriptExtensions, ...supportedJavascriptExtensions];
|
||||
export const supportedJavascriptAndJsonExtensions: ReadonlyArray<Extension> = [Extension.Js, Extension.Jsx, Extension.Json];
|
||||
const allSupportedExtensions: ReadonlyArray<Extension> = [...supportedTypescriptExtensions, ...supportedJavascriptExtensions];
|
||||
|
||||
export function getSupportedExtensions(options?: CompilerOptions, extraFileExtensions?: ReadonlyArray<FileExtensionInfo>): ReadonlyArray<string> {
|
||||
const needJsExtensions = options && options.allowJs;
|
||||
|
||||
if (!extraFileExtensions || extraFileExtensions.length === 0) {
|
||||
return needJsExtensions ? allSupportedExtensions : supportedTypeScriptExtensions;
|
||||
return needJsExtensions ? allSupportedExtensions : supportedTypescriptExtensions;
|
||||
}
|
||||
|
||||
const extensions = [
|
||||
...needJsExtensions ? allSupportedExtensions : supportedTypeScriptExtensions,
|
||||
...mapDefined(extraFileExtensions, x => x.scriptKind === ScriptKind.Deferred || needJsExtensions && isJavaScriptLike(x.scriptKind) ? x.extension : undefined)
|
||||
...needJsExtensions ? allSupportedExtensions : supportedTypescriptExtensions,
|
||||
...mapDefined(extraFileExtensions, x => x.scriptKind === ScriptKind.Deferred || needJsExtensions && isJavascriptLike(x.scriptKind) ? x.extension : undefined)
|
||||
];
|
||||
|
||||
return deduplicate<string>(extensions, equateStringsCaseSensitive, compareStringsCaseSensitive);
|
||||
}
|
||||
|
||||
function isJavaScriptLike(scriptKind: ScriptKind | undefined): boolean {
|
||||
function isJavascriptLike(scriptKind: ScriptKind | undefined): boolean {
|
||||
return scriptKind === ScriptKind.JS || scriptKind === ScriptKind.JSX;
|
||||
}
|
||||
|
||||
export function hasJavaScriptFileExtension(fileName: string): boolean {
|
||||
export function hasJavascriptFileExtension(fileName: string): boolean {
|
||||
return some(supportedJavascriptExtensions, extension => fileExtensionIs(fileName, extension));
|
||||
}
|
||||
|
||||
export function hasJavaScriptOrJsonFileExtension(fileName: string): boolean {
|
||||
return supportedJavaScriptAndJsonExtensions.some(ext => fileExtensionIs(fileName, ext));
|
||||
export function hasJavascriptOrJsonFileExtension(fileName: string): boolean {
|
||||
return supportedJavascriptAndJsonExtensions.some(ext => fileExtensionIs(fileName, ext));
|
||||
}
|
||||
|
||||
export function hasTypeScriptFileExtension(fileName: string): boolean {
|
||||
return some(supportedTypeScriptExtensions, extension => fileExtensionIs(fileName, extension));
|
||||
export function hasTypescriptFileExtension(fileName: string): boolean {
|
||||
return some(supportedTypescriptExtensions, extension => fileExtensionIs(fileName, extension));
|
||||
}
|
||||
|
||||
export function isSupportedSourceFileName(fileName: string, compilerOptions?: CompilerOptions, extraFileExtensions?: ReadonlyArray<FileExtensionInfo>) {
|
||||
|
||||
@ -268,7 +268,7 @@ namespace Harness.LanguageService {
|
||||
getHost(): LanguageServiceAdapterHost { return this.host; }
|
||||
getLanguageService(): ts.LanguageService { return ts.createLanguageService(this.host); }
|
||||
getClassifier(): ts.Classifier { return ts.createClassifier(); }
|
||||
getPreProcessedFileInfo(fileName: string, fileContents: string): ts.PreProcessedFileInfo { return ts.preProcessFile(fileContents, /* readImportFiles */ true, ts.hasJavaScriptFileExtension(fileName)); }
|
||||
getPreProcessedFileInfo(fileName: string, fileContents: string): ts.PreProcessedFileInfo { return ts.preProcessFile(fileContents, /* readImportFiles */ true, ts.hasJavascriptFileExtension(fileName)); }
|
||||
}
|
||||
|
||||
/// Shim adapter
|
||||
|
||||
@ -7,6 +7,21 @@ namespace utils {
|
||||
return text !== undefined ? text.replace(testPathPrefixRegExp, (_, scheme) => scheme || (retainTrailingDirectorySeparator ? "/" : "")) : undefined!; // TODO: GH#18217
|
||||
}
|
||||
|
||||
function createDiagnosticMessageReplacer<R extends (messageArgs: string[], ...args: string[]) => string[]>(diagnosticMessage: ts.DiagnosticMessage, replacer: R) {
|
||||
const messageParts = diagnosticMessage.message.split(/{\d+}/g);
|
||||
const regExp = new RegExp(`^(?:${messageParts.map(ts.regExpEscape).join("(.*?)")})$`);
|
||||
type Args<R> = R extends (messageArgs: string[], ...args: infer A) => string[] ? A : [];
|
||||
return (text: string, ...args: Args<R>) => text.replace(regExp, (_, ...fixedArgs) => ts.formatStringFromArgs(diagnosticMessage.message, replacer(fixedArgs, ...args)));
|
||||
}
|
||||
|
||||
const replaceTypesVersionsMessage = createDiagnosticMessageReplacer(
|
||||
ts.Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2,
|
||||
([entry, , moduleName], compilerVersion) => [entry, compilerVersion, moduleName]);
|
||||
|
||||
export function sanitizeTraceResolutionLogEntry(text: string) {
|
||||
return text && removeTestPathPrefixes(replaceTypesVersionsMessage(text, "3.1.0-dev"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes leading indentation from a template literal string.
|
||||
*/
|
||||
|
||||
@ -21,8 +21,8 @@ namespace vpath {
|
||||
export import relative = ts.getRelativePathFromDirectory;
|
||||
export import beneath = ts.containsPath;
|
||||
export import changeExtension = ts.changeAnyExtension;
|
||||
export import isTypeScript = ts.hasTypeScriptFileExtension;
|
||||
export import isJavaScript = ts.hasJavaScriptFileExtension;
|
||||
export import isTypeScript = ts.hasTypescriptFileExtension;
|
||||
export import isJavaScript = ts.hasJavascriptFileExtension;
|
||||
|
||||
const invalidRootComponentRegExp = /^(?!(\/|\/\/\w+\/|[a-zA-Z]:\/?|)$)/;
|
||||
const invalidNavigableComponentRegExp = /[:*?"<>|]/;
|
||||
@ -133,4 +133,4 @@ namespace vpath {
|
||||
export function isTsConfigFile(path: string): boolean {
|
||||
return path.indexOf("tsconfig") !== -1 && path.indexOf("json") !== -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -122,7 +122,7 @@ namespace ts.JsTyping {
|
||||
// Only infer typings for .js and .jsx files
|
||||
fileNames = mapDefined(fileNames, fileName => {
|
||||
const path = normalizePath(fileName);
|
||||
if (hasJavaScriptFileExtension(path)) {
|
||||
if (hasJavascriptFileExtension(path)) {
|
||||
return path;
|
||||
}
|
||||
});
|
||||
@ -218,7 +218,7 @@ namespace ts.JsTyping {
|
||||
*/
|
||||
function getTypingNamesFromSourceFileNames(fileNames: string[]) {
|
||||
const fromFileNames = mapDefined(fileNames, j => {
|
||||
if (!hasJavaScriptFileExtension(j)) return undefined;
|
||||
if (!hasJavascriptFileExtension(j)) return undefined;
|
||||
|
||||
const inferredTypingName = removeFileExtension(getBaseFileName(j.toLowerCase()));
|
||||
const cleanedTypingName = removeMinAndVersionNumbers(inferredTypingName);
|
||||
|
||||
@ -1447,14 +1447,14 @@ namespace ts.server {
|
||||
|
||||
for (const f of fileNames) {
|
||||
const fileName = propertyReader.getFileName(f);
|
||||
if (hasTypeScriptFileExtension(fileName)) {
|
||||
if (hasTypescriptFileExtension(fileName)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
totalNonTsFileSize += this.host.getFileSize(fileName);
|
||||
|
||||
if (totalNonTsFileSize > maxProgramSizeForNonTsFiles || totalNonTsFileSize > availableSpace) {
|
||||
this.logger.info(getExceedLimitMessage({ propertyReader, hasTypeScriptFileExtension, host: this.host }, totalNonTsFileSize));
|
||||
this.logger.info(getExceedLimitMessage({ propertyReader, hasTypescriptFileExtension, host: this.host }, totalNonTsFileSize));
|
||||
// Keep the size as zero since it's disabled
|
||||
return fileName;
|
||||
}
|
||||
@ -1464,14 +1464,14 @@ namespace ts.server {
|
||||
|
||||
return;
|
||||
|
||||
function getExceedLimitMessage(context: { propertyReader: FilePropertyReader<any>, hasTypeScriptFileExtension: (filename: string) => boolean, host: ServerHost }, totalNonTsFileSize: number) {
|
||||
function getExceedLimitMessage(context: { propertyReader: FilePropertyReader<any>, hasTypescriptFileExtension: (filename: string) => boolean, host: ServerHost }, totalNonTsFileSize: number) {
|
||||
const files = getTop5LargestFiles(context);
|
||||
|
||||
return `Non TS file size exceeded limit (${totalNonTsFileSize}). Largest files: ${files.map(file => `${file.name}:${file.size}`).join(", ")}`;
|
||||
}
|
||||
function getTop5LargestFiles({ propertyReader, hasTypeScriptFileExtension, host }: { propertyReader: FilePropertyReader<any>, hasTypeScriptFileExtension: (filename: string) => boolean, host: ServerHost }) {
|
||||
function getTop5LargestFiles({ propertyReader, hasTypescriptFileExtension, host }: { propertyReader: FilePropertyReader<any>, hasTypescriptFileExtension: (filename: string) => boolean, host: ServerHost }) {
|
||||
return fileNames.map(f => propertyReader.getFileName(f))
|
||||
.filter(name => hasTypeScriptFileExtension(name))
|
||||
.filter(name => hasTypescriptFileExtension(name))
|
||||
.map(name => ({ name, size: host.getFileSize!(name) })) // TODO: GH#18217
|
||||
.sort((a, b) => b.size - a.size)
|
||||
.slice(0, 5);
|
||||
|
||||
@ -167,7 +167,7 @@ namespace ts.server {
|
||||
const fileName = tempFileName || this.fileName;
|
||||
const getText = () => text === undefined ? (text = this.host.readFile(fileName) || "") : text;
|
||||
// Only non typescript files have size limitation
|
||||
if (!hasTypeScriptFileExtension(this.fileName)) {
|
||||
if (!hasTypescriptFileExtension(this.fileName)) {
|
||||
const fileSize = this.host.getFileSize ? this.host.getFileSize(fileName) : getText().length;
|
||||
if (fileSize > maxFileSize) {
|
||||
Debug.assert(!!this.info.containingProjects.length);
|
||||
|
||||
@ -138,7 +138,7 @@ namespace ts.codefix {
|
||||
|
||||
default: {
|
||||
// Don't try to declare members in JavaScript files
|
||||
if (isSourceFileJavaScript(sourceFile)) {
|
||||
if (isSourceFileJS(sourceFile)) {
|
||||
return;
|
||||
}
|
||||
const prop = createProperty(/*decorators*/ undefined, modifiers, memberDeclaration.name, /*questionToken*/ undefined,
|
||||
|
||||
@ -61,12 +61,12 @@ namespace ts.codefix {
|
||||
const synthNamesMap: Map<SynthIdentifier> = createMap();
|
||||
const originalTypeMap: Map<Type> = createMap();
|
||||
const allVarNames: SymbolAndIdentifier[] = [];
|
||||
const isInJSFile = isInJavaScriptFile(functionToConvert);
|
||||
const isInJavascript = isInJSFile(functionToConvert);
|
||||
const setOfExpressionsToReturn = getAllPromiseExpressionsToReturn(functionToConvert, checker);
|
||||
const functionToConvertRenamed: FunctionLikeDeclaration = renameCollidingVarNames(functionToConvert, checker, synthNamesMap, context, setOfExpressionsToReturn, originalTypeMap, allVarNames);
|
||||
const constIdentifiers = getConstIdentifiers(synthNamesMap);
|
||||
const returnStatements = getReturnStatementsWithPromiseHandlers(functionToConvertRenamed);
|
||||
const transformer = { checker, synthNamesMap, allVarNames, setOfExpressionsToReturn, constIdentifiers, originalTypeMap, isInJSFile };
|
||||
const transformer = { checker, synthNamesMap, allVarNames, setOfExpressionsToReturn, constIdentifiers, originalTypeMap, isInJSFile: isInJavascript };
|
||||
|
||||
if (!returnStatements.length) {
|
||||
return;
|
||||
@ -546,4 +546,4 @@ namespace ts.codefix {
|
||||
return node.original ? node.original : node;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ namespace ts.codefix {
|
||||
getCodeActions(context) {
|
||||
const { sourceFile, program, span, host, formatContext } = context;
|
||||
|
||||
if (!isInJavaScriptFile(sourceFile) || !isCheckJsEnabledForFile(sourceFile, program.getCompilerOptions())) {
|
||||
if (!isInJSFile(sourceFile) || !isCheckJsEnabledForFile(sourceFile, program.getCompilerOptions())) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ namespace ts.codefix {
|
||||
const { parentDeclaration, declSourceFile, inJs, makeStatic, token, call } = info;
|
||||
const methodCodeAction = call && getActionForMethodDeclaration(context, declSourceFile, parentDeclaration, token, call, makeStatic, inJs, context.preferences);
|
||||
const addMember = inJs && !isInterfaceDeclaration(parentDeclaration) ?
|
||||
singleElementArray(getActionsForAddMissingMemberInJavaScriptFile(context, declSourceFile, parentDeclaration, token.text, makeStatic)) :
|
||||
singleElementArray(getActionsForAddMissingMemberInJavascriptFile(context, declSourceFile, parentDeclaration, token.text, makeStatic)) :
|
||||
getActionsForAddMissingMemberInTypeScriptFile(context, declSourceFile, parentDeclaration, token, makeStatic);
|
||||
return concatenate(singleElementArray(methodCodeAction), addMember);
|
||||
},
|
||||
@ -131,7 +131,7 @@ namespace ts.codefix {
|
||||
if (classOrInterface) {
|
||||
const makeStatic = ((leftExpressionType as TypeReference).target || leftExpressionType) !== checker.getDeclaredTypeOfSymbol(symbol);
|
||||
const declSourceFile = classOrInterface.getSourceFile();
|
||||
const inJs = isSourceFileJavaScript(declSourceFile);
|
||||
const inJs = isSourceFileJS(declSourceFile);
|
||||
const call = tryCast(parent.parent, isCallExpression);
|
||||
return { kind: InfoKind.ClassOrInterface, token, parentDeclaration: classOrInterface, makeStatic, declSourceFile, inJs, call };
|
||||
}
|
||||
@ -142,7 +142,7 @@ namespace ts.codefix {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function getActionsForAddMissingMemberInJavaScriptFile(context: CodeFixContext, declSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, tokenName: string, makeStatic: boolean): CodeFixAction | undefined {
|
||||
function getActionsForAddMissingMemberInJavascriptFile(context: CodeFixContext, declSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, tokenName: string, makeStatic: boolean): CodeFixAction | undefined {
|
||||
const changes = textChanges.ChangeTracker.with(context, t => addMissingMemberInJs(t, declSourceFile, classDeclaration, tokenName, makeStatic));
|
||||
return changes.length === 0 ? undefined
|
||||
: createCodeFixAction(fixName, changes, [makeStatic ? Diagnostics.Initialize_static_property_0 : Diagnostics.Initialize_property_0_in_the_constructor, tokenName], fixId, Diagnostics.Add_all_missing_members);
|
||||
|
||||
@ -267,7 +267,7 @@ namespace ts.codefix {
|
||||
|
||||
function getExistingImportDeclarations({ moduleSymbol, importKind, exportedSymbolIsTypeOnly }: SymbolExportInfo, checker: TypeChecker, sourceFile: SourceFile): ReadonlyArray<FixAddToExistingImportInfo> {
|
||||
// Can't use an es6 import for a type in JS.
|
||||
return exportedSymbolIsTypeOnly && isSourceFileJavaScript(sourceFile) ? emptyArray : mapDefined<StringLiteralLike, FixAddToExistingImportInfo>(sourceFile.imports, moduleSpecifier => {
|
||||
return exportedSymbolIsTypeOnly && isSourceFileJS(sourceFile) ? emptyArray : mapDefined<StringLiteralLike, FixAddToExistingImportInfo>(sourceFile.imports, moduleSpecifier => {
|
||||
const i = importFromModuleSpecifier(moduleSpecifier);
|
||||
return (i.kind === SyntaxKind.ImportDeclaration || i.kind === SyntaxKind.ImportEqualsDeclaration)
|
||||
&& checker.getSymbolAtLocation(moduleSpecifier) === moduleSymbol ? { declaration: i, importKind } : undefined;
|
||||
@ -282,7 +282,7 @@ namespace ts.codefix {
|
||||
host: LanguageServiceHost,
|
||||
preferences: UserPreferences,
|
||||
): ReadonlyArray<FixAddNewImport | FixUseImportType> {
|
||||
const isJs = isSourceFileJavaScript(sourceFile);
|
||||
const isJs = isSourceFileJS(sourceFile);
|
||||
const choicesForEachExportingModule = flatMap(moduleSymbols, ({ moduleSymbol, importKind, exportedSymbolIsTypeOnly }) =>
|
||||
moduleSpecifiers.getModuleSpecifiers(moduleSymbol, program.getCompilerOptions(), sourceFile, host, program.getSourceFiles(), preferences, program.redirectTargetsMap)
|
||||
.map((moduleSpecifier): FixAddNewImport | FixUseImportType =>
|
||||
|
||||
@ -26,7 +26,7 @@ namespace ts.codefix {
|
||||
errorCodes,
|
||||
getCodeActions(context) {
|
||||
const { sourceFile, program, span: { start }, errorCode, cancellationToken } = context;
|
||||
if (isSourceFileJavaScript(sourceFile)) {
|
||||
if (isSourceFileJS(sourceFile)) {
|
||||
return undefined; // TODO: GH#20113
|
||||
}
|
||||
|
||||
|
||||
@ -134,7 +134,7 @@ namespace ts.Completions {
|
||||
|
||||
if (isUncheckedFile(sourceFile, compilerOptions)) {
|
||||
const uniqueNames = getCompletionEntriesFromSymbols(symbols, entries, location, sourceFile, typeChecker, compilerOptions.target!, log, completionKind, preferences, propertyAccessToConvert, isJsxInitializer, recommendedCompletion, symbolToOriginInfoMap);
|
||||
getJavaScriptCompletionEntries(sourceFile, location!.pos, uniqueNames, compilerOptions.target!, entries); // TODO: GH#18217
|
||||
getJSCompletionEntries(sourceFile, location!.pos, uniqueNames, compilerOptions.target!, entries); // TODO: GH#18217
|
||||
}
|
||||
else {
|
||||
if ((!symbols || symbols.length === 0) && keywordFilters === KeywordCompletionFilters.None) {
|
||||
@ -161,7 +161,7 @@ namespace ts.Completions {
|
||||
}
|
||||
|
||||
function isUncheckedFile(sourceFile: SourceFile, compilerOptions: CompilerOptions): boolean {
|
||||
return isSourceFileJavaScript(sourceFile) && !isCheckJsEnabledForFile(sourceFile, compilerOptions);
|
||||
return isSourceFileJS(sourceFile) && !isCheckJsEnabledForFile(sourceFile, compilerOptions);
|
||||
}
|
||||
|
||||
function isMemberCompletionKind(kind: CompletionKind): boolean {
|
||||
@ -175,7 +175,7 @@ namespace ts.Completions {
|
||||
}
|
||||
}
|
||||
|
||||
function getJavaScriptCompletionEntries(
|
||||
function getJSCompletionEntries(
|
||||
sourceFile: SourceFile,
|
||||
position: number,
|
||||
uniqueNames: Map<true>,
|
||||
@ -1268,10 +1268,10 @@ namespace ts.Completions {
|
||||
if (sourceFile.externalModuleIndicator) return true;
|
||||
// If already using commonjs, don't introduce ES6.
|
||||
if (sourceFile.commonJsModuleIndicator) return false;
|
||||
// If some file is using ES6 modules, assume that it's OK to add more.
|
||||
if (programContainsEs6Modules(program)) return true;
|
||||
// For JS, stay on the safe side.
|
||||
if (isUncheckedFile) return false;
|
||||
// If some file is using ES6 modules, assume that it's OK to add more.
|
||||
if (programContainsEs6Modules(program)) return true;
|
||||
// If module transpilation is enabled or we're targeting es6 or above, or not emitting, OK.
|
||||
return compilerOptionsIndicateEs6Modules(program.getCompilerOptions());
|
||||
}
|
||||
|
||||
@ -502,11 +502,11 @@ namespace ts.FindAllReferences {
|
||||
|
||||
function getSpecialPropertyExport(node: BinaryExpression, useLhsSymbol: boolean): ExportedSymbol | undefined {
|
||||
let kind: ExportKind;
|
||||
switch (getSpecialPropertyAssignmentKind(node)) {
|
||||
case SpecialPropertyAssignmentKind.ExportsProperty:
|
||||
switch (getAssignmentDeclarationKind(node)) {
|
||||
case AssignmentDeclarationKind.ExportsProperty:
|
||||
kind = ExportKind.Named;
|
||||
break;
|
||||
case SpecialPropertyAssignmentKind.ModuleExports:
|
||||
case AssignmentDeclarationKind.ModuleExports:
|
||||
kind = ExportKind.ExportEquals;
|
||||
break;
|
||||
default:
|
||||
|
||||
@ -312,7 +312,7 @@ namespace ts.JsDoc {
|
||||
const preamble = "/**" + newLine + indentationStr + " * ";
|
||||
const result =
|
||||
preamble + newLine +
|
||||
parameterDocComments(parameters, hasJavaScriptFileExtension(sourceFile.fileName), indentationStr, newLine) +
|
||||
parameterDocComments(parameters, hasJavascriptFileExtension(sourceFile.fileName), indentationStr, newLine) +
|
||||
indentationStr + " */" +
|
||||
(tokenStart === position ? newLine + indentationStr : "");
|
||||
|
||||
@ -383,7 +383,7 @@ namespace ts.JsDoc {
|
||||
|
||||
case SyntaxKind.BinaryExpression: {
|
||||
const be = commentOwner as BinaryExpression;
|
||||
if (getSpecialPropertyAssignmentKind(be) === SpecialPropertyAssignmentKind.None) {
|
||||
if (getAssignmentDeclarationKind(be) === AssignmentDeclarationKind.None) {
|
||||
return "quit";
|
||||
}
|
||||
const parameters = isFunctionLike(be.right) ? be.right.parameters : emptyArray;
|
||||
|
||||
@ -270,17 +270,17 @@ namespace ts.NavigationBar {
|
||||
break;
|
||||
|
||||
case SyntaxKind.BinaryExpression: {
|
||||
const special = getSpecialPropertyAssignmentKind(node as BinaryExpression);
|
||||
const special = getAssignmentDeclarationKind(node as BinaryExpression);
|
||||
switch (special) {
|
||||
case SpecialPropertyAssignmentKind.ExportsProperty:
|
||||
case SpecialPropertyAssignmentKind.ModuleExports:
|
||||
case SpecialPropertyAssignmentKind.PrototypeProperty:
|
||||
case SpecialPropertyAssignmentKind.Prototype:
|
||||
case AssignmentDeclarationKind.ExportsProperty:
|
||||
case AssignmentDeclarationKind.ModuleExports:
|
||||
case AssignmentDeclarationKind.PrototypeProperty:
|
||||
case AssignmentDeclarationKind.Prototype:
|
||||
addNodeWithRecursiveChild(node, (node as BinaryExpression).right);
|
||||
return;
|
||||
case SpecialPropertyAssignmentKind.ThisProperty:
|
||||
case SpecialPropertyAssignmentKind.Property:
|
||||
case SpecialPropertyAssignmentKind.None:
|
||||
case AssignmentDeclarationKind.ThisProperty:
|
||||
case AssignmentDeclarationKind.Property:
|
||||
case AssignmentDeclarationKind.None:
|
||||
break;
|
||||
default:
|
||||
Debug.assertNever(special);
|
||||
|
||||
@ -719,7 +719,7 @@ namespace ts.refactor.extractSymbol {
|
||||
// Make a unique name for the extracted function
|
||||
const file = scope.getSourceFile();
|
||||
const functionNameText = getUniqueName(isClassLike(scope) ? "newMethod" : "newFunction", file);
|
||||
const isJS = isInJavaScriptFile(scope);
|
||||
const isJS = isInJSFile(scope);
|
||||
|
||||
const functionName = createIdentifier(functionNameText);
|
||||
|
||||
@ -1006,7 +1006,7 @@ namespace ts.refactor.extractSymbol {
|
||||
// Make a unique name for the extracted variable
|
||||
const file = scope.getSourceFile();
|
||||
const localNameText = getUniqueName(isClassLike(scope) ? "newProperty" : "newLocal", file);
|
||||
const isJS = isInJavaScriptFile(scope);
|
||||
const isJS = isInJSFile(scope);
|
||||
|
||||
const variableType = isJS || !checker.isContextSensitive(node)
|
||||
? undefined
|
||||
@ -1424,7 +1424,7 @@ namespace ts.refactor.extractSymbol {
|
||||
if (expressionDiagnostic) {
|
||||
constantErrors.push(expressionDiagnostic);
|
||||
}
|
||||
if (isClassLike(scope) && isInJavaScriptFile(scope)) {
|
||||
if (isClassLike(scope) && isInJSFile(scope)) {
|
||||
constantErrors.push(createDiagnosticForNode(scope, Messages.cannotExtractToJSClass));
|
||||
}
|
||||
if (isArrowFunction(scope) && !isBlock(scope.body)) {
|
||||
|
||||
@ -41,7 +41,7 @@ namespace ts.refactor.generateGetAccessorAndSetAccessor {
|
||||
const fieldInfo = getConvertibleFieldAtPosition(context);
|
||||
if (!fieldInfo) return undefined;
|
||||
|
||||
const isJS = isSourceFileJavaScript(file);
|
||||
const isJS = isSourceFileJS(file);
|
||||
const changeTracker = textChanges.ChangeTracker.fromContext(context);
|
||||
const { isStatic, isReadonly, fieldName, accessorName, originalName, type, container, declaration, renameAccessor } = fieldInfo;
|
||||
|
||||
|
||||
@ -657,7 +657,7 @@ namespace ts.refactor {
|
||||
|
||||
case SyntaxKind.ExpressionStatement: {
|
||||
const { expression } = statement as ExpressionStatement;
|
||||
return isBinaryExpression(expression) && getSpecialPropertyAssignmentKind(expression) === SpecialPropertyAssignmentKind.ExportsProperty
|
||||
return isBinaryExpression(expression) && getAssignmentDeclarationKind(expression) === AssignmentDeclarationKind.ExportsProperty
|
||||
? cb(statement as TopLevelExpressionStatement)
|
||||
: undefined;
|
||||
}
|
||||
|
||||
@ -760,7 +760,7 @@ namespace ts {
|
||||
break;
|
||||
|
||||
case SyntaxKind.BinaryExpression:
|
||||
if (getSpecialPropertyAssignmentKind(node as BinaryExpression) !== SpecialPropertyAssignmentKind.None) {
|
||||
if (getAssignmentDeclarationKind(node as BinaryExpression) !== AssignmentDeclarationKind.None) {
|
||||
addDeclaration(node as BinaryExpression);
|
||||
}
|
||||
// falls through
|
||||
|
||||
@ -50,7 +50,7 @@ namespace ts.SignatureHelp {
|
||||
if (!candidateInfo) {
|
||||
// We didn't have any sig help items produced by the TS compiler. If this is a JS
|
||||
// file, then see if we can figure out anything better.
|
||||
return isSourceFileJavaScript(sourceFile) ? createJavaScriptSignatureHelpItems(argumentInfo, program, cancellationToken) : undefined;
|
||||
return isSourceFileJS(sourceFile) ? createJSSignatureHelpItems(argumentInfo, program, cancellationToken) : undefined;
|
||||
}
|
||||
|
||||
return typeChecker.runWithCancellationToken(cancellationToken, typeChecker =>
|
||||
@ -115,7 +115,7 @@ namespace ts.SignatureHelp {
|
||||
}
|
||||
}
|
||||
|
||||
function createJavaScriptSignatureHelpItems(argumentInfo: ArgumentListInfo, program: Program, cancellationToken: CancellationToken): SignatureHelpItems | undefined {
|
||||
function createJSSignatureHelpItems(argumentInfo: ArgumentListInfo, program: Program, cancellationToken: CancellationToken): SignatureHelpItems | undefined {
|
||||
if (argumentInfo.invocation.kind === InvocationKind.Contextual) return undefined;
|
||||
// See if we can find some symbol with the call expression name that has call signatures.
|
||||
const expression = getExpressionFromInvocation(argumentInfo.invocation);
|
||||
|
||||
@ -11,7 +11,7 @@ namespace ts {
|
||||
diags.push(createDiagnosticForNode(getErrorNodeFromCommonJsIndicator(sourceFile.commonJsModuleIndicator), Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module));
|
||||
}
|
||||
|
||||
const isJsFile = isSourceFileJavaScript(sourceFile);
|
||||
const isJsFile = isSourceFileJS(sourceFile);
|
||||
|
||||
check(sourceFile);
|
||||
|
||||
@ -36,7 +36,7 @@ namespace ts {
|
||||
if (isJsFile) {
|
||||
switch (node.kind) {
|
||||
case SyntaxKind.FunctionExpression:
|
||||
const decl = getDeclarationOfJSInitializer(node);
|
||||
const decl = getDeclarationOfExpando(node);
|
||||
if (decl) {
|
||||
const symbol = decl.symbol;
|
||||
if (symbol && (symbol.exports && symbol.exports.size || symbol.members && symbol.members.size)) {
|
||||
@ -86,8 +86,8 @@ namespace ts {
|
||||
case SyntaxKind.ExpressionStatement: {
|
||||
const { expression } = statement as ExpressionStatement;
|
||||
if (!isBinaryExpression(expression)) return isRequireCall(expression, /*checkArgumentIsStringLiteralLike*/ true);
|
||||
const kind = getSpecialPropertyAssignmentKind(expression);
|
||||
return kind === SpecialPropertyAssignmentKind.ExportsProperty || kind === SpecialPropertyAssignmentKind.ModuleExports;
|
||||
const kind = getAssignmentDeclarationKind(expression);
|
||||
return kind === AssignmentDeclarationKind.ExportsProperty || kind === AssignmentDeclarationKind.ModuleExports;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
|
||||
@ -355,23 +355,23 @@ namespace ts {
|
||||
case SyntaxKind.NamespaceImport:
|
||||
return ScriptElementKind.alias;
|
||||
case SyntaxKind.BinaryExpression:
|
||||
const kind = getSpecialPropertyAssignmentKind(node as BinaryExpression);
|
||||
const kind = getAssignmentDeclarationKind(node as BinaryExpression);
|
||||
const { right } = node as BinaryExpression;
|
||||
switch (kind) {
|
||||
case SpecialPropertyAssignmentKind.None:
|
||||
case AssignmentDeclarationKind.None:
|
||||
return ScriptElementKind.unknown;
|
||||
case SpecialPropertyAssignmentKind.ExportsProperty:
|
||||
case SpecialPropertyAssignmentKind.ModuleExports:
|
||||
case AssignmentDeclarationKind.ExportsProperty:
|
||||
case AssignmentDeclarationKind.ModuleExports:
|
||||
const rightKind = getNodeKind(right);
|
||||
return rightKind === ScriptElementKind.unknown ? ScriptElementKind.constElement : rightKind;
|
||||
case SpecialPropertyAssignmentKind.PrototypeProperty:
|
||||
case AssignmentDeclarationKind.PrototypeProperty:
|
||||
return isFunctionExpression(right) ? ScriptElementKind.memberFunctionElement : ScriptElementKind.memberVariableElement;
|
||||
case SpecialPropertyAssignmentKind.ThisProperty:
|
||||
case AssignmentDeclarationKind.ThisProperty:
|
||||
return ScriptElementKind.memberVariableElement; // property
|
||||
case SpecialPropertyAssignmentKind.Property:
|
||||
case AssignmentDeclarationKind.Property:
|
||||
// static method / property
|
||||
return isFunctionExpression(right) ? ScriptElementKind.memberFunctionElement : ScriptElementKind.memberVariableElement;
|
||||
case SpecialPropertyAssignmentKind.Prototype:
|
||||
case AssignmentDeclarationKind.Prototype:
|
||||
return ScriptElementKind.localClassElement;
|
||||
default: {
|
||||
assertType<never>(kind);
|
||||
|
||||
@ -208,7 +208,7 @@ class CompilerTest {
|
||||
public verifyModuleResolution() {
|
||||
if (this.options.traceResolution) {
|
||||
Harness.Baseline.runBaseline(this.justName.replace(/\.tsx?$/, ".trace.json"),
|
||||
utils.removeTestPathPrefixes(JSON.stringify(this.result.traces, undefined, 4)));
|
||||
JSON.stringify(this.result.traces.map(utils.sanitizeTraceResolutionLogEntry), undefined, 4));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -83,7 +83,7 @@ namespace ts {
|
||||
describe("Node module resolution - relative paths", () => {
|
||||
|
||||
function testLoadAsFile(containingFileName: string, moduleFileNameNoExt: string, moduleName: string): void {
|
||||
for (const ext of supportedTypeScriptExtensions) {
|
||||
for (const ext of supportedTypescriptExtensions) {
|
||||
test(ext, /*hasDirectoryExists*/ false);
|
||||
test(ext, /*hasDirectoryExists*/ true);
|
||||
}
|
||||
@ -96,7 +96,7 @@ namespace ts {
|
||||
|
||||
const failedLookupLocations: string[] = [];
|
||||
const dir = getDirectoryPath(containingFileName);
|
||||
for (const e of supportedTypeScriptExtensions) {
|
||||
for (const e of supportedTypescriptExtensions) {
|
||||
if (e === ext) {
|
||||
break;
|
||||
}
|
||||
@ -137,7 +137,7 @@ namespace ts {
|
||||
const resolution = nodeModuleNameResolver(moduleName, containingFile.name, {}, createModuleResolutionHost(hasDirectoryExists, containingFile, packageJson, moduleFile));
|
||||
checkResolvedModule(resolution.resolvedModule, createResolvedModule(moduleFile.name));
|
||||
// expect three failed lookup location - attempt to load module as file with all supported extensions
|
||||
assert.equal(resolution.failedLookupLocations.length, supportedTypeScriptExtensions.length);
|
||||
assert.equal(resolution.failedLookupLocations.length, supportedTypescriptExtensions.length);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -292,6 +292,48 @@ namespace ts {
|
||||
});
|
||||
}
|
||||
|
||||
export namespace EmptyFiles {
|
||||
const projFs = loadProjectFromDisk("tests/projects/empty-files");
|
||||
|
||||
const allExpectedOutputs = [
|
||||
"/src/core/index.js",
|
||||
"/src/core/index.d.ts",
|
||||
"/src/core/index.d.ts.map",
|
||||
];
|
||||
|
||||
describe("tsbuild - empty files option in tsconfig", () => {
|
||||
it("has empty files diagnostic when files is empty and no references are provided", () => {
|
||||
const fs = projFs.shadow();
|
||||
const host = new fakes.SolutionBuilderHost(fs);
|
||||
const builder = createSolutionBuilder(host, ["/src/no-references"], { dry: false, force: false, verbose: false });
|
||||
|
||||
host.clearDiagnostics();
|
||||
builder.buildAllProjects();
|
||||
host.assertDiagnosticMessages(Diagnostics.The_files_list_in_config_file_0_is_empty);
|
||||
|
||||
// Check for outputs to not be written.
|
||||
for (const output of allExpectedOutputs) {
|
||||
assert(!fs.existsSync(output), `Expect file ${output} to not exist`);
|
||||
}
|
||||
});
|
||||
|
||||
it("does not have empty files diagnostic when files is empty and references are provided", () => {
|
||||
const fs = projFs.shadow();
|
||||
const host = new fakes.SolutionBuilderHost(fs);
|
||||
const builder = createSolutionBuilder(host, ["/src/with-references"], { dry: false, force: false, verbose: false });
|
||||
|
||||
host.clearDiagnostics();
|
||||
builder.buildAllProjects();
|
||||
host.assertDiagnosticMessages(/*empty*/);
|
||||
|
||||
// Check for outputs to be written.
|
||||
for (const output of allExpectedOutputs) {
|
||||
assert(fs.existsSync(output), `Expect file ${output} to exist`);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
describe("tsbuild - graph-ordering", () => {
|
||||
let host: fakes.SolutionBuilderHost | undefined;
|
||||
const deps: [string, string][] = [
|
||||
|
||||
@ -61,6 +61,19 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
|
||||
function assertParseFileDiagnosticsExclusion(jsonText: string, configFileName: string, basePath: string, allFileList: string[], expectedExcludedDiagnosticCode: number) {
|
||||
{
|
||||
const parsed = getParsedCommandJson(jsonText, configFileName, basePath, allFileList);
|
||||
assert.isTrue(parsed.errors.length >= 0);
|
||||
assert.isTrue(parsed.errors.findIndex(e => e.code === expectedExcludedDiagnosticCode) === -1, `Expected error code ${expectedExcludedDiagnosticCode} to not be in ${JSON.stringify(parsed.errors)}`);
|
||||
}
|
||||
{
|
||||
const parsed = getParsedCommandJsonNode(jsonText, configFileName, basePath, allFileList);
|
||||
assert.isTrue(parsed.errors.length >= 0);
|
||||
assert.isTrue(parsed.errors.findIndex(e => e.code === expectedExcludedDiagnosticCode) === -1, `Expected error code ${expectedExcludedDiagnosticCode} to not be in ${JSON.stringify(parsed.errors)}`);
|
||||
}
|
||||
}
|
||||
|
||||
it("returns empty config for file with only whitespaces", () => {
|
||||
assertParseResult("", { config : {} });
|
||||
assertParseResult(" ", { config : {} });
|
||||
@ -280,6 +293,30 @@ namespace ts {
|
||||
Diagnostics.The_files_list_in_config_file_0_is_empty.code);
|
||||
});
|
||||
|
||||
it("generates errors for empty files list when no references are provided", () => {
|
||||
const content = `{
|
||||
"files": [],
|
||||
"references": []
|
||||
}`;
|
||||
assertParseFileDiagnostics(content,
|
||||
"/apath/tsconfig.json",
|
||||
"tests/cases/unittests",
|
||||
["/apath/a.ts"],
|
||||
Diagnostics.The_files_list_in_config_file_0_is_empty.code);
|
||||
});
|
||||
|
||||
it("does not generate errors for empty files list when one or more references are provided", () => {
|
||||
const content = `{
|
||||
"files": [],
|
||||
"references": [{ "path": "/apath" }]
|
||||
}`;
|
||||
assertParseFileDiagnosticsExclusion(content,
|
||||
"/apath/tsconfig.json",
|
||||
"tests/cases/unittests",
|
||||
["/apath/a.ts"],
|
||||
Diagnostics.The_files_list_in_config_file_0_is_empty.code);
|
||||
});
|
||||
|
||||
it("generates errors for directory with no .ts files", () => {
|
||||
const content = `{
|
||||
}`;
|
||||
|
||||
@ -891,7 +891,7 @@ namespace ts.server {
|
||||
|
||||
sys.require = (initialDir: string, moduleName: string): RequireResult => {
|
||||
try {
|
||||
return { module: require(resolveJavaScriptModule(moduleName, initialDir, sys)), error: undefined };
|
||||
return { module: require(resolveJavascriptModule(moduleName, initialDir, sys)), error: undefined };
|
||||
}
|
||||
catch (error) {
|
||||
return { module: undefined, error };
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts(9,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts(9,6): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts(14,15): error TS2569: Type 'StringIterator' is not an array type or a string type. Use compiler option '--downlevelIteration' to allow iterating of iterators.
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts(14,1
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
tests/cases/conformance/Symbols/ES5SymbolProperty2.ts(5,10): error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'.
|
||||
tests/cases/conformance/Symbols/ES5SymbolProperty2.ts(10,11): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/conformance/Symbols/ES5SymbolProperty2.ts(10,11): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
|
||||
==== tests/cases/conformance/Symbols/ES5SymbolProperty2.ts (2 errors) ====
|
||||
@ -16,4 +16,4 @@ tests/cases/conformance/Symbols/ES5SymbolProperty2.ts(10,11): error TS2693: 'Sym
|
||||
|
||||
(new M.C)[Symbol.iterator];
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
@ -1,14 +1,14 @@
|
||||
tests/cases/conformance/Symbols/ES5SymbolProperty6.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/conformance/Symbols/ES5SymbolProperty6.ts(5,9): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/conformance/Symbols/ES5SymbolProperty6.ts(2,6): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/conformance/Symbols/ES5SymbolProperty6.ts(5,9): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
|
||||
==== tests/cases/conformance/Symbols/ES5SymbolProperty6.ts (2 errors) ====
|
||||
class C {
|
||||
[Symbol.iterator]() { }
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
}
|
||||
|
||||
(new C)[Symbol.iterator]
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
@ -1,22 +1,22 @@
|
||||
tests/cases/compiler/anonymousModules.ts(1,1): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/compiler/anonymousModules.ts(1,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/anonymousModules.ts(1,8): error TS1005: ';' expected.
|
||||
tests/cases/compiler/anonymousModules.ts(4,2): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/compiler/anonymousModules.ts(4,2): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/anonymousModules.ts(4,9): error TS1005: ';' expected.
|
||||
tests/cases/compiler/anonymousModules.ts(10,2): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/compiler/anonymousModules.ts(10,2): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/anonymousModules.ts(10,9): error TS1005: ';' expected.
|
||||
|
||||
|
||||
==== tests/cases/compiler/anonymousModules.ts (6 errors) ====
|
||||
module {
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~
|
||||
!!! error TS1005: ';' expected.
|
||||
export var foo = 1;
|
||||
|
||||
module {
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~
|
||||
!!! error TS1005: ';' expected.
|
||||
export var bar = 1;
|
||||
@ -26,7 +26,7 @@ tests/cases/compiler/anonymousModules.ts(10,9): error TS1005: ';' expected.
|
||||
|
||||
module {
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~
|
||||
!!! error TS1005: ';' expected.
|
||||
var x = bar;
|
||||
|
||||
@ -2059,7 +2059,7 @@ declare namespace ts {
|
||||
ExportStar = 8388608,
|
||||
Optional = 16777216,
|
||||
Transient = 33554432,
|
||||
JSContainer = 67108864,
|
||||
Assignment = 67108864,
|
||||
ModuleExports = 134217728,
|
||||
Enum = 384,
|
||||
Variable = 3,
|
||||
|
||||
@ -2059,7 +2059,7 @@ declare namespace ts {
|
||||
ExportStar = 8388608,
|
||||
Optional = 16777216,
|
||||
Transient = 33554432,
|
||||
JSContainer = 67108864,
|
||||
Assignment = 67108864,
|
||||
ModuleExports = 134217728,
|
||||
Enum = 384,
|
||||
Variable = 3,
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
tests/cases/compiler/argumentsObjectIterator02_ES5.ts(2,26): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/compiler/argumentsObjectIterator02_ES5.ts(2,26): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
|
||||
==== tests/cases/compiler/argumentsObjectIterator02_ES5.ts (1 errors) ====
|
||||
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
|
||||
let blah = arguments[Symbol.iterator];
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
let result = [];
|
||||
for (let arg of blah()) {
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
tests/cases/compiler/betterErrorForAccidentallyCallingTypeAssertionExpressions.ts(3,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
|
||||
tests/cases/compiler/betterErrorForAccidentallyCallingTypeAssertionExpressions.ts(5,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
|
||||
tests/cases/compiler/betterErrorForAccidentallyCallingTypeAssertionExpressions.ts(7,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
|
||||
tests/cases/compiler/betterErrorForAccidentallyCallingTypeAssertionExpressions.ts(10,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
|
||||
tests/cases/compiler/betterErrorForAccidentallyCallingTypeAssertionExpressions.ts(13,1): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
|
||||
|
||||
|
||||
==== tests/cases/compiler/betterErrorForAccidentallyCallingTypeAssertionExpressions.ts (5 errors) ====
|
||||
declare function foo(): string;
|
||||
|
||||
foo()(1 as number).toString();
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
|
||||
|
||||
foo() (1 as number).toString();
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
|
||||
|
||||
foo()
|
||||
~~~~~
|
||||
(1 as number).toString();
|
||||
~~~~~~~~~~~~~
|
||||
!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
|
||||
!!! related TS2734 tests/cases/compiler/betterErrorForAccidentallyCallingTypeAssertionExpressions.ts:7:1: It is highly likely that you are missing a semicolon.
|
||||
|
||||
foo()
|
||||
~~~~~~~~
|
||||
(1 as number).toString();
|
||||
~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
|
||||
!!! related TS2734 tests/cases/compiler/betterErrorForAccidentallyCallingTypeAssertionExpressions.ts:10:1: It is highly likely that you are missing a semicolon.
|
||||
|
||||
foo()
|
||||
~~~~~~~~
|
||||
(<number>1).toString();
|
||||
~~~~~~~~~~~~~~~
|
||||
!!! error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures.
|
||||
!!! related TS2734 tests/cases/compiler/betterErrorForAccidentallyCallingTypeAssertionExpressions.ts:13:1: It is highly likely that you are missing a semicolon.
|
||||
|
||||
@ -0,0 +1,23 @@
|
||||
//// [betterErrorForAccidentallyCallingTypeAssertionExpressions.ts]
|
||||
declare function foo(): string;
|
||||
|
||||
foo()(1 as number).toString();
|
||||
|
||||
foo() (1 as number).toString();
|
||||
|
||||
foo()
|
||||
(1 as number).toString();
|
||||
|
||||
foo()
|
||||
(1 as number).toString();
|
||||
|
||||
foo()
|
||||
(<number>1).toString();
|
||||
|
||||
|
||||
//// [betterErrorForAccidentallyCallingTypeAssertionExpressions.js]
|
||||
foo()(1).toString();
|
||||
foo()(1).toString();
|
||||
foo()(1).toString();
|
||||
foo()(1).toString();
|
||||
foo()(1).toString();
|
||||
@ -0,0 +1,25 @@
|
||||
=== tests/cases/compiler/betterErrorForAccidentallyCallingTypeAssertionExpressions.ts ===
|
||||
declare function foo(): string;
|
||||
>foo : Symbol(foo, Decl(betterErrorForAccidentallyCallingTypeAssertionExpressions.ts, 0, 0))
|
||||
|
||||
foo()(1 as number).toString();
|
||||
>foo : Symbol(foo, Decl(betterErrorForAccidentallyCallingTypeAssertionExpressions.ts, 0, 0))
|
||||
|
||||
foo() (1 as number).toString();
|
||||
>foo : Symbol(foo, Decl(betterErrorForAccidentallyCallingTypeAssertionExpressions.ts, 0, 0))
|
||||
|
||||
foo()
|
||||
>foo : Symbol(foo, Decl(betterErrorForAccidentallyCallingTypeAssertionExpressions.ts, 0, 0))
|
||||
|
||||
(1 as number).toString();
|
||||
|
||||
foo()
|
||||
>foo : Symbol(foo, Decl(betterErrorForAccidentallyCallingTypeAssertionExpressions.ts, 0, 0))
|
||||
|
||||
(1 as number).toString();
|
||||
|
||||
foo()
|
||||
>foo : Symbol(foo, Decl(betterErrorForAccidentallyCallingTypeAssertionExpressions.ts, 0, 0))
|
||||
|
||||
(<number>1).toString();
|
||||
|
||||
@ -0,0 +1,60 @@
|
||||
=== tests/cases/compiler/betterErrorForAccidentallyCallingTypeAssertionExpressions.ts ===
|
||||
declare function foo(): string;
|
||||
>foo : () => string
|
||||
|
||||
foo()(1 as number).toString();
|
||||
>foo()(1 as number).toString() : any
|
||||
>foo()(1 as number).toString : any
|
||||
>foo()(1 as number) : any
|
||||
>foo() : string
|
||||
>foo : () => string
|
||||
>1 as number : number
|
||||
>1 : 1
|
||||
>toString : any
|
||||
|
||||
foo() (1 as number).toString();
|
||||
>foo() (1 as number).toString() : any
|
||||
>foo() (1 as number).toString : any
|
||||
>foo() (1 as number) : any
|
||||
>foo() : string
|
||||
>foo : () => string
|
||||
>1 as number : number
|
||||
>1 : 1
|
||||
>toString : any
|
||||
|
||||
foo()
|
||||
>foo()(1 as number).toString() : any
|
||||
>foo()(1 as number).toString : any
|
||||
>foo()(1 as number) : any
|
||||
>foo() : string
|
||||
>foo : () => string
|
||||
|
||||
(1 as number).toString();
|
||||
>1 as number : number
|
||||
>1 : 1
|
||||
>toString : any
|
||||
|
||||
foo()
|
||||
>foo() (1 as number).toString() : any
|
||||
>foo() (1 as number).toString : any
|
||||
>foo() (1 as number) : any
|
||||
>foo() : string
|
||||
>foo : () => string
|
||||
|
||||
(1 as number).toString();
|
||||
>1 as number : number
|
||||
>1 : 1
|
||||
>toString : any
|
||||
|
||||
foo()
|
||||
>foo() (<number>1).toString() : any
|
||||
>foo() (<number>1).toString : any
|
||||
>foo() (<number>1) : any
|
||||
>foo() : string
|
||||
>foo : () => string
|
||||
|
||||
(<number>1).toString();
|
||||
><number>1 : number
|
||||
>1 : 1
|
||||
>toString : any
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
tests/cases/conformance/salsa/bug24934.js(2,1): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/conformance/salsa/bug24934.js(2,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
|
||||
|
||||
==== tests/cases/conformance/salsa/bug24934.js (1 errors) ====
|
||||
export function abc(a, b, c) { return 5; }
|
||||
module.exports = { abc };
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
==== tests/cases/conformance/salsa/use.js (0 errors) ====
|
||||
import { abc } from './bug24934';
|
||||
abc(1, 2, 3);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(11,13): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(11,13): error TS2503: Cannot find namespace 'module'.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(11,13): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(11,19): error TS1005: ';' expected.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(22,35): error TS1005: ')' expected.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(22,39): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
|
||||
@ -21,8 +21,8 @@ tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(40,41): error TS
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(40,45): error TS1002: Unterminated string literal.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(41,21): error TS2304: Cannot find name 'retValue'.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(46,13): error TS1005: 'try' expected.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(47,17): error TS2304: Cannot find name 'console'.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(53,13): error TS2304: Cannot find name 'console'.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(47,17): error TS2584: Cannot find name 'console'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(53,13): error TS2584: Cannot find name 'console'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(58,5): error TS1128: Declaration or statement expected.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(69,13): error TS1109: Expression expected.
|
||||
tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(72,37): error TS1127: Invalid character.
|
||||
@ -103,9 +103,9 @@ tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(261,1): error TS
|
||||
|
||||
import fs = module("fs");
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
~~~~~~
|
||||
!!! error TS2503: Cannot find namespace 'module'.
|
||||
~~~~~~
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~
|
||||
!!! error TS1005: ';' expected.
|
||||
|
||||
@ -188,7 +188,7 @@ tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(261,1): error TS
|
||||
!!! error TS1005: 'try' expected.
|
||||
console.log(e);
|
||||
~~~~~~~
|
||||
!!! error TS2304: Cannot find name 'console'.
|
||||
!!! error TS2584: Cannot find name 'console'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'.
|
||||
}
|
||||
finally {
|
||||
|
||||
@ -196,7 +196,7 @@ tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(261,1): error TS
|
||||
|
||||
console.log('Done');
|
||||
~~~~~~~
|
||||
!!! error TS2304: Cannot find name 'console'.
|
||||
!!! error TS2584: Cannot find name 'console'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'.
|
||||
|
||||
return 0;
|
||||
|
||||
|
||||
23
tests/baselines/reference/declarationEmitOfFuncspace.js
Normal file
23
tests/baselines/reference/declarationEmitOfFuncspace.js
Normal file
@ -0,0 +1,23 @@
|
||||
//// [expando.ts]
|
||||
// #27032
|
||||
function ExpandoMerge(n: number) {
|
||||
return n;
|
||||
}
|
||||
namespace ExpandoMerge {
|
||||
export interface I { }
|
||||
}
|
||||
|
||||
|
||||
//// [expando.js]
|
||||
// #27032
|
||||
function ExpandoMerge(n) {
|
||||
return n;
|
||||
}
|
||||
|
||||
|
||||
//// [expando.d.ts]
|
||||
declare function ExpandoMerge(n: number): number;
|
||||
declare namespace ExpandoMerge {
|
||||
interface I {
|
||||
}
|
||||
}
|
||||
16
tests/baselines/reference/declarationEmitOfFuncspace.symbols
Normal file
16
tests/baselines/reference/declarationEmitOfFuncspace.symbols
Normal file
@ -0,0 +1,16 @@
|
||||
=== tests/cases/compiler/expando.ts ===
|
||||
// #27032
|
||||
function ExpandoMerge(n: number) {
|
||||
>ExpandoMerge : Symbol(ExpandoMerge, Decl(expando.ts, 0, 0), Decl(expando.ts, 3, 1))
|
||||
>n : Symbol(n, Decl(expando.ts, 1, 22))
|
||||
|
||||
return n;
|
||||
>n : Symbol(n, Decl(expando.ts, 1, 22))
|
||||
}
|
||||
namespace ExpandoMerge {
|
||||
>ExpandoMerge : Symbol(ExpandoMerge, Decl(expando.ts, 0, 0), Decl(expando.ts, 3, 1))
|
||||
|
||||
export interface I { }
|
||||
>I : Symbol(I, Decl(expando.ts, 4, 24))
|
||||
}
|
||||
|
||||
13
tests/baselines/reference/declarationEmitOfFuncspace.types
Normal file
13
tests/baselines/reference/declarationEmitOfFuncspace.types
Normal file
@ -0,0 +1,13 @@
|
||||
=== tests/cases/compiler/expando.ts ===
|
||||
// #27032
|
||||
function ExpandoMerge(n: number) {
|
||||
>ExpandoMerge : (n: number) => number
|
||||
>n : number
|
||||
|
||||
return n;
|
||||
>n : number
|
||||
}
|
||||
namespace ExpandoMerge {
|
||||
export interface I { }
|
||||
}
|
||||
|
||||
@ -7,7 +7,7 @@ error TS2318: Cannot find global type 'Object'.
|
||||
error TS2318: Cannot find global type 'RegExp'.
|
||||
error TS2318: Cannot find global type 'String'.
|
||||
tests/cases/compiler/decoratorMetadataNoLibIsolatedModulesTypes.ts(2,6): error TS2304: Cannot find name 'Decorate'.
|
||||
tests/cases/compiler/decoratorMetadataNoLibIsolatedModulesTypes.ts(3,13): error TS2304: Cannot find name 'Map'.
|
||||
tests/cases/compiler/decoratorMetadataNoLibIsolatedModulesTypes.ts(3,13): error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
|
||||
!!! error TS2318: Cannot find global type 'Array'.
|
||||
@ -25,6 +25,6 @@ tests/cases/compiler/decoratorMetadataNoLibIsolatedModulesTypes.ts(3,13): error
|
||||
!!! error TS2304: Cannot find name 'Decorate'.
|
||||
member: Map<string, number>;
|
||||
~~~
|
||||
!!! error TS2304: Cannot find name 'Map'.
|
||||
!!! error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
}
|
||||
|
||||
@ -1,22 +1,22 @@
|
||||
[96mtests/cases/compiler/deeplyNestedAssignabilityIssue.ts[0m:[93m22[0m:[93m17[0m - [91merror[0m[90m TS2322: [0mType '{}' is not assignable to type 'A'.
|
||||
Property 'a' is missing in type '{}'.
|
||||
|
||||
[30;47m22[0m thing: {}
|
||||
[30;47m [0m [91m ~~~~~[0m
|
||||
[7m22[0m thing: {}
|
||||
[7m [0m [91m ~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/deeplyNestedAssignabilityIssue.ts[0m:[93m9[0m:[93m17[0m
|
||||
[30;47m9[0m thing: A;
|
||||
[30;47m [0m [96m ~~~~~[0m
|
||||
[7m9[0m thing: A;
|
||||
[7m [0m [96m ~~~~~[0m
|
||||
The expected type comes from property 'thing' which is declared here on type '{ thing: A; }'
|
||||
[96mtests/cases/compiler/deeplyNestedAssignabilityIssue.ts[0m:[93m25[0m:[93m17[0m - [91merror[0m[90m TS2322: [0mType '{}' is not assignable to type 'A'.
|
||||
Property 'a' is missing in type '{}'.
|
||||
|
||||
[30;47m25[0m another: {}
|
||||
[30;47m [0m [91m ~~~~~~~[0m
|
||||
[7m25[0m another: {}
|
||||
[7m [0m [91m ~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/deeplyNestedAssignabilityIssue.ts[0m:[93m12[0m:[93m17[0m
|
||||
[30;47m12[0m another: A;
|
||||
[30;47m [0m [96m ~~~~~~~[0m
|
||||
[7m12[0m another: A;
|
||||
[7m [0m [96m ~~~~~~~[0m
|
||||
The expected type comes from property 'another' which is declared here on type '{ another: A; }'
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,51 @@
|
||||
tests/cases/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts(10,8): error TS2322: Type 'typeof Bar' is not assignable to type 'Bar'.
|
||||
Property 'x' is missing in type 'typeof Bar'.
|
||||
tests/cases/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts(11,8): error TS2322: Type 'DateConstructor' is not assignable to type 'Date'.
|
||||
Property 'toDateString' is missing in type 'DateConstructor'.
|
||||
tests/cases/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts(17,4): error TS2322: Type '() => number' is not assignable to type 'number'.
|
||||
tests/cases/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts(26,5): error TS2322: Type '() => number' is not assignable to type 'number'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts (4 errors) ====
|
||||
class Bar {
|
||||
x!: string;
|
||||
}
|
||||
|
||||
declare function getNum(): number;
|
||||
|
||||
declare function foo(arg: { x: Bar, y: Date }, item: number, items?: [number, number, number]): void;
|
||||
|
||||
foo({
|
||||
x: Bar,
|
||||
~~~
|
||||
!!! error TS2322: Type 'typeof Bar' is not assignable to type 'Bar'.
|
||||
!!! error TS2322: Property 'x' is missing in type 'typeof Bar'.
|
||||
!!! related TS6213 tests/cases/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts:10:8: Did you mean to use `new` with this expression?
|
||||
y: Date
|
||||
~~~~
|
||||
!!! error TS2322: Type 'DateConstructor' is not assignable to type 'Date'.
|
||||
!!! error TS2322: Property 'toDateString' is missing in type 'DateConstructor'.
|
||||
!!! related TS6213 tests/cases/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts:11:8: Did you mean to use `new` with this expression?
|
||||
}, getNum());
|
||||
|
||||
foo({
|
||||
x: new Bar(),
|
||||
y: new Date()
|
||||
}, getNum);
|
||||
~~~~~~
|
||||
!!! error TS2322: Type '() => number' is not assignable to type 'number'.
|
||||
!!! related TS6212 tests/cases/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts:17:4: Did you mean to call this expression?
|
||||
|
||||
|
||||
foo({
|
||||
x: new Bar(),
|
||||
y: new Date()
|
||||
}, getNum(), [
|
||||
1,
|
||||
2,
|
||||
getNum
|
||||
~~~~~~
|
||||
!!! error TS2322: Type '() => number' is not assignable to type 'number'.
|
||||
!!! related TS6212 tests/cases/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts:26:5: Did you mean to call this expression?
|
||||
]);
|
||||
|
||||
@ -0,0 +1,52 @@
|
||||
//// [didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts]
|
||||
class Bar {
|
||||
x!: string;
|
||||
}
|
||||
|
||||
declare function getNum(): number;
|
||||
|
||||
declare function foo(arg: { x: Bar, y: Date }, item: number, items?: [number, number, number]): void;
|
||||
|
||||
foo({
|
||||
x: Bar,
|
||||
y: Date
|
||||
}, getNum());
|
||||
|
||||
foo({
|
||||
x: new Bar(),
|
||||
y: new Date()
|
||||
}, getNum);
|
||||
|
||||
|
||||
foo({
|
||||
x: new Bar(),
|
||||
y: new Date()
|
||||
}, getNum(), [
|
||||
1,
|
||||
2,
|
||||
getNum
|
||||
]);
|
||||
|
||||
|
||||
//// [didYouMeanElaborationsForExpressionsWhichCouldBeCalled.js]
|
||||
var Bar = /** @class */ (function () {
|
||||
function Bar() {
|
||||
}
|
||||
return Bar;
|
||||
}());
|
||||
foo({
|
||||
x: Bar,
|
||||
y: Date
|
||||
}, getNum());
|
||||
foo({
|
||||
x: new Bar(),
|
||||
y: new Date()
|
||||
}, getNum);
|
||||
foo({
|
||||
x: new Bar(),
|
||||
y: new Date()
|
||||
}, getNum(), [
|
||||
1,
|
||||
2,
|
||||
getNum
|
||||
]);
|
||||
@ -0,0 +1,71 @@
|
||||
=== tests/cases/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts ===
|
||||
class Bar {
|
||||
>Bar : Symbol(Bar, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 0, 0))
|
||||
|
||||
x!: string;
|
||||
>x : Symbol(Bar.x, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 0, 11))
|
||||
}
|
||||
|
||||
declare function getNum(): number;
|
||||
>getNum : Symbol(getNum, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 2, 1))
|
||||
|
||||
declare function foo(arg: { x: Bar, y: Date }, item: number, items?: [number, number, number]): void;
|
||||
>foo : Symbol(foo, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 4, 34))
|
||||
>arg : Symbol(arg, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 6, 21))
|
||||
>x : Symbol(x, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 6, 27))
|
||||
>Bar : Symbol(Bar, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 0, 0))
|
||||
>y : Symbol(y, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 6, 35))
|
||||
>Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --))
|
||||
>item : Symbol(item, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 6, 46))
|
||||
>items : Symbol(items, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 6, 60))
|
||||
|
||||
foo({
|
||||
>foo : Symbol(foo, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 4, 34))
|
||||
|
||||
x: Bar,
|
||||
>x : Symbol(x, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 8, 5))
|
||||
>Bar : Symbol(Bar, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 0, 0))
|
||||
|
||||
y: Date
|
||||
>y : Symbol(y, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 9, 11))
|
||||
>Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --))
|
||||
|
||||
}, getNum());
|
||||
>getNum : Symbol(getNum, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 2, 1))
|
||||
|
||||
foo({
|
||||
>foo : Symbol(foo, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 4, 34))
|
||||
|
||||
x: new Bar(),
|
||||
>x : Symbol(x, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 13, 5))
|
||||
>Bar : Symbol(Bar, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 0, 0))
|
||||
|
||||
y: new Date()
|
||||
>y : Symbol(y, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 14, 17))
|
||||
>Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --))
|
||||
|
||||
}, getNum);
|
||||
>getNum : Symbol(getNum, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 2, 1))
|
||||
|
||||
|
||||
foo({
|
||||
>foo : Symbol(foo, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 4, 34))
|
||||
|
||||
x: new Bar(),
|
||||
>x : Symbol(x, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 19, 5))
|
||||
>Bar : Symbol(Bar, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 0, 0))
|
||||
|
||||
y: new Date()
|
||||
>y : Symbol(y, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 20, 17))
|
||||
>Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --))
|
||||
|
||||
}, getNum(), [
|
||||
>getNum : Symbol(getNum, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 2, 1))
|
||||
|
||||
1,
|
||||
2,
|
||||
getNum
|
||||
>getNum : Symbol(getNum, Decl(didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts, 2, 1))
|
||||
|
||||
]);
|
||||
|
||||
@ -0,0 +1,86 @@
|
||||
=== tests/cases/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.ts ===
|
||||
class Bar {
|
||||
>Bar : Bar
|
||||
|
||||
x!: string;
|
||||
>x : string
|
||||
}
|
||||
|
||||
declare function getNum(): number;
|
||||
>getNum : () => number
|
||||
|
||||
declare function foo(arg: { x: Bar, y: Date }, item: number, items?: [number, number, number]): void;
|
||||
>foo : (arg: { x: Bar; y: Date; }, item: number, items?: [number, number, number]) => void
|
||||
>arg : { x: Bar; y: Date; }
|
||||
>x : Bar
|
||||
>y : Date
|
||||
>item : number
|
||||
>items : [number, number, number]
|
||||
|
||||
foo({
|
||||
>foo({ x: Bar, y: Date}, getNum()) : void
|
||||
>foo : (arg: { x: Bar; y: Date; }, item: number, items?: [number, number, number]) => void
|
||||
>{ x: Bar, y: Date} : { x: typeof Bar; y: DateConstructor; }
|
||||
|
||||
x: Bar,
|
||||
>x : typeof Bar
|
||||
>Bar : typeof Bar
|
||||
|
||||
y: Date
|
||||
>y : DateConstructor
|
||||
>Date : DateConstructor
|
||||
|
||||
}, getNum());
|
||||
>getNum() : number
|
||||
>getNum : () => number
|
||||
|
||||
foo({
|
||||
>foo({ x: new Bar(), y: new Date()}, getNum) : void
|
||||
>foo : (arg: { x: Bar; y: Date; }, item: number, items?: [number, number, number]) => void
|
||||
>{ x: new Bar(), y: new Date()} : { x: Bar; y: Date; }
|
||||
|
||||
x: new Bar(),
|
||||
>x : Bar
|
||||
>new Bar() : Bar
|
||||
>Bar : typeof Bar
|
||||
|
||||
y: new Date()
|
||||
>y : Date
|
||||
>new Date() : Date
|
||||
>Date : DateConstructor
|
||||
|
||||
}, getNum);
|
||||
>getNum : () => number
|
||||
|
||||
|
||||
foo({
|
||||
>foo({ x: new Bar(), y: new Date()}, getNum(), [ 1, 2, getNum]) : void
|
||||
>foo : (arg: { x: Bar; y: Date; }, item: number, items?: [number, number, number]) => void
|
||||
>{ x: new Bar(), y: new Date()} : { x: Bar; y: Date; }
|
||||
|
||||
x: new Bar(),
|
||||
>x : Bar
|
||||
>new Bar() : Bar
|
||||
>Bar : typeof Bar
|
||||
|
||||
y: new Date()
|
||||
>y : Date
|
||||
>new Date() : Date
|
||||
>Date : DateConstructor
|
||||
|
||||
}, getNum(), [
|
||||
>getNum() : number
|
||||
>getNum : () => number
|
||||
>[ 1, 2, getNum] : (number | (() => number))[]
|
||||
|
||||
1,
|
||||
>1 : 1
|
||||
|
||||
2,
|
||||
>2 : 2
|
||||
|
||||
getNum
|
||||
>getNum : () => number
|
||||
|
||||
]);
|
||||
|
||||
@ -0,0 +1,88 @@
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(1,1): error TS2582: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(2,5): error TS2582: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(3,19): error TS2581: Cannot find name '$'. Do you need to install type definitions for jQuery? Try `npm i @types/jquery`.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(7,1): error TS2582: Cannot find name 'suite'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(8,5): error TS2582: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(9,9): error TS2584: Cannot find name 'console'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(9,21): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(10,9): error TS2584: Cannot find name 'document'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(12,19): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(13,19): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(14,19): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(16,23): error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(17,23): error TS2583: Cannot find name 'Set'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(18,23): error TS2583: Cannot find name 'WeakMap'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(19,23): error TS2583: Cannot find name 'WeakSet'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(20,19): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(21,19): error TS2585: 'Promise' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(23,18): error TS2583: Cannot find name 'Iterator'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/compiler/didYouMeanSuggestionErrors.ts(24,18): error TS2583: Cannot find name 'AsyncIterator'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
|
||||
==== tests/cases/compiler/didYouMeanSuggestionErrors.ts (19 errors) ====
|
||||
describe("my test suite", () => {
|
||||
~~~~~~~~
|
||||
!!! error TS2582: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
it("should run", () => {
|
||||
~~
|
||||
!!! error TS2582: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
const a = $(".thing");
|
||||
~
|
||||
!!! error TS2581: Cannot find name '$'. Do you need to install type definitions for jQuery? Try `npm i @types/jquery`.
|
||||
});
|
||||
});
|
||||
|
||||
suite("another suite", () => {
|
||||
~~~~~
|
||||
!!! error TS2582: Cannot find name 'suite'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
test("everything else", () => {
|
||||
~~~~
|
||||
!!! error TS2582: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
console.log(process.env);
|
||||
~~~~~~~
|
||||
!!! error TS2584: Cannot find name 'console'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'.
|
||||
~~~~~~~
|
||||
!!! error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
document.createElement("div");
|
||||
~~~~~~~~
|
||||
!!! error TS2584: Cannot find name 'document'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom'.
|
||||
|
||||
const x = require("fs");
|
||||
~~~~~~~
|
||||
!!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
const y = Buffer.from([]);
|
||||
~~~~~~
|
||||
!!! error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
const z = module.exports;
|
||||
~~~~~~
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
|
||||
const a = new Map();
|
||||
~~~
|
||||
!!! error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
const b = new Set();
|
||||
~~~
|
||||
!!! error TS2583: Cannot find name 'Set'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
const c = new WeakMap();
|
||||
~~~~~~~
|
||||
!!! error TS2583: Cannot find name 'WeakMap'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
const d = new WeakSet();
|
||||
~~~~~~~
|
||||
!!! error TS2583: Cannot find name 'WeakSet'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
const e = Symbol();
|
||||
~~~~~~
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
const f = Promise.resolve(0);
|
||||
~~~~~~~
|
||||
!!! error TS2585: 'Promise' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
const i: Iterator<any> = null as any;
|
||||
~~~~~~~~
|
||||
!!! error TS2583: Cannot find name 'Iterator'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
const j: AsyncIterator<any> = null as any;
|
||||
~~~~~~~~~~~~~
|
||||
!!! error TS2583: Cannot find name 'AsyncIterator'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
const k: Symbol = null as any;
|
||||
const l: Promise<any> = null as any;
|
||||
});
|
||||
});
|
||||
55
tests/baselines/reference/didYouMeanSuggestionErrors.js
Normal file
55
tests/baselines/reference/didYouMeanSuggestionErrors.js
Normal file
@ -0,0 +1,55 @@
|
||||
//// [didYouMeanSuggestionErrors.ts]
|
||||
describe("my test suite", () => {
|
||||
it("should run", () => {
|
||||
const a = $(".thing");
|
||||
});
|
||||
});
|
||||
|
||||
suite("another suite", () => {
|
||||
test("everything else", () => {
|
||||
console.log(process.env);
|
||||
document.createElement("div");
|
||||
|
||||
const x = require("fs");
|
||||
const y = Buffer.from([]);
|
||||
const z = module.exports;
|
||||
|
||||
const a = new Map();
|
||||
const b = new Set();
|
||||
const c = new WeakMap();
|
||||
const d = new WeakSet();
|
||||
const e = Symbol();
|
||||
const f = Promise.resolve(0);
|
||||
|
||||
const i: Iterator<any> = null as any;
|
||||
const j: AsyncIterator<any> = null as any;
|
||||
const k: Symbol = null as any;
|
||||
const l: Promise<any> = null as any;
|
||||
});
|
||||
});
|
||||
|
||||
//// [didYouMeanSuggestionErrors.js]
|
||||
describe("my test suite", function () {
|
||||
it("should run", function () {
|
||||
var a = $(".thing");
|
||||
});
|
||||
});
|
||||
suite("another suite", function () {
|
||||
test("everything else", function () {
|
||||
console.log(process.env);
|
||||
document.createElement("div");
|
||||
var x = require("fs");
|
||||
var y = Buffer.from([]);
|
||||
var z = module.exports;
|
||||
var a = new Map();
|
||||
var b = new Set();
|
||||
var c = new WeakMap();
|
||||
var d = new WeakSet();
|
||||
var e = Symbol();
|
||||
var f = Promise.resolve(0);
|
||||
var i = null;
|
||||
var j = null;
|
||||
var k = null;
|
||||
var l = null;
|
||||
});
|
||||
});
|
||||
57
tests/baselines/reference/didYouMeanSuggestionErrors.symbols
Normal file
57
tests/baselines/reference/didYouMeanSuggestionErrors.symbols
Normal file
@ -0,0 +1,57 @@
|
||||
=== tests/cases/compiler/didYouMeanSuggestionErrors.ts ===
|
||||
describe("my test suite", () => {
|
||||
it("should run", () => {
|
||||
const a = $(".thing");
|
||||
>a : Symbol(a, Decl(didYouMeanSuggestionErrors.ts, 2, 13))
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
suite("another suite", () => {
|
||||
test("everything else", () => {
|
||||
console.log(process.env);
|
||||
document.createElement("div");
|
||||
|
||||
const x = require("fs");
|
||||
>x : Symbol(x, Decl(didYouMeanSuggestionErrors.ts, 11, 13))
|
||||
|
||||
const y = Buffer.from([]);
|
||||
>y : Symbol(y, Decl(didYouMeanSuggestionErrors.ts, 12, 13))
|
||||
|
||||
const z = module.exports;
|
||||
>z : Symbol(z, Decl(didYouMeanSuggestionErrors.ts, 13, 13))
|
||||
|
||||
const a = new Map();
|
||||
>a : Symbol(a, Decl(didYouMeanSuggestionErrors.ts, 15, 13))
|
||||
|
||||
const b = new Set();
|
||||
>b : Symbol(b, Decl(didYouMeanSuggestionErrors.ts, 16, 13))
|
||||
|
||||
const c = new WeakMap();
|
||||
>c : Symbol(c, Decl(didYouMeanSuggestionErrors.ts, 17, 13))
|
||||
|
||||
const d = new WeakSet();
|
||||
>d : Symbol(d, Decl(didYouMeanSuggestionErrors.ts, 18, 13))
|
||||
|
||||
const e = Symbol();
|
||||
>e : Symbol(e, Decl(didYouMeanSuggestionErrors.ts, 19, 13))
|
||||
|
||||
const f = Promise.resolve(0);
|
||||
>f : Symbol(f, Decl(didYouMeanSuggestionErrors.ts, 20, 13))
|
||||
|
||||
const i: Iterator<any> = null as any;
|
||||
>i : Symbol(i, Decl(didYouMeanSuggestionErrors.ts, 22, 13))
|
||||
|
||||
const j: AsyncIterator<any> = null as any;
|
||||
>j : Symbol(j, Decl(didYouMeanSuggestionErrors.ts, 23, 13))
|
||||
|
||||
const k: Symbol = null as any;
|
||||
>k : Symbol(k, Decl(didYouMeanSuggestionErrors.ts, 24, 13))
|
||||
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --))
|
||||
|
||||
const l: Promise<any> = null as any;
|
||||
>l : Symbol(l, Decl(didYouMeanSuggestionErrors.ts, 25, 13))
|
||||
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --))
|
||||
|
||||
});
|
||||
});
|
||||
125
tests/baselines/reference/didYouMeanSuggestionErrors.types
Normal file
125
tests/baselines/reference/didYouMeanSuggestionErrors.types
Normal file
@ -0,0 +1,125 @@
|
||||
=== tests/cases/compiler/didYouMeanSuggestionErrors.ts ===
|
||||
describe("my test suite", () => {
|
||||
>describe("my test suite", () => { it("should run", () => { const a = $(".thing"); });}) : any
|
||||
>describe : any
|
||||
>"my test suite" : "my test suite"
|
||||
>() => { it("should run", () => { const a = $(".thing"); });} : () => void
|
||||
|
||||
it("should run", () => {
|
||||
>it("should run", () => { const a = $(".thing"); }) : any
|
||||
>it : any
|
||||
>"should run" : "should run"
|
||||
>() => { const a = $(".thing"); } : () => void
|
||||
|
||||
const a = $(".thing");
|
||||
>a : any
|
||||
>$(".thing") : any
|
||||
>$ : any
|
||||
>".thing" : ".thing"
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
suite("another suite", () => {
|
||||
>suite("another suite", () => { test("everything else", () => { console.log(process.env); document.createElement("div"); const x = require("fs"); const y = Buffer.from([]); const z = module.exports; const a = new Map(); const b = new Set(); const c = new WeakMap(); const d = new WeakSet(); const e = Symbol(); const f = Promise.resolve(0); const i: Iterator<any> = null as any; const j: AsyncIterator<any> = null as any; const k: Symbol = null as any; const l: Promise<any> = null as any; });}) : any
|
||||
>suite : any
|
||||
>"another suite" : "another suite"
|
||||
>() => { test("everything else", () => { console.log(process.env); document.createElement("div"); const x = require("fs"); const y = Buffer.from([]); const z = module.exports; const a = new Map(); const b = new Set(); const c = new WeakMap(); const d = new WeakSet(); const e = Symbol(); const f = Promise.resolve(0); const i: Iterator<any> = null as any; const j: AsyncIterator<any> = null as any; const k: Symbol = null as any; const l: Promise<any> = null as any; });} : () => void
|
||||
|
||||
test("everything else", () => {
|
||||
>test("everything else", () => { console.log(process.env); document.createElement("div"); const x = require("fs"); const y = Buffer.from([]); const z = module.exports; const a = new Map(); const b = new Set(); const c = new WeakMap(); const d = new WeakSet(); const e = Symbol(); const f = Promise.resolve(0); const i: Iterator<any> = null as any; const j: AsyncIterator<any> = null as any; const k: Symbol = null as any; const l: Promise<any> = null as any; }) : any
|
||||
>test : any
|
||||
>"everything else" : "everything else"
|
||||
>() => { console.log(process.env); document.createElement("div"); const x = require("fs"); const y = Buffer.from([]); const z = module.exports; const a = new Map(); const b = new Set(); const c = new WeakMap(); const d = new WeakSet(); const e = Symbol(); const f = Promise.resolve(0); const i: Iterator<any> = null as any; const j: AsyncIterator<any> = null as any; const k: Symbol = null as any; const l: Promise<any> = null as any; } : () => void
|
||||
|
||||
console.log(process.env);
|
||||
>console.log(process.env) : any
|
||||
>console.log : any
|
||||
>console : any
|
||||
>log : any
|
||||
>process.env : any
|
||||
>process : any
|
||||
>env : any
|
||||
|
||||
document.createElement("div");
|
||||
>document.createElement("div") : any
|
||||
>document.createElement : any
|
||||
>document : any
|
||||
>createElement : any
|
||||
>"div" : "div"
|
||||
|
||||
const x = require("fs");
|
||||
>x : any
|
||||
>require("fs") : any
|
||||
>require : any
|
||||
>"fs" : "fs"
|
||||
|
||||
const y = Buffer.from([]);
|
||||
>y : any
|
||||
>Buffer.from([]) : any
|
||||
>Buffer.from : any
|
||||
>Buffer : any
|
||||
>from : any
|
||||
>[] : undefined[]
|
||||
|
||||
const z = module.exports;
|
||||
>z : any
|
||||
>module.exports : any
|
||||
>module : any
|
||||
>exports : any
|
||||
|
||||
const a = new Map();
|
||||
>a : any
|
||||
>new Map() : any
|
||||
>Map : any
|
||||
|
||||
const b = new Set();
|
||||
>b : any
|
||||
>new Set() : any
|
||||
>Set : any
|
||||
|
||||
const c = new WeakMap();
|
||||
>c : any
|
||||
>new WeakMap() : any
|
||||
>WeakMap : any
|
||||
|
||||
const d = new WeakSet();
|
||||
>d : any
|
||||
>new WeakSet() : any
|
||||
>WeakSet : any
|
||||
|
||||
const e = Symbol();
|
||||
>e : any
|
||||
>Symbol() : any
|
||||
>Symbol : any
|
||||
|
||||
const f = Promise.resolve(0);
|
||||
>f : any
|
||||
>Promise.resolve(0) : any
|
||||
>Promise.resolve : any
|
||||
>Promise : any
|
||||
>resolve : any
|
||||
>0 : 0
|
||||
|
||||
const i: Iterator<any> = null as any;
|
||||
>i : any
|
||||
>null as any : any
|
||||
>null : null
|
||||
|
||||
const j: AsyncIterator<any> = null as any;
|
||||
>j : any
|
||||
>null as any : any
|
||||
>null : null
|
||||
|
||||
const k: Symbol = null as any;
|
||||
>k : Symbol
|
||||
>null as any : any
|
||||
>null : null
|
||||
|
||||
const l: Promise<any> = null as any;
|
||||
>l : Promise<any>
|
||||
>null as any : any
|
||||
>null : null
|
||||
|
||||
});
|
||||
});
|
||||
@ -1,64 +1,64 @@
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m1[0m:[93m7[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'Foo'.
|
||||
|
||||
[30;47m1[0m class Foo { }
|
||||
[30;47m [0m [91m ~~~[0m
|
||||
[7m1[0m class Foo { }
|
||||
[7m [0m [91m ~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m1[0m:[93m6[0m
|
||||
[30;47m1[0m type Foo = number;
|
||||
[30;47m [0m [96m ~~~[0m
|
||||
[7m1[0m type Foo = number;
|
||||
[7m [0m [96m ~~~[0m
|
||||
'Foo' was also declared here.
|
||||
[96mtests/cases/compiler/file3.ts[0m:[93m1[0m:[93m6[0m
|
||||
[30;47m1[0m type Foo = 54;
|
||||
[30;47m [0m [96m ~~~[0m
|
||||
[7m1[0m type Foo = 54;
|
||||
[7m [0m [96m ~~~[0m
|
||||
and here.
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m2[0m:[93m7[0m - [91merror[0m[90m TS2451: [0mCannot redeclare block-scoped variable 'Bar'.
|
||||
|
||||
[30;47m2[0m const Bar = 3;
|
||||
[30;47m [0m [91m ~~~[0m
|
||||
[7m2[0m const Bar = 3;
|
||||
[7m [0m [91m ~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m2[0m:[93m7[0m
|
||||
[30;47m2[0m class Bar {}
|
||||
[30;47m [0m [96m ~~~[0m
|
||||
[7m2[0m class Bar {}
|
||||
[7m [0m [96m ~~~[0m
|
||||
'Bar' was also declared here.
|
||||
[96mtests/cases/compiler/file3.ts[0m:[93m2[0m:[93m5[0m
|
||||
[30;47m2[0m let Bar = 42
|
||||
[30;47m [0m [96m ~~~[0m
|
||||
[7m2[0m let Bar = 42
|
||||
[7m [0m [96m ~~~[0m
|
||||
and here.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m1[0m:[93m6[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'Foo'.
|
||||
|
||||
[30;47m1[0m type Foo = number;
|
||||
[30;47m [0m [91m ~~~[0m
|
||||
[7m1[0m type Foo = number;
|
||||
[7m [0m [91m ~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m1[0m:[93m7[0m
|
||||
[30;47m1[0m class Foo { }
|
||||
[30;47m [0m [96m ~~~[0m
|
||||
[7m1[0m class Foo { }
|
||||
[7m [0m [96m ~~~[0m
|
||||
'Foo' was also declared here.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m2[0m:[93m7[0m - [91merror[0m[90m TS2451: [0mCannot redeclare block-scoped variable 'Bar'.
|
||||
|
||||
[30;47m2[0m class Bar {}
|
||||
[30;47m [0m [91m ~~~[0m
|
||||
[7m2[0m class Bar {}
|
||||
[7m [0m [91m ~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m2[0m:[93m7[0m
|
||||
[30;47m2[0m const Bar = 3;
|
||||
[30;47m [0m [96m ~~~[0m
|
||||
[7m2[0m const Bar = 3;
|
||||
[7m [0m [96m ~~~[0m
|
||||
'Bar' was also declared here.
|
||||
[96mtests/cases/compiler/file3.ts[0m:[93m1[0m:[93m6[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'Foo'.
|
||||
|
||||
[30;47m1[0m type Foo = 54;
|
||||
[30;47m [0m [91m ~~~[0m
|
||||
[7m1[0m type Foo = 54;
|
||||
[7m [0m [91m ~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m1[0m:[93m7[0m
|
||||
[30;47m1[0m class Foo { }
|
||||
[30;47m [0m [96m ~~~[0m
|
||||
[7m1[0m class Foo { }
|
||||
[7m [0m [96m ~~~[0m
|
||||
'Foo' was also declared here.
|
||||
[96mtests/cases/compiler/file3.ts[0m:[93m2[0m:[93m5[0m - [91merror[0m[90m TS2451: [0mCannot redeclare block-scoped variable 'Bar'.
|
||||
|
||||
[30;47m2[0m let Bar = 42
|
||||
[30;47m [0m [91m ~~~[0m
|
||||
[7m2[0m let Bar = 42
|
||||
[7m [0m [91m ~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m2[0m:[93m7[0m
|
||||
[30;47m2[0m const Bar = 3;
|
||||
[30;47m [0m [96m ~~~[0m
|
||||
[7m2[0m const Bar = 3;
|
||||
[7m [0m [96m ~~~[0m
|
||||
'Bar' was also declared here.
|
||||
|
||||
|
||||
|
||||
@ -1,20 +1,20 @@
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m1[0m:[93m1[0m - [91merror[0m[90m TS6200: [0mDefinitions of the following identifiers conflict with those in another file: A, B, C, D, E, F, G, H, I
|
||||
|
||||
[30;47m1[0m class A { }
|
||||
[30;47m [0m [91m~~~~~[0m
|
||||
[7m1[0m class A { }
|
||||
[7m [0m [91m~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m1[0m:[93m1[0m
|
||||
[30;47m1[0m class A { }
|
||||
[30;47m [0m [96m~~~~~[0m
|
||||
[7m1[0m class A { }
|
||||
[7m [0m [96m~~~~~[0m
|
||||
Conflicts are in this file.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m1[0m:[93m1[0m - [91merror[0m[90m TS6200: [0mDefinitions of the following identifiers conflict with those in another file: A, B, C, D, E, F, G, H, I
|
||||
|
||||
[30;47m1[0m class A { }
|
||||
[30;47m [0m [91m~~~~~[0m
|
||||
[7m1[0m class A { }
|
||||
[7m [0m [91m~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m1[0m:[93m1[0m
|
||||
[30;47m1[0m class A { }
|
||||
[30;47m [0m [96m~~~~~[0m
|
||||
[7m1[0m class A { }
|
||||
[7m [0m [96m~~~~~[0m
|
||||
Conflicts are in this file.
|
||||
|
||||
|
||||
|
||||
@ -1,56 +1,56 @@
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m2[0m:[93m5[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate1'.
|
||||
|
||||
[30;47m2[0m duplicate1: () => string;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m2[0m duplicate1: () => string;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m2[0m:[93m5[0m
|
||||
[30;47m2[0m duplicate1(): number;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m2[0m duplicate1(): number;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate1' was also declared here.
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m3[0m:[93m5[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate2'.
|
||||
|
||||
[30;47m3[0m duplicate2: () => string;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m3[0m duplicate2: () => string;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m3[0m:[93m5[0m
|
||||
[30;47m3[0m duplicate2(): number;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m3[0m duplicate2(): number;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate2' was also declared here.
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m4[0m:[93m5[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate3'.
|
||||
|
||||
[30;47m4[0m duplicate3: () => string;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m4[0m duplicate3: () => string;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m4[0m:[93m5[0m
|
||||
[30;47m4[0m duplicate3(): number;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m4[0m duplicate3(): number;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate3' was also declared here.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m2[0m:[93m5[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate1'.
|
||||
|
||||
[30;47m2[0m duplicate1(): number;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m2[0m duplicate1(): number;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m2[0m:[93m5[0m
|
||||
[30;47m2[0m duplicate1: () => string;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m2[0m duplicate1: () => string;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate1' was also declared here.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m3[0m:[93m5[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate2'.
|
||||
|
||||
[30;47m3[0m duplicate2(): number;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m3[0m duplicate2(): number;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m3[0m:[93m5[0m
|
||||
[30;47m3[0m duplicate2: () => string;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m3[0m duplicate2: () => string;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate2' was also declared here.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m4[0m:[93m5[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate3'.
|
||||
|
||||
[30;47m4[0m duplicate3(): number;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m4[0m duplicate3(): number;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m4[0m:[93m5[0m
|
||||
[30;47m4[0m duplicate3: () => string;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m4[0m duplicate3: () => string;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate3' was also declared here.
|
||||
|
||||
|
||||
|
||||
@ -1,20 +1,20 @@
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m1[0m:[93m1[0m - [91merror[0m[90m TS6200: [0mDefinitions of the following identifiers conflict with those in another file: duplicate1, duplicate2, duplicate3, duplicate4, duplicate5, duplicate6, duplicate7, duplicate8
|
||||
|
||||
[30;47m1[0m interface TopLevel {
|
||||
[30;47m [0m [91m~~~~~~~~~[0m
|
||||
[7m1[0m interface TopLevel {
|
||||
[7m [0m [91m~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m1[0m:[93m1[0m
|
||||
[30;47m1[0m interface TopLevel {
|
||||
[30;47m [0m [96m~~~~~~~~~[0m
|
||||
[7m1[0m interface TopLevel {
|
||||
[7m [0m [96m~~~~~~~~~[0m
|
||||
Conflicts are in this file.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m1[0m:[93m1[0m - [91merror[0m[90m TS6200: [0mDefinitions of the following identifiers conflict with those in another file: duplicate1, duplicate2, duplicate3, duplicate4, duplicate5, duplicate6, duplicate7, duplicate8
|
||||
|
||||
[30;47m1[0m interface TopLevel {
|
||||
[30;47m [0m [91m~~~~~~~~~[0m
|
||||
[7m1[0m interface TopLevel {
|
||||
[7m [0m [91m~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m1[0m:[93m1[0m
|
||||
[30;47m1[0m interface TopLevel {
|
||||
[30;47m [0m [96m~~~~~~~~~[0m
|
||||
[7m1[0m interface TopLevel {
|
||||
[7m [0m [96m~~~~~~~~~[0m
|
||||
Conflicts are in this file.
|
||||
|
||||
|
||||
|
||||
@ -1,56 +1,56 @@
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m3[0m:[93m9[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate1'.
|
||||
|
||||
[30;47m3[0m duplicate1: () => string;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m3[0m duplicate1: () => string;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m4[0m:[93m9[0m
|
||||
[30;47m4[0m duplicate1(): number;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m4[0m duplicate1(): number;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate1' was also declared here.
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m4[0m:[93m9[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate2'.
|
||||
|
||||
[30;47m4[0m duplicate2: () => string;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m4[0m duplicate2: () => string;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m5[0m:[93m9[0m
|
||||
[30;47m5[0m duplicate2(): number;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m5[0m duplicate2(): number;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate2' was also declared here.
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m5[0m:[93m9[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate3'.
|
||||
|
||||
[30;47m5[0m duplicate3: () => string;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m5[0m duplicate3: () => string;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m6[0m:[93m9[0m
|
||||
[30;47m6[0m duplicate3(): number;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m6[0m duplicate3(): number;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate3' was also declared here.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m4[0m:[93m9[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate1'.
|
||||
|
||||
[30;47m4[0m duplicate1(): number;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m4[0m duplicate1(): number;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m3[0m:[93m9[0m
|
||||
[30;47m3[0m duplicate1: () => string;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m3[0m duplicate1: () => string;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate1' was also declared here.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m5[0m:[93m9[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate2'.
|
||||
|
||||
[30;47m5[0m duplicate2(): number;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m5[0m duplicate2(): number;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m4[0m:[93m9[0m
|
||||
[30;47m4[0m duplicate2: () => string;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m4[0m duplicate2: () => string;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate2' was also declared here.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m6[0m:[93m9[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate3'.
|
||||
|
||||
[30;47m6[0m duplicate3(): number;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m6[0m duplicate3(): number;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m5[0m:[93m9[0m
|
||||
[30;47m5[0m duplicate3: () => string;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m5[0m duplicate3: () => string;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate3' was also declared here.
|
||||
|
||||
|
||||
|
||||
@ -1,56 +1,56 @@
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m3[0m:[93m9[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate1'.
|
||||
|
||||
[30;47m3[0m duplicate1: () => string;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m3[0m duplicate1: () => string;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m5[0m:[93m9[0m
|
||||
[30;47m5[0m duplicate1(): number;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m5[0m duplicate1(): number;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate1' was also declared here.
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m4[0m:[93m9[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate2'.
|
||||
|
||||
[30;47m4[0m duplicate2: () => string;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m4[0m duplicate2: () => string;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m6[0m:[93m9[0m
|
||||
[30;47m6[0m duplicate2(): number;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m6[0m duplicate2(): number;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate2' was also declared here.
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m5[0m:[93m9[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate3'.
|
||||
|
||||
[30;47m5[0m duplicate3: () => string;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m5[0m duplicate3: () => string;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m7[0m:[93m9[0m
|
||||
[30;47m7[0m duplicate3(): number;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m7[0m duplicate3(): number;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate3' was also declared here.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m5[0m:[93m9[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate1'.
|
||||
|
||||
[30;47m5[0m duplicate1(): number;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m5[0m duplicate1(): number;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m3[0m:[93m9[0m
|
||||
[30;47m3[0m duplicate1: () => string;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m3[0m duplicate1: () => string;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate1' was also declared here.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m6[0m:[93m9[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate2'.
|
||||
|
||||
[30;47m6[0m duplicate2(): number;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m6[0m duplicate2(): number;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m4[0m:[93m9[0m
|
||||
[30;47m4[0m duplicate2: () => string;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m4[0m duplicate2: () => string;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate2' was also declared here.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m7[0m:[93m9[0m - [91merror[0m[90m TS2300: [0mDuplicate identifier 'duplicate3'.
|
||||
|
||||
[30;47m7[0m duplicate3(): number;
|
||||
[30;47m [0m [91m ~~~~~~~~~~[0m
|
||||
[7m7[0m duplicate3(): number;
|
||||
[7m [0m [91m ~~~~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m5[0m:[93m9[0m
|
||||
[30;47m5[0m duplicate3: () => string;
|
||||
[30;47m [0m [96m ~~~~~~~~~~[0m
|
||||
[7m5[0m duplicate3: () => string;
|
||||
[7m [0m [96m ~~~~~~~~~~[0m
|
||||
'duplicate3' was also declared here.
|
||||
|
||||
|
||||
|
||||
@ -1,20 +1,20 @@
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m1[0m:[93m1[0m - [91merror[0m[90m TS6200: [0mDefinitions of the following identifiers conflict with those in another file: duplicate1, duplicate2, duplicate3, duplicate4, duplicate5, duplicate6, duplicate7, duplicate8, duplicate9
|
||||
|
||||
[30;47m1[0m declare module "someMod" {
|
||||
[30;47m [0m [91m~~~~~~~[0m
|
||||
[7m1[0m declare module "someMod" {
|
||||
[7m [0m [91m~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m3[0m:[93m1[0m
|
||||
[30;47m3[0m declare module "someMod" {
|
||||
[30;47m [0m [96m~~~~~~~[0m
|
||||
[7m3[0m declare module "someMod" {
|
||||
[7m [0m [96m~~~~~~~[0m
|
||||
Conflicts are in this file.
|
||||
[96mtests/cases/compiler/file2.ts[0m:[93m3[0m:[93m1[0m - [91merror[0m[90m TS6200: [0mDefinitions of the following identifiers conflict with those in another file: duplicate1, duplicate2, duplicate3, duplicate4, duplicate5, duplicate6, duplicate7, duplicate8, duplicate9
|
||||
|
||||
[30;47m3[0m declare module "someMod" {
|
||||
[30;47m [0m [91m~~~~~~~[0m
|
||||
[7m3[0m declare module "someMod" {
|
||||
[7m [0m [91m~~~~~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/file1.ts[0m:[93m1[0m:[93m1[0m
|
||||
[30;47m1[0m declare module "someMod" {
|
||||
[30;47m [0m [96m~~~~~~~[0m
|
||||
[7m1[0m declare module "someMod" {
|
||||
[7m [0m [96m~~~~~~~[0m
|
||||
Conflicts are in this file.
|
||||
|
||||
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
[96mtests/cases/compiler/index.ts[0m:[93m3[0m:[93m8[0m - [91merror[0m[90m TS2345: [0mArgument of type '{ default: () => void; }' is not assignable to parameter of type '() => void'.
|
||||
Type '{ default: () => void; }' provides no match for the signature '(): void'.
|
||||
|
||||
[30;47m3[0m invoke(foo);
|
||||
[30;47m [0m [91m ~~~[0m
|
||||
[7m3[0m invoke(foo);
|
||||
[7m [0m [91m ~~~[0m
|
||||
|
||||
[96mtests/cases/compiler/index.ts[0m:[93m1[0m:[93m1[0m
|
||||
[30;47m1[0m import * as foo from "./foo";
|
||||
[30;47m [0m [96m~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[0m
|
||||
[7m1[0m import * as foo from "./foo";
|
||||
[7m [0m [96m~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[0m
|
||||
Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
tests/cases/compiler/externModule.ts(1,1): error TS2304: Cannot find name 'declare'.
|
||||
tests/cases/compiler/externModule.ts(1,9): error TS1005: ';' expected.
|
||||
tests/cases/compiler/externModule.ts(1,9): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/compiler/externModule.ts(1,9): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/externModule.ts(1,16): error TS1005: ';' expected.
|
||||
tests/cases/compiler/externModule.ts(3,10): error TS2391: Function implementation is missing or not immediately following the declaration.
|
||||
tests/cases/compiler/externModule.ts(4,10): error TS2391: Function implementation is missing or not immediately following the declaration.
|
||||
@ -21,7 +21,7 @@ tests/cases/compiler/externModule.ts(37,3): error TS2552: Cannot find name 'XDat
|
||||
~~~~~~
|
||||
!!! error TS1005: ';' expected.
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~
|
||||
!!! error TS1005: ';' expected.
|
||||
export class XDate {
|
||||
|
||||
@ -50,9 +50,9 @@ tests/cases/conformance/fixSignatureCaching.ts(915,36): error TS2339: Property '
|
||||
tests/cases/conformance/fixSignatureCaching.ts(915,53): error TS2339: Property 'mobileDetectRules' does not exist on type '{}'.
|
||||
tests/cases/conformance/fixSignatureCaching.ts(955,42): error TS2339: Property 'mobileGrade' does not exist on type '{}'.
|
||||
tests/cases/conformance/fixSignatureCaching.ts(964,57): error TS2339: Property 'getDeviceSmallerSide' does not exist on type '{}'.
|
||||
tests/cases/conformance/fixSignatureCaching.ts(978,16): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/conformance/fixSignatureCaching.ts(978,42): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/conformance/fixSignatureCaching.ts(979,37): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/conformance/fixSignatureCaching.ts(978,16): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/conformance/fixSignatureCaching.ts(978,42): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/conformance/fixSignatureCaching.ts(979,37): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/conformance/fixSignatureCaching.ts(980,23): error TS2304: Cannot find name 'define'.
|
||||
tests/cases/conformance/fixSignatureCaching.ts(980,48): error TS2304: Cannot find name 'define'.
|
||||
tests/cases/conformance/fixSignatureCaching.ts(981,16): error TS2304: Cannot find name 'define'.
|
||||
@ -1143,12 +1143,12 @@ tests/cases/conformance/fixSignatureCaching.ts(983,44): error TS2339: Property '
|
||||
})((function (undefined) {
|
||||
if (typeof module !== 'undefined' && module.exports) {
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
return function (factory) { module.exports = factory(); };
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
} else if (typeof define === 'function' && define.amd) {
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'define'.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
tests/cases/compiler/functionSignatureAssignmentCompat1.ts(10,5): error TS2322: Type '(delimiter?: string) => ParserFunc' is not assignable to type 'ParserFunc'.
|
||||
tests/cases/compiler/functionSignatureAssignmentCompat1.ts(10,21): error TS2322: Type '(delimiter?: string) => ParserFunc' is not assignable to type 'ParserFunc'.
|
||||
Types of parameters 'delimiter' and 'eventEmitter' are incompatible.
|
||||
Type 'number' is not assignable to type 'string'.
|
||||
|
||||
@ -14,8 +14,9 @@ tests/cases/compiler/functionSignatureAssignmentCompat1.ts(10,5): error TS2322:
|
||||
var parsers: Parsers;
|
||||
var c: ParserFunc = parsers.raw; // ok!
|
||||
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 'number' is not assignable to type 'string'.
|
||||
!!! related TS6212 tests/cases/compiler/functionSignatureAssignmentCompat1.ts:10:21: Did you mean to call this expression?
|
||||
var e: ParserFunc = parsers.readline(); // ok
|
||||
@ -1,4 +1,4 @@
|
||||
tests/cases/compiler/innerModExport1.ts(5,5): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/compiler/innerModExport1.ts(5,5): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/innerModExport1.ts(5,12): error TS1005: ';' expected.
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ tests/cases/compiler/innerModExport1.ts(5,12): error TS1005: ';' expected.
|
||||
var non_export_var: number;
|
||||
module {
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~
|
||||
!!! error TS1005: ';' expected.
|
||||
var non_export_var = 0;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
tests/cases/compiler/innerModExport2.ts(5,5): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/compiler/innerModExport2.ts(5,5): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/innerModExport2.ts(5,12): error TS1005: ';' expected.
|
||||
tests/cases/compiler/innerModExport2.ts(7,20): error TS2395: Individual declarations in merged declaration 'export_var' must be all exported or all local.
|
||||
tests/cases/compiler/innerModExport2.ts(13,9): error TS2395: Individual declarations in merged declaration 'export_var' must be all exported or all local.
|
||||
@ -12,7 +12,7 @@ tests/cases/compiler/innerModExport2.ts(20,7): error TS2339: Property 'NonExport
|
||||
var non_export_var: number;
|
||||
module {
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~
|
||||
!!! error TS1005: ';' expected.
|
||||
var non_export_var = 0;
|
||||
|
||||
@ -7,7 +7,7 @@ tests/cases/conformance/types/primitives/void/invalidAssignmentsToVoid.ts(10,1):
|
||||
tests/cases/conformance/types/primitives/void/invalidAssignmentsToVoid.ts(14,1): error TS2322: Type 'I' is not assignable to type 'void'.
|
||||
tests/cases/conformance/types/primitives/void/invalidAssignmentsToVoid.ts(17,1): error TS2322: Type 'typeof M' is not assignable to type 'void'.
|
||||
tests/cases/conformance/types/primitives/void/invalidAssignmentsToVoid.ts(20,5): error TS2322: Type 'T' is not assignable to type 'void'.
|
||||
tests/cases/conformance/types/primitives/void/invalidAssignmentsToVoid.ts(22,1): error TS2322: Type '<T>(a: T) => void' is not assignable to type 'void'.
|
||||
tests/cases/conformance/types/primitives/void/invalidAssignmentsToVoid.ts(22,5): error TS2322: Type '<T>(a: T) => void' is not assignable to type 'void'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/types/primitives/void/invalidAssignmentsToVoid.ts (10 errors) ====
|
||||
@ -51,5 +51,6 @@ tests/cases/conformance/types/primitives/void/invalidAssignmentsToVoid.ts(22,1):
|
||||
!!! error TS2322: Type 'T' is not assignable to type 'void'.
|
||||
}
|
||||
x = f;
|
||||
~
|
||||
!!! error TS2322: Type '<T>(a: T) => void' is not assignable to type 'void'.
|
||||
~
|
||||
!!! error TS2322: Type '<T>(a: T) => void' is not assignable to type 'void'.
|
||||
!!! related TS6212 tests/cases/conformance/types/primitives/void/invalidAssignmentsToVoid.ts:22:5: Did you mean to call this expression?
|
||||
@ -8,7 +8,7 @@ tests/cases/conformance/types/primitives/void/invalidVoidValues.ts(16,1): error
|
||||
tests/cases/conformance/types/primitives/void/invalidVoidValues.ts(18,1): error TS2322: Type '{ f(): void; }' is not assignable to type 'void'.
|
||||
tests/cases/conformance/types/primitives/void/invalidVoidValues.ts(21,1): error TS2322: Type 'typeof M' is not assignable to type 'void'.
|
||||
tests/cases/conformance/types/primitives/void/invalidVoidValues.ts(24,5): error TS2322: Type 'T' is not assignable to type 'void'.
|
||||
tests/cases/conformance/types/primitives/void/invalidVoidValues.ts(26,1): error TS2322: Type '<T>(a: T) => void' is not assignable to type 'void'.
|
||||
tests/cases/conformance/types/primitives/void/invalidVoidValues.ts(26,5): error TS2322: Type '<T>(a: T) => void' is not assignable to type 'void'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/types/primitives/void/invalidVoidValues.ts (11 errors) ====
|
||||
@ -58,5 +58,6 @@ tests/cases/conformance/types/primitives/void/invalidVoidValues.ts(26,1): error
|
||||
!!! error TS2322: Type 'T' is not assignable to type 'void'.
|
||||
}
|
||||
x = f;
|
||||
~
|
||||
!!! error TS2322: Type '<T>(a: T) => void' is not assignable to type 'void'.
|
||||
~
|
||||
!!! error TS2322: Type '<T>(a: T) => void' is not assignable to type 'void'.
|
||||
!!! related TS6212 tests/cases/conformance/types/primitives/void/invalidVoidValues.ts:26:5: Did you mean to call this expression?
|
||||
@ -1,5 +1,5 @@
|
||||
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(6,6): error TS17008: JSX element 'any' has no corresponding closing tag.
|
||||
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(6,13): error TS2304: Cannot find name 'test'.
|
||||
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(6,13): error TS2582: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(6,17): error TS1005: '}' expected.
|
||||
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(8,6): error TS17008: JSX element 'any' has no corresponding closing tag.
|
||||
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(10,6): error TS17008: JSX element 'foo' has no corresponding closing tag.
|
||||
@ -24,7 +24,7 @@ tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(21,1): error TS1005: '</' ex
|
||||
~~~
|
||||
!!! error TS17008: JSX element 'any' has no corresponding closing tag.
|
||||
~~~~
|
||||
!!! error TS2304: Cannot find name 'test'.
|
||||
!!! error TS2582: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
~
|
||||
!!! error TS1005: '}' expected.
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
tests/cases/compiler/metadataImportType.ts(2,6): error TS2304: Cannot find name 'test'.
|
||||
tests/cases/compiler/metadataImportType.ts(2,6): error TS2582: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
tests/cases/compiler/metadataImportType.ts(3,15): error TS2307: Cannot find module './b'.
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ tests/cases/compiler/metadataImportType.ts(3,15): error TS2307: Cannot find modu
|
||||
export class A {
|
||||
@test
|
||||
~~~~
|
||||
!!! error TS2304: Cannot find name 'test'.
|
||||
!!! error TS2582: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
b: import('./b').B
|
||||
~~~~~
|
||||
!!! error TS2307: Cannot find module './b'.
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(4,18): error TS2339: Property 'from' does not exist on type 'ArrayConstructor'.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(10,13): error TS2304: Cannot find name 'Map'.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(10,13): error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(17,5): error TS2339: Property 'name' does not exist on type '() => void'.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(20,6): error TS2551: Property 'sign' does not exist on type 'Math'. Did you mean 'sin'?
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(25,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(29,18): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(25,6): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(29,18): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(33,13): error TS2304: Cannot find name 'Proxy'.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(36,1): error TS2304: Cannot find name 'Reflect'.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(40,5): error TS2339: Property 'flags' does not exist on type 'RegExp'.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(44,5): error TS2339: Property 'includes' does not exist on type 'string'.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(47,9): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(51,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(47,9): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts(51,6): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
|
||||
==== tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.ts (12 errors) ====
|
||||
@ -26,7 +26,7 @@ tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.t
|
||||
// Using ES6 collection
|
||||
var m = new Map<string, number>();
|
||||
~~~
|
||||
!!! error TS2304: Cannot find name 'Map'.
|
||||
!!! error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
m.clear();
|
||||
// Using ES6 iterable
|
||||
m.keys();
|
||||
@ -48,13 +48,13 @@ tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.t
|
||||
a: 2,
|
||||
[Symbol.hasInstance](value: any) {
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
return false;
|
||||
}
|
||||
};
|
||||
o.hasOwnProperty(Symbol.hasInstance);
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
// Using Es6 proxy
|
||||
var t = {}
|
||||
@ -82,13 +82,13 @@ tests/cases/compiler/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.t
|
||||
// Using ES6 symbol
|
||||
var s = Symbol();
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
// Using ES6 wellknown-symbol
|
||||
const o1 = {
|
||||
[Symbol.hasInstance](value: any) {
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingWellknownSymbolWithOutES6WellknownSymbolLib.ts(7,1): error TS2322: Type 'false' is not assignable to type 'string'.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingWellknownSymbolWithOutES6WellknownSymbolLib.ts(7,3): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/compiler/modularizeLibrary_ErrorFromUsingWellknownSymbolWithOutES6WellknownSymbolLib.ts(7,3): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
|
||||
==== tests/cases/compiler/modularizeLibrary_ErrorFromUsingWellknownSymbolWithOutES6WellknownSymbolLib.ts (2 errors) ====
|
||||
@ -13,4 +13,4 @@ tests/cases/compiler/modularizeLibrary_ErrorFromUsingWellknownSymbolWithOutES6We
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'false' is not assignable to type 'string'.
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
@ -1,5 +1,5 @@
|
||||
tests/cases/compiler/moduleExports1.ts(13,6): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/compiler/moduleExports1.ts(13,22): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/compiler/moduleExports1.ts(13,6): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/moduleExports1.ts(13,22): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
|
||||
|
||||
==== tests/cases/compiler/moduleExports1.ts (2 errors) ====
|
||||
@ -17,6 +17,6 @@ tests/cases/compiler/moduleExports1.ts(13,22): error TS2304: Cannot find name 'm
|
||||
|
||||
if (!module.exports) module.exports = "";
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
@ -1,4 +1,4 @@
|
||||
tests/cases/compiler/moduleKeywordRepeatError.ts(3,1): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/compiler/moduleKeywordRepeatError.ts(3,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/compiler/moduleKeywordRepeatError.ts(3,15): error TS1005: ';' expected.
|
||||
|
||||
|
||||
@ -7,6 +7,6 @@ tests/cases/compiler/moduleKeywordRepeatError.ts(3,15): error TS1005: ';' expect
|
||||
|
||||
module.module { }
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~
|
||||
!!! error TS1005: ';' expected.
|
||||
@ -1,12 +1,12 @@
|
||||
[96mtests/cases/compiler/multiLineContextDiagnosticWithPretty.ts[0m:[93m2[0m:[93m5[0m - [91merror[0m[90m TS2322: [0mType '{ a: { b: string; }; }' is not assignable to type '{ c: string; }'.
|
||||
Object literal may only specify known properties, and 'a' does not exist in type '{ c: string; }'.
|
||||
|
||||
[30;47m2[0m a: {
|
||||
[30;47m [0m [91m ~~~~[0m
|
||||
[30;47m3[0m b: '',
|
||||
[30;47m [0m [91m~~~~~~~~~~~~~~[0m
|
||||
[30;47m4[0m }
|
||||
[30;47m [0m [91m~~~~~[0m
|
||||
[7m2[0m a: {
|
||||
[7m [0m [91m ~~~~[0m
|
||||
[7m3[0m b: '',
|
||||
[7m [0m [91m~~~~~~~~~~~~~~[0m
|
||||
[7m4[0m }
|
||||
[7m [0m [91m~~~~~[0m
|
||||
|
||||
|
||||
==== tests/cases/compiler/multiLineContextDiagnosticWithPretty.ts (1 errors) ====
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
tests/cases/conformance/jsdoc/bug26693.js(1,15): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/conformance/jsdoc/bug26693.js(1,15): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/conformance/jsdoc/bug26693.js(1,21): error TS1005: '}' expected.
|
||||
tests/cases/conformance/jsdoc/bug26693.js(2,22): error TS2307: Cannot find module 'nope'.
|
||||
|
||||
@ -6,7 +6,7 @@ tests/cases/conformance/jsdoc/bug26693.js(2,22): error TS2307: Cannot find modul
|
||||
==== tests/cases/conformance/jsdoc/bug26693.js (3 errors) ====
|
||||
/** @typedef {module:locale} hi */
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~
|
||||
!!! error TS1005: '}' expected.
|
||||
import { nope } from 'nope';
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
tests/cases/compiler/optionalParamAssignmentCompat.ts(10,5): error TS2322: Type '(p1?: string) => I1' is not assignable to type 'I1'.
|
||||
tests/cases/compiler/optionalParamAssignmentCompat.ts(10,13): error TS2322: Type '(p1?: string) => I1' is not assignable to type 'I1'.
|
||||
Types of parameters 'p1' and 'p1' are incompatible.
|
||||
Type 'number' is not assignable to type 'string'.
|
||||
|
||||
@ -14,8 +14,9 @@ tests/cases/compiler/optionalParamAssignmentCompat.ts(10,5): error TS2322: Type
|
||||
var i2: I2;
|
||||
var c: I1 = i2.p1; // should be ok
|
||||
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 'number' is not assignable to type 'string'.
|
||||
!!! related TS6212 tests/cases/compiler/optionalParamAssignmentCompat.ts:10:13: Did you mean to call this expression?
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(1,14): error TS1005: '(' expected.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(2,3): error TS1128: Declaration or statement expected.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(2,10): error TS2304: Cannot find name 'test'.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(2,10): error TS2582: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(3,3): error TS1128: Declaration or statement expected.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(3,10): error TS2304: Cannot find name 'test'.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(3,10): error TS2582: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(3,15): error TS2304: Cannot find name 'name'.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(3,19): error TS1005: ',' expected.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(3,20): error TS2693: 'string' only refers to a type, but is being used as a value here.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(4,3): error TS1128: Declaration or statement expected.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(4,10): error TS2304: Cannot find name 'test'.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(4,10): error TS2582: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(4,15): error TS2304: Cannot find name 'name'.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(4,20): error TS1109: Expression expected.
|
||||
tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(4,21): error TS2693: 'any' only refers to a type, but is being used as a value here.
|
||||
@ -22,12 +22,12 @@ tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(4,25): error TS100
|
||||
~~~~~~
|
||||
!!! error TS1128: Declaration or statement expected.
|
||||
~~~~
|
||||
!!! error TS2304: Cannot find name 'test'.
|
||||
!!! error TS2582: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
static test(name:string)
|
||||
~~~~~~
|
||||
!!! error TS1128: Declaration or statement expected.
|
||||
~~~~
|
||||
!!! error TS2304: Cannot find name 'test'.
|
||||
!!! error TS2582: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
~~~~
|
||||
!!! error TS2304: Cannot find name 'name'.
|
||||
~
|
||||
@ -38,7 +38,7 @@ tests/cases/compiler/overloadingStaticFunctionsInFunctions.ts(4,25): error TS100
|
||||
~~~~~~
|
||||
!!! error TS1128: Declaration or statement expected.
|
||||
~~~~
|
||||
!!! error TS2304: Cannot find name 'test'.
|
||||
!!! error TS2582: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
|
||||
~~~~
|
||||
!!! error TS2304: Cannot find name 'name'.
|
||||
~
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509534.ts(2,14): error TS2304: Cannot find name 'require'.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509534.ts(3,1): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509534.ts(2,14): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509534.ts(3,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509534.ts (2 errors) ====
|
||||
"use strict";
|
||||
var config = require("../config");
|
||||
~~~~~~~
|
||||
!!! error TS2304: Cannot find name 'require'.
|
||||
!!! error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
module.exports.route = function (server) {
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
|
||||
// General Login Page
|
||||
server.get(config.env.siteRoot + "/auth/login", function (req, res, next) {
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509693.ts(1,6): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509693.ts(1,22): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509693.ts(1,6): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509693.ts(1,22): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509693.ts (2 errors) ====
|
||||
if (!module.exports) module.exports = "";
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
@ -1,14 +1,14 @@
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser519458.ts(1,15): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser519458.ts(1,15): error TS2503: Cannot find namespace 'module'.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser519458.ts(1,15): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser519458.ts(1,21): error TS1005: ';' expected.
|
||||
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser519458.ts (3 errors) ====
|
||||
import rect = module("rect"); var bar = new rect.Rect();
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
~~~~~~
|
||||
!!! error TS2503: Cannot find namespace 'module'.
|
||||
~~~~~~
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~
|
||||
!!! error TS1005: ';' expected.
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser521128.ts(1,1): error TS2304: Cannot find name 'module'.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser521128.ts(1,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser521128.ts(1,15): error TS1005: ';' expected.
|
||||
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser521128.ts (2 errors) ====
|
||||
module.module { }
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name 'module'.
|
||||
!!! error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i @types/node`.
|
||||
~
|
||||
!!! error TS1005: ';' expected.
|
||||
@ -1,6 +1,6 @@
|
||||
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'.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts(7,5): error TS2322: Type '() => (x: string) => string' is not assignable to type '(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'.
|
||||
tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts(8,5): error TS2322: Type '() => (x: string) => string' is not assignable to type '(x: string) => string'.
|
||||
Type '(x: string) => string' is not assignable to type 'string'.
|
||||
|
||||
|
||||
@ -13,10 +13,12 @@ tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts(8,5):
|
||||
foo(g);
|
||||
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 TS2322: Type '() => (x: string) => string' is not assignable to type '(x: string) => string'.
|
||||
!!! error TS2322: Type '(x: string) => string' is not assignable to type 'string'.
|
||||
!!! related TS6212 tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts:7:5: Did you mean to call this expression?
|
||||
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 TS2322: Type '() => (x: string) => string' is not assignable to type '(x: string) => string'.
|
||||
!!! error TS2322: Type '(x: string) => string' is not assignable to type 'string'.
|
||||
!!! related TS6212 tests/cases/conformance/parser/ecmascript5/RegressionTests/parser536727.ts:8:5: Did you mean to call this expression?
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserCommaInTypeMemberList2.ts(1,9): error TS2304: Cannot find name '$'.
|
||||
tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserCommaInTypeMemberList2.ts(1,9): error TS2581: Cannot find name '$'. Do you need to install type definitions for jQuery? Try `npm i @types/jquery`.
|
||||
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserCommaInTypeMemberList2.ts (1 errors) ====
|
||||
var s = $.extend< { workItem: any }, { workItem: any, width: string }>({ workItem: this._workItem }, {});
|
||||
~
|
||||
!!! error TS2304: Cannot find name '$'.
|
||||
!!! error TS2581: Cannot find name '$'. Do you need to install type definitions for jQuery? Try `npm i @types/jquery`.
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty1.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty1.ts(2,6): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty1.ts (1 errors) ====
|
||||
interface I {
|
||||
[Symbol.iterator]: string;
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
}
|
||||
@ -1,9 +1,9 @@
|
||||
tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty2.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty2.ts(2,6): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty2.ts (1 errors) ====
|
||||
interface I {
|
||||
[Symbol.unscopables](): string;
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
}
|
||||
@ -1,9 +1,9 @@
|
||||
tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty3.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty3.ts(2,6): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty3.ts (1 errors) ====
|
||||
declare class C {
|
||||
[Symbol.unscopables](): string;
|
||||
~~~~~~
|
||||
!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here.
|
||||
!!! error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user