From 5527b1ee427db5dabc79e717aaa3efd0e76ab55f Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Tue, 16 Oct 2018 15:49:01 -0700 Subject: [PATCH] Fix some simple strict null errors in extHostTypes #60656 --- src/vs/workbench/api/node/extHostTypes.ts | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/vs/workbench/api/node/extHostTypes.ts b/src/vs/workbench/api/node/extHostTypes.ts index 995e2b70338..c1c2383238a 100644 --- a/src/vs/workbench/api/node/extHostTypes.ts +++ b/src/vs/workbench/api/node/extHostTypes.ts @@ -17,10 +17,11 @@ import { coalesce, equals } from 'vs/base/common/arrays'; export class Disposable { - static from(...disposables: { dispose(): any }[]): Disposable { + static from(...inDisposables: { dispose(): any }[]): Disposable { + let disposables: ReadonlyArray<{ dispose(): any }> | undefined = inDisposables; return new Disposable(function () { if (disposables) { - for (let disposable of disposables) { + for (const disposable of disposables) { if (disposable && typeof disposable.dispose === 'function') { disposable.dispose(); } @@ -30,7 +31,7 @@ export class Disposable { }); } - private _callOnDispose: Function; + private _callOnDispose?: Function; constructor(callOnDispose: Function) { this._callOnDispose = callOnDispose; @@ -154,7 +155,7 @@ export class Position { translate(change: { lineDelta?: number; characterDelta?: number; }): Position; translate(lineDelta?: number, characterDelta?: number): Position; - translate(lineDeltaOrChange: number | { lineDelta?: number; characterDelta?: number; }, characterDelta: number = 0): Position { + translate(lineDeltaOrChange: number | undefined | { lineDelta?: number; characterDelta?: number; }, characterDelta: number = 0): Position { if (lineDeltaOrChange === null || characterDelta === null) { throw illegalArgument(); @@ -178,7 +179,7 @@ export class Position { with(change: { line?: number; character?: number; }): Position; with(line?: number, character?: number): Position; - with(lineOrChange: number | { line?: number; character?: number; }, character: number = this.character): Position { + with(lineOrChange: number | undefined | { line?: number; character?: number; }, character: number = this.character): Position { if (lineOrChange === null || character === null) { throw illegalArgument(); @@ -234,8 +235,8 @@ export class Range { constructor(start: Position, end: Position); constructor(startLine: number, startColumn: number, endLine: number, endColumn: number); constructor(startLineOrStart: number | Position, startColumnOrEnd: number | Position, endLine?: number, endColumn?: number) { - let start: Position; - let end: Position; + let start: Position | undefined; + let end: Position | undefined; if (typeof startLineOrStart === 'number' && typeof startColumnOrEnd === 'number' && typeof endLine === 'number' && typeof endColumn === 'number') { start = new Position(startLineOrStart, startColumnOrEnd); @@ -279,7 +280,7 @@ export class Range { return this._start.isEqual(other._start) && this._end.isEqual(other._end); } - intersection(other: Range): Range { + intersection(other: Range): Range | undefined { let start = Position.Max(other.start, this._start); let end = Position.Min(other.end, this._end); if (start.isAfter(end)) { @@ -312,7 +313,7 @@ export class Range { with(change: { start?: Position, end?: Position }): Range; with(start?: Position, end?: Position): Range; - with(startOrChange: Position | { start?: Position, end?: Position }, end: Position = this.end): Range { + with(startOrChange: Position | undefined | { start?: Position, end?: Position }, end: Position = this.end): Range { if (startOrChange === null || end === null) { throw illegalArgument(); @@ -371,8 +372,8 @@ export class Selection extends Range { constructor(anchor: Position, active: Position); constructor(anchorLine: number, anchorColumn: number, activeLine: number, activeColumn: number); constructor(anchorLineOrAnchor: number | Position, anchorColumnOrActive: number | Position, activeLine?: number, activeColumn?: number) { - let anchor: Position; - let active: Position; + let anchor: Position | undefined; + let active: Position | undefined; if (typeof anchorLineOrAnchor === 'number' && typeof anchorColumnOrActive === 'number' && typeof activeLine === 'number' && typeof activeColumn === 'number') { anchor = new Position(anchorLineOrAnchor, anchorColumnOrActive);