Skip to content

Commit 2bc4231

Browse files
committed
Strict null checks
microsoft#60565
1 parent 85da9e2 commit 2bc4231

5 files changed

Lines changed: 31 additions & 17 deletions

File tree

src/tsconfig.strictNullChecks.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
"./vs/base/parts/contextmenu/electron-browser/contextmenu.ts",
7373
"./vs/base/parts/contextmenu/electron-main/contextmenu.ts",
7474
"./vs/base/parts/ipc/node/ipc.cp.ts",
75+
"./vs/base/parts/ipc/node/ipc.net.ts",
7576
"./vs/base/parts/ipc/node/ipc.ts",
7677
"./vs/base/parts/ipc/test/node/testApp.ts",
7778
"./vs/base/parts/ipc/test/node/testService.ts",
@@ -405,6 +406,7 @@
405406
"./vs/platform/log/common/bufferLog.ts",
406407
"./vs/platform/log/common/log.ts",
407408
"./vs/platform/log/node/spdlogService.ts",
409+
"./vs/platform/markers/common/markerService.ts",
408410
"./vs/platform/markers/common/markers.ts",
409411
"./vs/platform/menubar/common/menubar.ts",
410412
"./vs/platform/node/minimalTranslations.ts",
@@ -489,6 +491,7 @@
489491
"./vs/workbench/parts/logs/common/logConstants.ts",
490492
"./vs/workbench/parts/markers/electron-browser/constants.ts",
491493
"./vs/workbench/parts/markers/electron-browser/markers.ts",
494+
"./vs/workbench/parts/markers/electron-browser/markersFileDecorations.ts",
492495
"./vs/workbench/parts/markers/electron-browser/markersFilterOptions.ts",
493496
"./vs/workbench/parts/markers/electron-browser/markersModel.ts",
494497
"./vs/workbench/parts/markers/electron-browser/messages.ts",

src/vs/base/parts/ipc/node/ipc.net.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,14 +215,19 @@ export class Server extends IPCServer {
215215
}));
216216
}
217217

218-
constructor(private server: NetServer) {
218+
private server: NetServer | null;
219+
220+
constructor(server: NetServer) {
219221
super(Server.toClientConnectionEvent(server));
222+
this.server = server;
220223
}
221224

222225
dispose(): void {
223226
super.dispose();
224-
this.server.close();
225-
this.server = null;
227+
if (this.server) {
228+
this.server.close();
229+
this.server = null;
230+
}
226231
}
227232
}
228233

src/vs/platform/markers/common/markerService.ts

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class MarkerStats implements MarkerStatistics {
5050
warnings: number = 0;
5151
unknowns: number = 0;
5252

53-
private _data: { [resource: string]: MarkerStatistics } = Object.create(null);
53+
private _data?: { [resource: string]: MarkerStatistics } = Object.create(null);
5454
private _service: IMarkerService;
5555
private _subscription: IDisposable;
5656

@@ -65,6 +65,10 @@ class MarkerStats implements MarkerStatistics {
6565
}
6666

6767
private _update(resources: URI[]): void {
68+
if (!this._data) {
69+
return;
70+
}
71+
6872
for (const resource of resources) {
6973
const key = resource.toString();
7074
const oldStats = this._data[key];
@@ -191,7 +195,6 @@ export class MarkerService implements IMarkerService {
191195
}
192196

193197
// santize data
194-
code = code || null;
195198
startLineNumber = startLineNumber > 0 ? startLineNumber : 1;
196199
startColumn = startColumn > 0 ? startColumn : 1;
197200
endLineNumber = endLineNumber >= startLineNumber ? endLineNumber : startLineNumber;
@@ -200,7 +203,7 @@ export class MarkerService implements IMarkerService {
200203
return {
201204
resource,
202205
owner,
203-
code,
206+
code: code || undefined,
204207
severity,
205208
message,
206209
source,
@@ -221,13 +224,16 @@ export class MarkerService implements IMarkerService {
221224
if (map) {
222225
delete this._byOwner[owner];
223226
for (const resource in map) {
224-
// remeber what we remove
225-
const [first] = MapMap.get(this._byResource, resource, owner);
226-
if (first) {
227-
changes.push(first.resource);
227+
const entry = MapMap.get(this._byResource, resource, owner);
228+
if (entry) {
229+
// remeber what we remove
230+
const [first] = entry;
231+
if (first) {
232+
changes.push(first.resource);
233+
}
234+
// actual remove
235+
MapMap.remove(this._byResource, resource, owner);
228236
}
229-
// actual remove
230-
MapMap.remove(this._byResource, resource, owner);
231237
}
232238
}
233239

@@ -308,9 +314,9 @@ export class MarkerService implements IMarkerService {
308314

309315
} else {
310316
// of one resource OR owner
311-
const map: { [key: string]: IMarker[] } = owner
317+
const map: { [key: string]: IMarker[] } | undefined = owner
312318
? this._byOwner[owner]
313-
: this._byResource[resource.toString()];
319+
: resource ? this._byResource[resource.toString()] : undefined;
314320

315321
if (!map) {
316322
return [];

src/vs/workbench/parts/markers/electron-browser/markersFileDecorations.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ class MarkersDecorationsProvider implements IDecorationsProvider {
2727
this.onDidChange = _markerService.onMarkerChanged;
2828
}
2929

30-
provideDecorations(resource: URI): IDecorationData {
30+
provideDecorations(resource: URI): IDecorationData | undefined {
3131
let markers = this._markerService.read({
3232
resource,
3333
severities: MarkerSeverity.Error | MarkerSeverity.Warning
3434
});
35-
let first: IMarker;
35+
let first: IMarker | undefined;
3636
for (const marker of markers) {
3737
if (!first || marker.severity > first.severity) {
3838
first = marker;

src/vs/workbench/services/decorations/browser/decorations.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export interface IDecoration {
3131
export interface IDecorationsProvider {
3232
readonly label: string;
3333
readonly onDidChange: Event<URI[]>;
34-
provideDecorations(uri: URI, token: CancellationToken): IDecorationData | Thenable<IDecorationData>;
34+
provideDecorations(uri: URI, token: CancellationToken): IDecorationData | Thenable<IDecorationData> | undefined;
3535
}
3636

3737
export interface IResourceDecorationChangeEvent {

0 commit comments

Comments
 (0)