Skip to content

Commit dce0137

Browse files
authored
debt - arrays.ts#tail can return undefined (microsoft#209631)
1 parent ed4edd6 commit dce0137

File tree

5 files changed

+17
-17
lines changed

5 files changed

+17
-17
lines changed

src/vs/base/browser/touch.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -192,28 +192,28 @@ export class Gesture extends Disposable {
192192
holdTime = Date.now() - data.initialTimeStamp;
193193

194194
if (holdTime < Gesture.HOLD_DELAY
195-
&& Math.abs(data.initialPageX - arrays.tail(data.rollingPageX)) < 30
196-
&& Math.abs(data.initialPageY - arrays.tail(data.rollingPageY)) < 30) {
195+
&& Math.abs(data.initialPageX - arrays.tail(data.rollingPageX)!) < 30
196+
&& Math.abs(data.initialPageY - arrays.tail(data.rollingPageY)!) < 30) {
197197

198198
const evt = this.newGestureEvent(EventType.Tap, data.initialTarget);
199-
evt.pageX = arrays.tail(data.rollingPageX);
200-
evt.pageY = arrays.tail(data.rollingPageY);
199+
evt.pageX = arrays.tail(data.rollingPageX)!;
200+
evt.pageY = arrays.tail(data.rollingPageY)!;
201201
this.dispatchEvent(evt);
202202

203203
} else if (holdTime >= Gesture.HOLD_DELAY
204-
&& Math.abs(data.initialPageX - arrays.tail(data.rollingPageX)) < 30
205-
&& Math.abs(data.initialPageY - arrays.tail(data.rollingPageY)) < 30) {
204+
&& Math.abs(data.initialPageX - arrays.tail(data.rollingPageX)!) < 30
205+
&& Math.abs(data.initialPageY - arrays.tail(data.rollingPageY)!) < 30) {
206206

207207
const evt = this.newGestureEvent(EventType.Contextmenu, data.initialTarget);
208-
evt.pageX = arrays.tail(data.rollingPageX);
209-
evt.pageY = arrays.tail(data.rollingPageY);
208+
evt.pageX = arrays.tail(data.rollingPageX)!;
209+
evt.pageY = arrays.tail(data.rollingPageY)!;
210210
this.dispatchEvent(evt);
211211

212212
} else if (activeTouchCount === 1) {
213-
const finalX = arrays.tail(data.rollingPageX);
214-
const finalY = arrays.tail(data.rollingPageY);
213+
const finalX = arrays.tail(data.rollingPageX)!;
214+
const finalY = arrays.tail(data.rollingPageY)!;
215215

216-
const deltaT = arrays.tail(data.rollingTimestamps) - data.rollingTimestamps[0];
216+
const deltaT = arrays.tail(data.rollingTimestamps)! - data.rollingTimestamps[0];
217217
const deltaX = finalX - data.rollingPageX[0];
218218
const deltaY = finalY - data.rollingPageY[0];
219219

@@ -345,8 +345,8 @@ export class Gesture extends Disposable {
345345
const data = this.activeTouches[touch.identifier];
346346

347347
const evt = this.newGestureEvent(EventType.Change, data.initialTarget);
348-
evt.translationX = touch.pageX - arrays.tail(data.rollingPageX);
349-
evt.translationY = touch.pageY - arrays.tail(data.rollingPageY);
348+
evt.translationX = touch.pageX - arrays.tail(data.rollingPageX)!;
349+
evt.translationY = touch.pageY - arrays.tail(data.rollingPageY)!;
350350
evt.pageX = touch.pageX;
351351
evt.pageY = touch.pageY;
352352
this.dispatchEvent(evt);

src/vs/base/common/arrays.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { findFirstIdxMonotonousOrArrLen } from './arraysFind';
1313
* @param array The array.
1414
* @param n Which element from the end (default is zero).
1515
*/
16-
export function tail<T>(array: ArrayLike<T>, n: number = 0): T {
16+
export function tail<T>(array: ArrayLike<T>, n: number = 0): T | undefined {
1717
return array[array.length - (1 + n)];
1818
}
1919

src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ export class BulkFileEdits {
363363
for (let i = 1; i < edits.length; i++) {
364364
const edit = edits[i];
365365
const lastGroup = tail(groups);
366-
if (lastGroup[0].type === edit.type) {
366+
if (lastGroup?.[0].type === edit.type) {
367367
lastGroup.push(edit);
368368
} else {
369369
groups.push([edit]);

src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ export class InlineChatWidget {
457457
if (!isNonEmptyArray(requests)) {
458458
return undefined;
459459
}
460-
return tail(requests).response?.response.asString();
460+
return tail(requests)?.response?.response.asString();
461461
}
462462

463463
getChatModel(): IChatModel {

src/vs/workbench/services/preferences/common/preferencesModels.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -829,7 +829,7 @@ export class DefaultSettingsEditorModel extends AbstractSettingsModel implements
829829
.sort((a, b) => a.order - b.order);
830830
const nonEmptyResultGroups = resultGroups.filter(group => group.result.filterMatches.length);
831831

832-
const startLine = tail(this.settingsGroups).range.endLineNumber + 2;
832+
const startLine = tail(this.settingsGroups)!.range.endLineNumber + 2;
833833
const { settingsGroups: filteredGroups, matches } = this.writeResultGroups(nonEmptyResultGroups, startLine);
834834

835835
const metadata = this.collectMetadata(resultGroups);

0 commit comments

Comments
 (0)