Skip to content

Commit cb05d8f

Browse files
committed
Strict null checks
1 parent cf4e17c commit cb05d8f

7 files changed

Lines changed: 26 additions & 15 deletions

File tree

src/tsconfig.strictNullChecks.json

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
"./vs/base/node/ports.ts",
8080
"./vs/base/node/processes.ts",
8181
"./vs/base/node/proxy.ts",
82+
"./vs/base/node/ps.ts",
8283
"./vs/base/node/request.ts",
8384
"./vs/base/node/stats.ts",
8485
"./vs/base/node/storage.ts",
@@ -112,6 +113,7 @@
112113
"./vs/code/electron-browser/issue/issueReporterModel.ts",
113114
"./vs/code/electron-browser/issue/issueReporterPage.ts",
114115
"./vs/code/electron-browser/issue/issueReporterUtil.ts",
116+
"./vs/code/electron-browser/processExplorer/processExplorerMain.ts",
115117
"./vs/code/electron-browser/sharedProcess/contrib/contributions.ts",
116118
"./vs/code/electron-browser/sharedProcess/contrib/languagePackCachedDataCleaner.ts",
117119
"./vs/code/electron-browser/sharedProcess/contrib/nodeCachedDataCleaner.ts",
@@ -494,6 +496,7 @@
494496
"./vs/platform/telemetry/node/commonProperties.ts",
495497
"./vs/platform/telemetry/node/telemetryIpc.ts",
496498
"./vs/platform/telemetry/node/telemetryNodeUtils.ts",
499+
"./vs/platform/telemetry/node/workbenchCommonProperties.ts",
497500
"./vs/platform/theme/common/colorRegistry.ts",
498501
"./vs/platform/theme/common/styler.ts",
499502
"./vs/platform/theme/common/themeService.ts",
@@ -502,6 +505,7 @@
502505
"./vs/platform/update/electron-main/abstractUpdateService.ts",
503506
"./vs/platform/update/electron-main/updateService.darwin.ts",
504507
"./vs/platform/update/electron-main/updateService.linux.ts",
508+
"./vs/platform/update/electron-main/updateService.snap.ts",
505509
"./vs/platform/update/node/update.config.contribution.ts",
506510
"./vs/platform/update/node/updateIpc.ts",
507511
"./vs/platform/url/common/url.ts",
@@ -571,6 +575,7 @@
571575
"./vs/workbench/parts/emmet/test/electron-browser/emmetAction.test.ts",
572576
"./vs/workbench/parts/execution/common/execution.ts",
573577
"./vs/workbench/parts/execution/electron-browser/terminal.ts",
578+
"./vs/workbench/parts/execution/electron-browser/terminalService.ts",
574579
"./vs/workbench/parts/extensions/common/extensionQuery.ts",
575580
"./vs/workbench/parts/extensions/common/extensions.ts",
576581
"./vs/workbench/parts/extensions/common/extensionsFileTemplate.ts",
@@ -591,6 +596,7 @@
591596
"./vs/workbench/parts/output/common/outputLinkProvider.ts",
592597
"./vs/workbench/parts/performance/electron-browser/stats.ts",
593598
"./vs/workbench/parts/preferences/common/smartSnippetInserter.ts",
599+
"./vs/workbench/parts/relauncher/electron-browser/relauncher.contribution.ts",
594600
"./vs/workbench/parts/scm/common/scm.ts",
595601
"./vs/workbench/parts/scm/electron-browser/scmUtil.ts",
596602
"./vs/workbench/parts/search/common/constants.ts",
@@ -617,6 +623,7 @@
617623
"./vs/workbench/parts/terminal/node/terminalEnvironment.ts",
618624
"./vs/workbench/parts/terminal/node/terminalProcess.ts",
619625
"./vs/workbench/parts/terminal/node/terminalProcessExtHostProxy.ts",
626+
"./vs/workbench/parts/terminal/node/windowsShellHelper.ts",
620627
"./vs/workbench/parts/url/electron-browser/url.contribution.ts",
621628
"./vs/workbench/parts/webview/electron-browser/webviewProtocols.ts",
622629
"./vs/workbench/parts/welcome/gettingStarted/electron-browser/gettingStarted.ts",
@@ -695,10 +702,7 @@
695702
"./vs/workbench/services/themes/common/workbenchThemeService.ts",
696703
"./vs/workbench/services/title/common/titleService.ts",
697704
"./vs/workbench/services/workspace/common/workspaceEditing.ts",
698-
"./vs/workbench/test/electron-browser/api/mock.ts",
699-
"./vs/workbench/parts/terminal/node/windowsShellHelper.ts",
700-
"./vs/base/node/ps.ts",
701-
"./vs/code/electron-browser/processExplorer/processExplorerMain.ts"
705+
"./vs/workbench/test/electron-browser/api/mock.ts"
702706
],
703707
"exclude": [
704708
"./typings/require-monaco.d.ts"

src/vs/base/common/resources.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export function getComparisonKey(resource: URI): string {
1414
return hasToIgnoreCase(resource) ? resource.toString().toLowerCase() : resource.toString();
1515
}
1616

17-
export function hasToIgnoreCase(resource: URI): boolean {
17+
export function hasToIgnoreCase(resource: URI | undefined): boolean {
1818
// A file scheme resource is in the same platform as code, so ignore case for non linux platforms
1919
// Resource can be from another platform. Lowering the case as an hack. Should come from File system provider
2020
return resource && resource.scheme === Schemas.file ? !isLinux : true;
@@ -45,7 +45,7 @@ function isEqualAuthority(a1: string, a2: string, ignoreCase?: boolean) {
4545
return a1 === a2 || ignoreCase && a1 && a2 && equalsIgnoreCase(a1, a2);
4646
}
4747

48-
export function isEqual(first: URI, second: URI, ignoreCase = hasToIgnoreCase(first)): boolean {
48+
export function isEqual(first: URI | undefined, second: URI | undefined, ignoreCase = hasToIgnoreCase(first)): boolean {
4949
const identityEquals = (first === second);
5050
if (identityEquals) {
5151
return true;

src/vs/code/node/cli.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ export async function main(argv: string[]): Promise<any> {
132132
child.stdout.on('data', (data: Buffer) => console.log(data.toString('utf8').trim()));
133133
child.stderr.on('data', (data: Buffer) => console.log(data.toString('utf8').trim()));
134134

135-
return new TPromise<void>(c => child.once('exit', () => c(null)));
135+
return new TPromise<void>(c => child.once('exit', () => c()));
136136
});
137137
}
138138

src/vs/platform/telemetry/node/workbenchCommonProperties.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export function resolveWorkbenchCommonProperties(storageService: IStorageService
2222
// __GDPR__COMMON__ "common.firstSessionDate" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
2323
result['common.firstSessionDate'] = getOrCreateFirstSessionDate(storageService);
2424
// __GDPR__COMMON__ "common.lastSessionDate" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
25-
result['common.lastSessionDate'] = lastSessionDate;
25+
result['common.lastSessionDate'] = lastSessionDate || '';
2626
// __GDPR__COMMON__ "common.isNewSession" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
2727
result['common.isNewSession'] = !lastSessionDate ? '1' : '0';
2828
// __GDPR__COMMON__ "common.instanceId" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }

src/vs/platform/update/electron-main/updateService.snap.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ export class SnapUpdateService extends AbstractUpdateService2 {
146146
) {
147147
super(lifecycleService, environmentService, logService);
148148

149+
if (typeof process.env.SNAP === 'undefined') {
150+
throw new Error(`'SNAP' environment variable not set`);
151+
}
149152
const watcher = watch(path.dirname(process.env.SNAP));
150153
const onChange = fromNodeEventEmitter(watcher, 'change', (_, fileName: string) => fileName);
151154
const onCurrentChange = filterEvent(onChange, n => n === 'current');
@@ -190,6 +193,10 @@ export class SnapUpdateService extends AbstractUpdateService2 {
190193
protected doQuitAndInstall(): void {
191194
this.logService.trace('update#quitAndInstall(): running raw#quitAndInstall()');
192195

196+
if (typeof process.env.SNAP === 'undefined') {
197+
return;
198+
}
199+
193200
// Allow 3 seconds for VS Code to close
194201
spawn('bash', ['-c', path.join(process.env.SNAP, `usr/share/${product.applicationName}/snapUpdate.sh`)], {
195202
detached: true,

src/vs/workbench/parts/execution/electron-browser/terminalService.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export class WinTerminalService implements ITerminalService {
6767
const cmd = cp.spawn(WinTerminalService.CMD, cmdArgs, options);
6868
cmd.on('error', e);
6969

70-
c(null);
70+
c();
7171
});
7272
}
7373

@@ -100,7 +100,7 @@ export class WinTerminalService implements ITerminalService {
100100
const env = cwd ? { cwd: cwd } : void 0;
101101
const child = spawner.spawn(command, cmdArgs, env);
102102
child.on('error', e);
103-
child.on('exit', () => c(null));
103+
child.on('exit', () => c());
104104
});
105105
}
106106

@@ -176,7 +176,7 @@ export class MacTerminalService implements ITerminalService {
176176
});
177177
osa.on('exit', (code: number) => {
178178
if (code === 0) { // OK
179-
c(null);
179+
c();
180180
} else {
181181
if (stderr) {
182182
const lines = stderr.split('\n', 1);
@@ -199,7 +199,7 @@ export class MacTerminalService implements ITerminalService {
199199
return new Promise<void>((c, e) => {
200200
const child = spawner.spawn('/usr/bin/open', ['-a', terminalApp, cwd]);
201201
child.on('error', e);
202-
child.on('exit', () => c(null));
202+
child.on('exit', () => c());
203203
});
204204
}
205205
}
@@ -262,7 +262,7 @@ export class LinuxTerminalService implements ITerminalService {
262262
});
263263
cmd.on('exit', (code: number) => {
264264
if (code === 0) { // OK
265-
c(null);
265+
c();
266266
} else {
267267
if (stderr) {
268268
const lines = stderr.split('\n', 1);
@@ -285,7 +285,7 @@ export class LinuxTerminalService implements ITerminalService {
285285
execPromise.then(exec => {
286286
const child = spawner.spawn(exec, [], env);
287287
child.on('error', e);
288-
child.on('exit', () => c(null));
288+
child.on('exit', () => c());
289289
});
290290
});
291291
}

src/vs/workbench/parts/relauncher/electron-browser/relauncher.contribution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export class SettingsChangeRelauncher extends Disposable implements IWorkbenchCo
4343
private fileWatcherExclude: object;
4444
private legacyStorage: boolean;
4545

46-
private firstFolderResource: URI;
46+
private firstFolderResource?: URI;
4747
private extensionHostRestarter: RunOnceScheduler;
4848

4949
private onDidChangeWorkspaceFoldersUnbind: IDisposable;

0 commit comments

Comments
 (0)