Make several fields of FileState non-nullable.
With external libraries separated, we always have the fields.
R=brianwilkerson@google.com
Change-Id: I91038198921670f7739b82ed7f88abd67a2debca
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195304
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 35f7890..6024381 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -632,7 +632,7 @@
throw ArgumentError('$uri is not a library.');
}
- var unitResult = await getUnitElement(file.path!);
+ var unitResult = await getUnitElement(file.path);
return unitResult.element.library;
},
(externalLibrary) async {
@@ -662,10 +662,8 @@
var units = <ParsedUnitResult>[];
for (var unitFile in file.libraryFiles) {
var unitPath = unitFile.path;
- if (unitPath != null) {
- var unitResult = parseFileSync(unitPath);
- units.add(unitResult);
- }
+ var unitResult = parseFileSync(unitPath);
+ units.add(unitResult);
}
return ParsedLibraryResultImpl(currentSession, path, file.uri, units);
@@ -685,7 +683,7 @@
if (file.isPart) {
throw ArgumentError('Is a part: $uri');
}
- return getParsedLibrary(file.path!);
+ return getParsedLibrary(file.path);
},
(externalLibrary) {
return ParsedLibraryResultImpl.external(currentSession, uri);
@@ -759,7 +757,7 @@
if (file.isPart) {
throw ArgumentError('Is a part: $uri');
}
- return getResolvedLibrary(file.path!);
+ return getResolvedLibrary(file.path);
},
(externalLibrary) async {
return ResolvedLibraryResultImpl.external(currentSession, uri);
@@ -925,7 +923,7 @@
FileState file = _fileTracker.getFile(path);
RecordingErrorListener listener = RecordingErrorListener();
CompilationUnit unit = file.parse(listener);
- return ParsedUnitResultImpl(currentSession, file.path!, file.uri,
+ return ParsedUnitResultImpl(currentSession, file.path, file.uri,
file.content, file.lineInfo, file.isPart, unit, listener.errors);
}
@@ -1403,28 +1401,27 @@
Map<FileState, UnitAnalysisResult> unitResults = analyzer.analyze();
var resolvedUnits = <ResolvedUnitResult>[];
- for (var unitFile in unitResults.keys) {
- if (unitFile.path != null) {
- var unitResult = unitResults[unitFile]!;
- resolvedUnits.add(
- ResolvedUnitResultImpl(
- currentSession,
- unitFile.path!,
- unitFile.uri,
- unitFile.exists,
- unitFile.content,
- unitFile.lineInfo,
- unitFile.isPart,
- unitResult.unit,
- unitResult.errors,
- ),
- );
- }
+ for (var entry in unitResults.entries) {
+ var unitFile = entry.key;
+ var unitResult = entry.value;
+ resolvedUnits.add(
+ ResolvedUnitResultImpl(
+ currentSession,
+ unitFile.path,
+ unitFile.uri,
+ unitFile.exists,
+ unitFile.content,
+ unitFile.lineInfo,
+ unitFile.isPart,
+ unitResult.unit,
+ unitResult.errors,
+ ),
+ );
}
return ResolvedLibraryResultImpl(
currentSession,
- library.path!,
+ library.path,
library.uri,
resolvedUnits.first.libraryElement,
resolvedUnits,
@@ -1610,7 +1607,7 @@
_updateHasErrorOrWarningFlag(file, errors);
return AnalysisResult(
currentSession,
- file.path!,
+ file.path,
file.uri,
file.exists,
content,
@@ -1627,7 +1624,7 @@
FileState file, List<AnalysisDriverUnitError> serialized) {
List<AnalysisError> errors = <AnalysisError>[];
for (AnalysisDriverUnitError error in serialized) {
- var analysisError = ErrorEncoding.decode(file.source!, error);
+ var analysisError = ErrorEncoding.decode(file.source, error);
if (analysisError != null) {
errors.add(analysisError);
}
@@ -1666,7 +1663,7 @@
// TODO(scheglov) Find a better way to report this.
return AnalysisResult(
currentSession,
- file.path!,
+ file.path,
file.uri,
file.exists,
null,
@@ -1675,7 +1672,7 @@
'missing',
null,
[
- AnalysisError(file.source!, 0, 0,
+ AnalysisError(file.source, 0, 0,
CompileTimeErrorCode.MISSING_DART_LIBRARY, [missingUri])
],
null);
@@ -1696,9 +1693,7 @@
var libraryFile = _fsState.getFileForPath(path);
for (var file in libraryFile.libraryFiles) {
var path = file.path;
- if (path != null) {
- fileContentMap[path] = file.content;
- }
+ fileContentMap[path] = file.content;
}
_exceptionController.add(
@@ -1737,7 +1732,7 @@
List<AnalysisDriverExceptionFileBuilder> contextFiles = libraryFile
.transitiveFiles
.map((file) => AnalysisDriverExceptionFileBuilder(
- path: file.path!, content: file.content))
+ path: file.path, content: file.content))
.toList();
contextFiles.sort((a, b) => a.path.compareTo(b.path));
AnalysisDriverExceptionContextBuilder contextBuilder =
@@ -2409,7 +2404,7 @@
}
FileState file = filesToCheck![filesToCheckIndex++];
if (file.referencedNames.contains(name)) {
- referencingFiles.add(file.path!);
+ referencingFiles.add(file.path);
}
}
diff --git a/pkg/analyzer/lib/src/dart/analysis/file_state.dart b/pkg/analyzer/lib/src/dart/analysis/file_state.dart
index fbb35e3..0577376 100644
--- a/pkg/analyzer/lib/src/dart/analysis/file_state.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/file_state.dart
@@ -92,13 +92,13 @@
final FileSystemState _fsState;
/// The absolute path of the file.
- final String? path;
+ final String path;
/// The absolute URI of the file.
final Uri uri;
/// The [Source] of the file with the [uri].
- final Source? source;
+ final Source source;
/// The [WorkspacePackage] that contains this file.
///
@@ -111,12 +111,12 @@
/// possibly additional enabled experiments (from the analysis options file,
/// or from SDK allowed experiments).
///
- /// This feature set is then restricted, with the [_packageLanguageVersion],
+ /// This feature set is then restricted, with the [packageLanguageVersion],
/// or with a `@dart` language override token in the file header.
- final FeatureSet? _contextFeatureSet;
+ final FeatureSet _contextFeatureSet;
/// The language version for the package that contains this file.
- final Version? packageLanguageVersion;
+ final Version packageLanguageVersion;
int id = fileObjectId++;
int? refreshId;
@@ -371,7 +371,7 @@
String get _invalidTransitiveSignature {
return (ApiSignature()
- ..addString(path!)
+ ..addString(path)
..addBytes(unlinkedSignature))
.toHex();
}
@@ -434,7 +434,7 @@
_invalidateCurrentUnresolvedData();
{
- var rawFileState = _fsState._fileContentCache.get(path!, allowCached);
+ var rawFileState = _fsState._fileContentCache.get(path, allowCached);
_content = rawFileState.content;
_exists = rawFileState.exists;
_contentHash = rawFileState.contentHash;
@@ -444,8 +444,8 @@
{
var signature = ApiSignature();
signature.addUint32List(_fsState._saltForUnlinked);
- signature.addFeatureSet(_contextFeatureSet!);
- signature.addLanguageVersion(packageLanguageVersion!);
+ signature.addFeatureSet(_contextFeatureSet);
+ signature.addLanguageVersion(packageLanguageVersion);
signature.addString(_contentHash!);
signature.addBool(_exists!);
_unlinkedSignature = signature.toByteList();
@@ -522,11 +522,7 @@
@override
String toString() {
- if (path == null) {
- return '<unresolved>';
- } else {
- return '[id: $id][rid: $refreshId]$uri = $path';
- }
+ return '[id: $id][rid: $refreshId]$uri = $path';
}
CompilationUnitImpl _createEmptyCompilationUnit() {
@@ -534,13 +530,13 @@
var unit = astFactory.compilationUnit(
beginToken: token,
endToken: token,
- featureSet: _contextFeatureSet!,
+ featureSet: _contextFeatureSet,
);
unit.lineInfo = LineInfo(const <int>[0]);
unit.languageVersion = LibraryLanguageVersion(
- package: packageLanguageVersion!,
+ package: packageLanguageVersion,
override: null,
);
@@ -610,23 +606,19 @@
}
CompilationUnitImpl _parse(AnalysisErrorListener errorListener) {
- if (source == null) {
- return _createEmptyCompilationUnit();
- }
-
CharSequenceReader reader = CharSequenceReader(content);
- Scanner scanner = Scanner(source!, reader, errorListener)
+ Scanner scanner = Scanner(source, reader, errorListener)
..configureFeatures(
- featureSetForOverriding: _contextFeatureSet!,
- featureSet: _contextFeatureSet!.restrictToVersion(
- packageLanguageVersion!,
+ featureSetForOverriding: _contextFeatureSet,
+ featureSet: _contextFeatureSet.restrictToVersion(
+ packageLanguageVersion,
),
);
Token token = scanner.tokenize(reportScannerErrors: false);
LineInfo lineInfo = LineInfo(scanner.lineStarts);
Parser parser = Parser(
- source!,
+ source,
errorListener,
featureSet: scanner.featureSet,
);
@@ -635,7 +627,7 @@
var unit = parser.parseCompilationUnit(token);
unit.lineInfo = lineInfo;
unit.languageVersion = LibraryLanguageVersion(
- package: packageLanguageVersion!,
+ package: packageLanguageVersion,
override: scanner.overrideVersion,
);
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
index 1b7434b..399bc43 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
@@ -176,15 +176,13 @@
// This must happen after all other diagnostics have been computed but
// before the list of diagnostics has been filtered.
for (var file in _library.libraryFiles) {
- if (file.source != null) {
- IgnoreValidator(
- _getErrorReporter(file),
- _getErrorListener(file).errors,
- _fileToIgnoreInfo[file]!,
- _fileToLineInfo[file]!,
- _analysisOptions.unignorableNames,
- ).reportErrors();
- }
+ IgnoreValidator(
+ _getErrorReporter(file),
+ _getErrorListener(file).errors,
+ _fileToIgnoreInfo[file]!,
+ _fileToLineInfo[file]!,
+ _analysisOptions.unignorableNames,
+ ).reportErrors();
}
timerLibraryAnalyzerVerify.stop();
@@ -256,10 +254,6 @@
}
void _computeHints(FileState file, CompilationUnit unit) {
- if (file.source == null) {
- return;
- }
-
AnalysisErrorListener errorListener = _getErrorListener(file);
ErrorReporter errorReporter = _getErrorReporter(file);
@@ -333,10 +327,6 @@
void _computeLints(FileState file, LinterContextUnit currentUnit,
List<LinterContextUnit> allUnits) {
var unit = currentUnit.unit;
- if (file.source == null) {
- return;
- }
-
ErrorReporter errorReporter = _getErrorReporter(file);
var nodeRegistry = NodeLintRegistry(_analysisOptions.enableTiming);
@@ -370,10 +360,6 @@
}
void _computeVerifyErrors(FileState file, CompilationUnit unit) {
- if (file.source == null) {
- return;
- }
-
RecordingErrorListener errorListener = _getErrorListener(file);
CodeChecker checker = CodeChecker(
@@ -478,7 +464,7 @@
RecordingErrorListener listener = _getErrorListener(file);
return ErrorReporter(
listener,
- file.source!,
+ file.source,
isNonNullableByDefault: _libraryElement.isNonNullableByDefault,
);
});
@@ -665,10 +651,6 @@
void _resolveFile(FileState file, CompilationUnit unit) {
var source = file.source;
- if (source == null) {
- return;
- }
-
RecordingErrorListener errorListener = _getErrorListener(file);
var unitElement = unit.declaredElement as CompilationUnitElementImpl;
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_context.dart b/pkg/analyzer/lib/src/dart/analysis/library_context.dart
index 94a44cf..7401cb1 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_context.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_context.dart
@@ -138,7 +138,7 @@
librariesLinkedTimer.start();
testView.linkedCycles.add(
- cycle.libraries.map((e) => e.path!).toSet(),
+ cycle.libraries.map((e) => e.path).toSet(),
);
timerInputLibraries.start();
@@ -146,7 +146,6 @@
var inputLibraries = <link2.LinkInputLibrary>[];
for (var libraryFile in cycle.libraries) {
var librarySource = libraryFile.source;
- if (librarySource == null) continue;
var inputUnits = <link2.LinkInputUnit>[];
var partIndex = -1;
@@ -163,7 +162,7 @@
inputUnits.add(
link2.LinkInputUnit(
partUriStr,
- file.source!,
+ file.source,
isSynthetic,
unit,
),
@@ -316,7 +315,7 @@
var fileContentMap = <String, String>{};
for (var libraryFile in cycle.libraries) {
for (var file in libraryFile.libraryFiles) {
- fileContentMap[file.path!] = file.content;
+ fileContentMap[file.path] = file.content;
}
}
throw CaughtExceptionWithFiles(exception, stackTrace, fileContentMap);
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_graph.dart b/pkg/analyzer/lib/src/dart/analysis/library_graph.dart
index f4dcec5..d21d4e1 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_graph.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_graph.dart
@@ -110,8 +110,8 @@
// Sort libraries to produce stable signatures.
scc.sort((first, second) {
- var firstPath = first.file.path!;
- var secondPath = second.file.path!;
+ var firstPath = first.file.path;
+ var secondPath = second.file.path;
return firstPath.compareTo(secondPath);
});
@@ -128,7 +128,7 @@
for (var node in scc) {
cycle.libraries.add(node.file);
- signature.addLanguageVersion(node.file.packageLanguageVersion!);
+ signature.addLanguageVersion(node.file.packageLanguageVersion);
signature.addString(node.file.uriStr);
signature.addInt(node.file.libraryFiles.length);
diff --git a/pkg/analyzer/lib/src/dart/analysis/search.dart b/pkg/analyzer/lib/src/dart/analysis/search.dart
index 7d24cf9..9e3c4b0 100644
--- a/pkg/analyzer/lib/src/dart/analysis/search.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/search.dart
@@ -149,8 +149,8 @@
if (files != null) {
for (FileState file in files) {
- if (searchedFiles.add(file.path!, this)) {
- var index = await _driver.getIndex(file.path!);
+ if (searchedFiles.add(file.path, this)) {
+ var index = await _driver.getIndex(file.path);
if (index != null) {
var request = _IndexRequest(index);
request.addSubtypes(id, results, file);
@@ -174,7 +174,7 @@
List<FileState> knownFiles = _driver.fsState.knownFiles.toList();
for (FileState file in knownFiles) {
- var unitResult = await _driver.getUnitElement(file.path!);
+ var unitResult = await _driver.getUnitElement(file.path);
if (unitResult.state == ResultState.VALID) {
CompilationUnitElement unitElement = unitResult.element;
unitElement.accessors.forEach(addElement);
@@ -245,7 +245,7 @@
FileState library = _driver.fsState.getFileForPath(libraryPath);
for (FileState file in library.libraryFiles) {
if (file.path == path || file.referencedNames.contains(name)) {
- files.add(file.path!);
+ files.add(file.path);
}
}
}
@@ -316,7 +316,7 @@
const {
IndexRelationKind.IS_REFERENCED_BY: SearchResultKind.REFERENCE
},
- file.path!);
+ file.path);
}
}
}