Skip to content

Commit 703dad5

Browse files
scheglovcommit-bot@chromium.org
authored andcommitted
Compute importedFiles/exportedFiles/partedFiles in more null safe manner.
Change-Id: If36e24114525e209dd6ce8dc2c4200e9d372ee1e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213529 Reviewed-by: Samuel Rawlins <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 2f75d18 commit 703dad5

File tree

1 file changed

+27
-43
lines changed

1 file changed

+27
-43
lines changed

pkg/analyzer/lib/src/dart/analysis/file_state.dart

Lines changed: 27 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -201,39 +201,27 @@ class FileState {
201201

202202
/// The list of files this file exports.
203203
List<FileState?> get exportedFiles {
204-
if (_exportedFiles == null) {
205-
_exportedFiles = <FileState?>[];
206-
for (var directive in _unlinked2!.exports) {
207-
var uri = _selectRelativeUri(directive);
208-
_fileForRelativeUri(uri).map(
209-
(file) {
210-
_exportedFiles!.add(file);
211-
},
212-
(_) {},
213-
);
214-
}
215-
}
216-
return _exportedFiles!;
204+
return _exportedFiles ??= _unlinked2!.exports.map((directive) {
205+
var uri = _selectRelativeUri(directive);
206+
return _fileForRelativeUri(uri).map(
207+
(file) => file,
208+
(_) => null,
209+
);
210+
}).toList();
217211
}
218212

219213
@override
220214
int get hashCode => uri.hashCode;
221215

222216
/// The list of files this file imports.
223217
List<FileState?> get importedFiles {
224-
if (_importedFiles == null) {
225-
_importedFiles = <FileState?>[];
226-
for (var directive in _unlinked2!.imports) {
227-
var uri = _selectRelativeUri(directive);
228-
_fileForRelativeUri(uri).map(
229-
(file) {
230-
_importedFiles!.add(file);
231-
},
232-
(_) {},
233-
);
234-
}
235-
}
236-
return _importedFiles!;
218+
return _importedFiles ??= _unlinked2!.imports.map((directive) {
219+
var uri = _selectRelativeUri(directive);
220+
return _fileForRelativeUri(uri).map(
221+
(file) => file,
222+
(_) => null,
223+
);
224+
}).toList();
237225
}
238226

239227
LibraryCycle? get internal_libraryCycle => _libraryCycle;
@@ -299,23 +287,19 @@ class FileState {
299287

300288
/// The list of files this library file references as parts.
301289
List<FileState?> get partedFiles {
302-
if (_partedFiles == null) {
303-
_partedFiles = <FileState?>[];
304-
for (var uri in _unlinked2!.parts) {
305-
_fileForRelativeUri(uri).map(
306-
(file) {
307-
_partedFiles!.add(file);
308-
if (file != null) {
309-
_fsState._partToLibraries
310-
.putIfAbsent(file, () => <FileState>[])
311-
.add(this);
312-
}
313-
},
314-
(_) {},
315-
);
316-
}
317-
}
318-
return _partedFiles!;
290+
return _partedFiles ??= _unlinked2!.parts.map((uri) {
291+
return _fileForRelativeUri(uri).map(
292+
(file) {
293+
if (file != null) {
294+
_fsState._partToLibraries
295+
.putIfAbsent(file, () => <FileState>[])
296+
.add(this);
297+
}
298+
return file;
299+
},
300+
(_) => null,
301+
);
302+
}).toList();
319303
}
320304

321305
/// The external names referenced by the file.

0 commit comments

Comments
 (0)