Allow widget inspector's _Location.file to be null (#81588)

Fixes https://github.com/flutter/flutter/issues/81587
This commit is contained in:
Todd Volkert 2021-04-30 21:09:14 -07:00 committed by GitHub
parent 0cc58fd046
commit a3bcaf226c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1525,7 +1525,7 @@ mixin WidgetInspectorService {
if (location == null || location.file == null) {
return false;
}
final String file = Uri.parse(location.file).path;
final String file = Uri.parse(location.file!).path;
// By default check whether the creation location was within package:flutter.
if (_pubRootDirectories == null) {
@ -2122,11 +2122,13 @@ class _ElementLocationStatsTracker {
final Map<String, List<int>> locationsJson = <String, List<int>>{};
for (final _LocationCount entry in newLocations) {
final _Location location = entry.location;
final List<int> jsonForFile = locationsJson.putIfAbsent(
location.file,
() => <int>[],
);
jsonForFile..add(entry.id)..add(location.line)..add(location.column);
if (location.file != null) {
final List<int> jsonForFile = locationsJson.putIfAbsent(
location.file!,
() => <int>[],
);
jsonForFile..add(entry.id)..add(location.line)..add(location.column);
}
}
json['newLocations'] = locationsJson;
}
@ -2844,7 +2846,7 @@ class _Location {
});
/// File path of the location.
final String file;
final String? file;
/// 1-based line number.
final int line;
@ -2880,7 +2882,9 @@ class _Location {
if (name != null) {
parts.add(name!);
}
parts.add(file);
if (file != null) {
parts.add(file!);
}
parts..add('$line')..add('$column');
return parts.join(':');
}