Merge pull request #13999 from Microsoft/semicolon

Fix "semicolon" lint rule options (was not enabled)
This commit is contained in:
Andy
2017-03-03 07:19:21 -08:00
committed by GitHub
27 changed files with 55 additions and 57 deletions
+2 -2
View File
@@ -141,7 +141,7 @@ namespace ts {
getAugmentedPropertiesOfType,
getRootSymbols,
getContextualType: node => {
node = getParseTreeNode(node, isExpression)
node = getParseTreeNode(node, isExpression);
return node ? getContextualType(node) : undefined;
},
getFullyQualifiedName,
@@ -20674,7 +20674,7 @@ namespace ts {
}
if (potentialNewTargetCollisions.length) {
forEach(potentialNewTargetCollisions, checkIfNewTargetIsCapturedInEnclosingScope)
forEach(potentialNewTargetCollisions, checkIfNewTargetIsCapturedInEnclosingScope);
potentialNewTargetCollisions.length = 0;
}
+2 -2
View File
@@ -84,7 +84,7 @@ namespace ts {
this.index++;
return { value: this.selector(this.data, this.keys[index]), done: false };
}
return { value: undefined as never, done: true }
return { value: undefined as never, done: true };
}
}
@@ -140,7 +140,7 @@ namespace ts {
action(this.data[key], key);
}
}
}
};
}
export function createFileMap<T>(keyMapper?: (key: string) => string): FileMap<T> {
+1 -1
View File
@@ -1164,7 +1164,7 @@ namespace ts {
emitTypeParameters(node.typeParameters);
const baseTypeNode = getClassExtendsHeritageClauseElement(node);
if (baseTypeNode) {
node.name
node.name;
emitHeritageClause(node.name, [baseTypeNode], /*isImplementsList*/ false);
}
emitHeritageClause(node.name, getClassImplementsHeritageClauseElements(node), /*isImplementsList*/ true);
+2 -2
View File
@@ -675,7 +675,7 @@ namespace ts {
}
export function nodeModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache): ResolvedModuleWithFailedLookupLocations {
return nodeModuleNameResolverWorker(moduleName, containingFile, compilerOptions, host, cache, /* jsOnly*/ false);
return nodeModuleNameResolverWorker(moduleName, containingFile, compilerOptions, host, cache, /*jsOnly*/ false);
}
/* @internal */
@@ -962,7 +962,7 @@ namespace ts {
const result = cache && cache.get(containingDirectory);
if (result) {
if (traceEnabled) {
trace(host, Diagnostics.Resolution_for_module_0_was_found_in_cache, moduleName)
trace(host, Diagnostics.Resolution_for_module_0_was_found_in_cache, moduleName);
}
return { value: result.resolvedModule && { path: result.resolvedModule.resolvedFileName, extension: result.resolvedModule.extension } };
}
+2 -2
View File
@@ -121,13 +121,13 @@ namespace ts {
enableEmitNotification,
isSubstitutionEnabled,
isEmitNotificationEnabled,
get onSubstituteNode() { return onSubstituteNode },
get onSubstituteNode() { return onSubstituteNode; },
set onSubstituteNode(value) {
Debug.assert(state < TransformationState.Initialized, "Cannot modify transformation hooks after initialization has completed.");
Debug.assert(value !== undefined, "Value must not be 'undefined'");
onSubstituteNode = value;
},
get onEmitNode() { return onEmitNode },
get onEmitNode() { return onEmitNode; },
set onEmitNode(value) {
Debug.assert(state < TransformationState.Initialized, "Cannot modify transformation hooks after initialization has completed.");
Debug.assert(value !== undefined, "Value must not be 'undefined'");
+1 -1
View File
@@ -2690,7 +2690,7 @@ namespace ts {
if (loopOutParameters.length) {
copyOutParameters(loopOutParameters, CopyDirection.ToOutParameter, statements);
}
addRange(statements, lexicalEnvironment)
addRange(statements, lexicalEnvironment);
loopBody = createBlock(statements, /*multiline*/ true);
}
+1 -1
View File
@@ -1152,7 +1152,7 @@ namespace ts {
createIdentifier("__esModule"),
createLiteral(true)
)
)
);
}
else {
statement = createStatement(
+1 -1
View File
@@ -3297,7 +3297,7 @@
}
export interface PluginImport {
name: string
name: string;
}
export type CompilerOptionsValue = string | number | boolean | (string | number)[] | string[] | MapLike<string[]> | PluginImport[];
+4 -4
View File
@@ -585,7 +585,7 @@ namespace FourSlash {
}
private getGoToDefinition(): ts.DefinitionInfo[] {
return this.languageService.getDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition)
return this.languageService.getDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition);
}
public verifyGoToType(arg0: any, endMarkerNames?: string | string[]) {
@@ -926,7 +926,7 @@ namespace FourSlash {
function rangeToReferenceEntry(r: Range) {
let { isWriteAccess, isDefinition } = (r.marker && r.marker.data) || { isWriteAccess: false, isDefinition: false };
isWriteAccess = !!isWriteAccess; isDefinition = !!isDefinition;
return { fileName: r.fileName, textSpan: { start: r.start, length: r.end - r.start }, isWriteAccess, isDefinition }
return { fileName: r.fileName, textSpan: { start: r.start, length: r.end - r.start }, isWriteAccess, isDefinition };
}
}
@@ -2136,7 +2136,7 @@ namespace FourSlash {
const result = includeWhiteSpace
? actualText === expectedText
: this.removeWhitespace(actualText) === this.removeWhitespace(expectedText)
: this.removeWhitespace(actualText) === this.removeWhitespace(expectedText);
if (!result) {
this.raiseError(`Actual text doesn't match expected text. Actual:\n'${actualText}'\nExpected:\n'${expectedText}'`);
@@ -2173,7 +2173,7 @@ namespace FourSlash {
start: diagnostic.start,
length: diagnostic.length,
code: diagnostic.code
}
};
});
const dedupedDiagnositcs = ts.deduplicate(diagnosticsForCodeFix, ts.equalOwnProperties);
+2 -2
View File
@@ -44,7 +44,7 @@ declare namespace NodeJS {
declare var window: {};
declare var XMLHttpRequest: {
new(): XMLHttpRequest;
}
};
interface XMLHttpRequest {
readonly readyState: number;
readonly responseText: string;
@@ -1017,7 +1017,7 @@ namespace Harness {
}
else {
if (!es6TestLibFileNameSourceFileMap.get(libFileName)) {
es6TestLibFileNameSourceFileMap.set(libFileName, createSourceFileAndAssertInvariants(libFileName, IO.readFile(libFileName), scriptTarget))
es6TestLibFileNameSourceFileMap.set(libFileName, createSourceFileAndAssertInvariants(libFileName, IO.readFile(libFileName), scriptTarget));
}
}
}
+1 -1
View File
@@ -779,7 +779,7 @@ namespace Harness.LanguageService {
start: 0
});
return prev;
}
};
return proxy;
}
}),
+1 -1
View File
@@ -496,7 +496,7 @@ namespace ts.projectSystem {
const emitOutput = host.readFile(path + ".js");
assert.equal(emitOutput, f.content + newLine, "content of emit output should be identical with the input + newline");
}
})
});
it("should emit specified file", () => {
const file1 = {
+1 -1
View File
@@ -9,7 +9,7 @@ namespace ts {
Harness.Baseline.runBaseline(`printerApi/${prefix}.${name}.js`, () =>
printCallback(createPrinter({ newLine: NewLineKind.CarriageReturnLineFeed, ...options })));
});
}
};
}
describe("printFile", () => {
+1 -1
View File
@@ -65,6 +65,6 @@ namespace ts.textStorage {
ts1.getLineInfo(0);
assert.isTrue(ts1.hasScriptVersionCache(), "have script version cache - 2");
})
});
});
}
@@ -628,7 +628,7 @@ namespace ts.projectSystem {
checkProjectActualFiles(service.configuredProjects[0], []);
checkProjectActualFiles(service.inferredProjects[0], [f1.path]);
})
});
it("create configured project without file list", () => {
const configFile: FileOrFolder = {
@@ -1181,7 +1181,7 @@ namespace ts.projectSystem {
const host = createServerHost([f1, f2, libFile]);
const service = createProjectService(host);
service.openExternalProject({ projectFileName: "/a/b/project", rootFiles: toExternalFiles([f1.path, f2.path]), options: {} })
service.openExternalProject({ projectFileName: "/a/b/project", rootFiles: toExternalFiles([f1.path, f2.path]), options: {} });
service.openClientFile(f1.path);
service.openClientFile(f2.path, "let x: string");
@@ -1213,7 +1213,7 @@ namespace ts.projectSystem {
const host = createServerHost([f1, f2, libFile]);
const service = createProjectService(host);
service.openExternalProject({ projectFileName: "/a/b/project", rootFiles: [{ fileName: f1.path }, { fileName: f2.path, hasMixedContent: true }], options: {} })
service.openExternalProject({ projectFileName: "/a/b/project", rootFiles: [{ fileName: f1.path }, { fileName: f2.path, hasMixedContent: true }], options: {} });
service.openClientFile(f1.path);
service.openClientFile(f2.path, "let somelongname: string");
@@ -2040,7 +2040,7 @@ namespace ts.projectSystem {
for (const f of [f2, f3]) {
const scriptInfo = projectService.getScriptInfoForNormalizedPath(server.toNormalizedPath(f.path));
assert.equal(scriptInfo.containingProjects.length, 0, `expect 0 containing projects for '${f.path}'`)
assert.equal(scriptInfo.containingProjects.length, 0, `expect 0 containing projects for '${f.path}'`);
}
});
@@ -2156,7 +2156,7 @@ namespace ts.projectSystem {
projectFileName,
rootFiles: [toExternalFile(f1.path)],
options: {}
})
});
projectService.openClientFile(f1.path, "let x = 1;\nlet y = 2;");
projectService.checkNumberOfProjects({ externalProjects: 1 });
@@ -3307,12 +3307,12 @@ namespace ts.projectSystem {
isCancellationRequested: () => false,
setRequest: requestId => {
if (expectedRequestId === undefined) {
assert.isTrue(false, "unexpected call")
assert.isTrue(false, "unexpected call");
}
assert.equal(requestId, expectedRequestId);
},
resetRequest: noop
}
};
const session = createSession(host, /*typingsInstaller*/ undefined, /*projectServiceEventHandler*/ undefined, cancellationToken);
expectedRequestId = session.getNextSeq();
@@ -3359,13 +3359,13 @@ namespace ts.projectSystem {
currentId = requestId;
},
resetRequest(requestId) {
assert.equal(requestId, currentId, "unexpected request id in cancellation")
assert.equal(requestId, currentId, "unexpected request id in cancellation");
currentId = undefined;
},
isCancellationRequested() {
return requestToCancel === currentId;
}
}
};
})();
const host = createServerHost([f1, config]);
const session = createSession(host, /*typingsInstaller*/ undefined, () => {}, cancellationToken);
+2 -2
View File
@@ -56,7 +56,7 @@ namespace ts.projectSystem {
path: "/a/config.js",
content: "export let x = 1"
};
const typesCache = "/cache"
const typesCache = "/cache";
const typesConfig = {
path: typesCache + "/node_modules/@types/config/index.d.ts",
content: "export let y: number;"
@@ -74,7 +74,7 @@ namespace ts.projectSystem {
super(host, { typesRegistry: createTypesRegistry("config"), globalTypingsCacheLocation: typesCache });
}
installWorker(_requestId: number, _args: string[], _cwd: string, _cb: server.typingsInstaller.RequestCompletedAction) {
assert(false, "should not be called")
assert(false, "should not be called");
}
})();
const service = createProjectService(host, { typingsInstaller: installer });
+2 -2
View File
@@ -140,7 +140,7 @@ namespace ts.server {
getScriptKind: _ => undefined,
hasMixedContent: (fileName, extraFileExtensions) => {
const mixedContentExtensions = ts.map(ts.filter(extraFileExtensions, item => item.isMixedContent), item => item.extension);
return forEach(mixedContentExtensions, extension => fileExtensionIs(fileName, extension))
return forEach(mixedContentExtensions, extension => fileExtensionIs(fileName, extension));
}
};
@@ -1377,7 +1377,7 @@ namespace ts.server {
// close projects that were missing in the input list
forEachKey(projectsToClose, externalProjectName => {
this.closeExternalProject(externalProjectName, /*suppressRefresh*/ true)
this.closeExternalProject(externalProjectName, /*suppressRefresh*/ true);
});
this.refreshInferredProjects();
+2 -2
View File
@@ -723,7 +723,7 @@ namespace ts.server {
const fileName = resolvedTypeReferenceDirective.resolvedFileName;
const typeFilePath = toPath(fileName, currentDirectory, getCanonicalFileName);
referencedFiles.set(typeFilePath, true);
})
});
}
const allFileNames = arrayFrom(referencedFiles.keys()) as Path[];
@@ -745,7 +745,7 @@ namespace ts.server {
const id = nextId;
nextId++;
return makeInferredProjectName(id);
}
};
})();
private _isJsInferredProject = false;
+1 -1
View File
@@ -48,7 +48,7 @@ namespace ts.server {
public reloadFromFile(tempFileName?: string) {
if (this.svc || (tempFileName !== this.fileName)) {
this.reload(this.getFileText(tempFileName))
this.reload(this.getFileText(tempFileName));
}
else {
this.setText(undefined);
+3 -3
View File
@@ -47,14 +47,14 @@ namespace ts.server {
if (process.env.XDG_CACHE_HOME) {
return process.env.XDG_CACHE_HOME;
}
const usersDir = platformIsDarwin ? "Users" : "home"
const usersDir = platformIsDarwin ? "Users" : "home";
const homePath = (os.homedir && os.homedir()) ||
process.env.HOME ||
((process.env.LOGNAME || process.env.USER) && `/${usersDir}/${process.env.LOGNAME || process.env.USER}`) ||
os.tmpdir();
const cacheFolder = platformIsDarwin
? "Library/Caches"
: ".cache"
: ".cache";
return combinePaths(normalizeSlashes(homePath), cacheFolder);
}
@@ -653,7 +653,7 @@ namespace ts.server {
// this drive is unsafe - return no-op watcher
return { close() { } };
}
}
};
}
// Override sys.write because fs.writeSync is not reliable on Node 4
+5 -5
View File
@@ -226,7 +226,7 @@ namespace ts.server {
/**
* Represents operation that can schedule its next step to be executed later.
* Scheduling is done via instance of NextStep. If on current step subsequent step was not scheduled - operation is assumed to be completed.
* Scheduling is done via instance of NextStep. If on current step subsequent step was not scheduled - operation is assumed to be completed.
*/
class MultistepOperation {
private requestId: number;
@@ -239,7 +239,7 @@ namespace ts.server {
this.next = {
immediate: action => this.immediate(action),
delay: (ms, action) => this.delay(ms, action)
}
};
}
public startNew(action: (next: NextStep) => void) {
@@ -262,7 +262,7 @@ namespace ts.server {
private immediate(action: () => void) {
const requestId = this.requestId;
Debug.assert(requestId === this.operationHost.getCurrentRequestId(), "immediate: incorrect request id")
Debug.assert(requestId === this.operationHost.getCurrentRequestId(), "immediate: incorrect request id");
this.setImmediateId(this.operationHost.getServerHost().setImmediate(() => {
this.immediateId = undefined;
this.operationHost.executeWithRequestId(requestId, () => this.executeAction(action));
@@ -271,7 +271,7 @@ namespace ts.server {
private delay(ms: number, action: () => void) {
const requestId = this.requestId;
Debug.assert(requestId === this.operationHost.getCurrentRequestId(), "delay: incorrect request id")
Debug.assert(requestId === this.operationHost.getCurrentRequestId(), "delay: incorrect request id");
this.setTimerHandle(this.operationHost.getServerHost().setTimeout(() => {
this.timerHandle = undefined;
this.operationHost.executeWithRequestId(requestId, () => this.executeAction(action));
@@ -351,7 +351,7 @@ namespace ts.server {
logError: (err, cmd) => this.logError(err, cmd),
sendRequestCompletedEvent: requestId => this.sendRequestCompletedEvent(requestId),
isCancellationRequested: () => cancellationToken.isCancellationRequested()
}
};
this.errorCheck = new MultistepOperation(multistepOperationHost);
this.projectService = new ProjectService(host, logger, cancellationToken, useSingleInferredProject, typingsInstaller, this.eventHander);
this.gcTimer = new GcTimer(host, /*delay*/ 7000, logger);
@@ -61,9 +61,7 @@ namespace ts.server.typingsInstaller {
return combinePaths(normalizeSlashes(globalTypingsCacheLocation), `node_modules/${TypesRegistryPackageName}/index.json`);
}
type ExecSync = {
(command: string, options: { cwd: string, stdio?: "ignore" }): any
}
type ExecSync = (command: string, options: { cwd: string, stdio?: "ignore" }) => any;
export class NodeTypingsInstaller extends TypingsInstaller {
private readonly execSync: ExecSync;
+1 -1
View File
@@ -11,7 +11,7 @@ const fs: { watch(directoryName: string, options: any, callback: () => {}): any
// This means that here we treat any result (success or exception) from fs.watch as success since it does not tear down the process.
// The only case that should be considered as failure - when watchGuard process crashes.
try {
const watcher = fs.watch(directoryName, { recursive: true }, () => ({}))
const watcher = fs.watch(directoryName, { recursive: true }, () => ({}));
watcher.close();
}
catch (_e) {
+3 -3
View File
@@ -3,8 +3,8 @@ namespace ts.codefix {
type ImportCodeActionKind = "CodeChange" | "InsertingIntoExistingImport" | "NewImport";
interface ImportCodeAction extends CodeAction {
kind: ImportCodeActionKind,
moduleSpecifier?: string
kind: ImportCodeActionKind;
moduleSpecifier?: string;
}
enum ModuleSpecifierComparison {
@@ -75,7 +75,7 @@ namespace ts.codefix {
getAllActions() {
let result: ImportCodeAction[] = [];
for (const key in this.symbolIdToActionMap) {
result = concatenate(result, this.symbolIdToActionMap[key])
result = concatenate(result, this.symbolIdToActionMap[key]);
}
return result;
}
+2 -2
View File
@@ -422,7 +422,7 @@ namespace ts.FindAllReferences {
name,
textSpan: references[0].textSpan,
displayParts: [{ text: name, kind: ScriptElementKind.keyword }]
}
};
return [{ definition, references }];
}
@@ -613,7 +613,7 @@ namespace ts.FindAllReferences {
const result: Node[] = [];
for (const decl of classSymbol.members.get("__constructor").declarations) {
const ctrKeyword = ts.findChildOfKind(decl, ts.SyntaxKind.ConstructorKeyword, sourceFile)!
const ctrKeyword = ts.findChildOfKind(decl, ts.SyntaxKind.ConstructorKeyword, sourceFile)!;
Debug.assert(decl.kind === SyntaxKind.Constructor && !!ctrKeyword);
result.push(ctrKeyword);
}
+1 -1
View File
@@ -107,7 +107,7 @@ namespace ts.JsDoc {
kind: ScriptElementKind.keyword,
kindModifiers: "",
sortText: "0"
}
};
}));
}
+1 -1
View File
@@ -17,7 +17,7 @@
"double",
"avoid-escape"
],
"semicolon": [true, "ignore-bound-class-methods"],
"semicolon": [true, "always", "ignore-bound-class-methods"],
"whitespace": [true,
"check-branch",
"check-decl",