From d5df66ae799503b504a71f1a5207f360878fae40 Mon Sep 17 00:00:00 2001 From: Yusuke Tsutsumi Date: Fri, 18 Jan 2019 07:08:31 -0800 Subject: [PATCH] Fixing strict-null-checks --- src/vs/base/common/keyCodes.ts | 5 ++++- src/vs/base/parts/tree/browser/treeDefaults.ts | 10 ++++++---- .../test/common/keybindingResolver.test.ts | 13 +++++++------ .../keybinding/common/macLinuxKeyboardMapper.ts | 2 +- .../test/common/keybindingsEditorModel.test.ts | 2 +- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/vs/base/common/keyCodes.ts b/src/vs/base/common/keyCodes.ts index c31aa678c3b..bf66748d907 100644 --- a/src/vs/base/common/keyCodes.ts +++ b/src/vs/base/common/keyCodes.ts @@ -517,7 +517,10 @@ export class ChordKeybinding { return hashCodes.join(';'); } - public equals(other: ChordKeybinding): boolean { + public equals(other: ChordKeybinding | null): boolean { + if (other === null) { + return false; + } if (this.parts.length !== other.parts.length) { return false; } diff --git a/src/vs/base/parts/tree/browser/treeDefaults.ts b/src/vs/base/parts/tree/browser/treeDefaults.ts index 792c55b4cd0..03c98db4dae 100644 --- a/src/vs/base/parts/tree/browser/treeDefaults.ts +++ b/src/vs/base/parts/tree/browser/treeDefaults.ts @@ -49,7 +49,7 @@ export interface IControllerOptions { } interface IKeybindingDispatcherItem { - keybinding: Keybinding; + keybinding: Keybinding | null; callback: IKeyBindingCallback; } @@ -63,9 +63,11 @@ export class KeybindingDispatcher { public has(keybinding: KeyCode): boolean { let target = createKeybinding(keybinding, platform.OS); - for (const a of this._arr) { - if (target.equals(a.keybinding)) { - return true; + if (target !== null) { + for (const a of this._arr) { + if (target.equals(a.keybinding)) { + return true; + } } } return false; diff --git a/src/vs/platform/keybinding/test/common/keybindingResolver.test.ts b/src/vs/platform/keybinding/test/common/keybindingResolver.test.ts index ed9dd37f3b0..e9cb10c3f63 100644 --- a/src/vs/platform/keybinding/test/common/keybindingResolver.test.ts +++ b/src/vs/platform/keybinding/test/common/keybindingResolver.test.ts @@ -346,21 +346,22 @@ suite('KeybindingResolver', () => { let testResolve = (ctx: IContext, _expectedKey: number, commandId: string) => { const expectedKey = createKeybinding(_expectedKey, OS)!; - let previousPart = null; + let previousPart: (string | null) = null; for (let i = 0, len = expectedKey.parts.length; i < len; i++) { let part = getDispatchStr(expectedKey.parts[i]); let result = resolver.resolve(ctx, previousPart, part); - assert.ok(result !== null, `Enters chord for ${commandId} at part ${i}`); if (i === len - 1) { // if it's the final part, then we should find a valid command, // and there should not be a chord. - assert.equal(result.commandId, commandId, `Enters chord for ${commandId} at part ${i}`); - assert.equal(result.enterChord, false, `Enters chord for ${commandId} at part ${i}`); + assert.ok(result !== null, `Enters chord for ${commandId} at part ${i}`); + assert.equal(result!.commandId, commandId, `Enters chord for ${commandId} at part ${i}`); + assert.equal(result!.enterChord, false, `Enters chord for ${commandId} at part ${i}`); } else { // if it's not the final part, then we should not find a valid command, // and there should be a chord. - assert.equal(result.commandId, null, `Enters chord for ${commandId} at part ${i}`); - assert.equal(result.enterChord, true, `Enters chord for ${commandId} at part ${i}`); + assert.ok(result !== null, `Enters chord for ${commandId} at part ${i}`); + assert.equal(result!.commandId, null, `Enters chord for ${commandId} at part ${i}`); + assert.equal(result!.enterChord, true, `Enters chord for ${commandId} at part ${i}`); } previousPart = part; } diff --git a/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.ts b/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.ts index 216619cdfee..ba74bfe4ba8 100644 --- a/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.ts +++ b/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.ts @@ -171,7 +171,7 @@ export class NativeResolvedKeybinding extends ResolvedKeybinding { } public getDispatchParts(): (string | null)[] { - let dispatchParts = []; + let dispatchParts: (string | null)[] = []; for (let part of this._parts) { dispatchParts.push(part ? this._mapper.getDispatchStrForScanCodeBinding(part) : null); } diff --git a/src/vs/workbench/services/preferences/test/common/keybindingsEditorModel.test.ts b/src/vs/workbench/services/preferences/test/common/keybindingsEditorModel.test.ts index 1a500c6cb34..a6289ad208c 100644 --- a/src/vs/workbench/services/preferences/test/common/keybindingsEditorModel.test.ts +++ b/src/vs/workbench/services/preferences/test/common/keybindingsEditorModel.test.ts @@ -610,7 +610,7 @@ suite('KeybindingsEditorModel test', () => { const { ctrlKey, shiftKey, altKey, metaKey } = part.modifiers || { ctrlKey: false, shiftKey: false, altKey: false, metaKey: false }; return new SimpleKeybinding(ctrlKey!, shiftKey!, altKey!, metaKey!, part.keyCode); }; - let parts = []; + let parts: SimpleKeybinding[] = []; if (firstPart) { parts.push(aSimpleKeybinding(firstPart)); } -- GitLab