Version 2.14.0-315.0.dev
Merge commit '460e00a6a6c2574ff222a6e772f7ab43a012936d' into 'dev'
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index 94a7e01..e6b028b 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -736,74 +736,69 @@
analysisServer.getExtensionCacheFor(result)?.cacheFromResult(result);
var unit = result.unit;
- if (unit != null) {
- if (analysisServer._hasAnalysisServiceSubscription(
- AnalysisService.HIGHLIGHTS, path)) {
- _runDelayed(() {
- _notificationManager.recordHighlightRegions(
- NotificationManager.serverId,
- path,
- _computeHighlightRegions(unit));
- });
- }
- if (analysisServer._hasAnalysisServiceSubscription(
- AnalysisService.NAVIGATION, path)) {
- _runDelayed(() {
- _notificationManager.recordNavigationParams(
- NotificationManager.serverId,
- path,
- _computeNavigationParams(path, unit));
- });
- }
- if (analysisServer._hasAnalysisServiceSubscription(
- AnalysisService.OCCURRENCES, path)) {
- _runDelayed(() {
- _notificationManager.recordOccurrences(
- NotificationManager.serverId, path, _computeOccurrences(unit));
- });
- }
- // if (analysisServer._hasAnalysisServiceSubscription(
- // AnalysisService.OUTLINE, path)) {
- // _runDelayed(() {
- // // TODO(brianwilkerson) Change NotificationManager to store params
- // // so that fileKind and libraryName can be recorded / passed along.
- // notificationManager.recordOutlines(NotificationManager.serverId, path,
- // _computeOutlineParams(path, unit, result.lineInfo));
- // });
- // }
- if (analysisServer._hasAnalysisServiceSubscription(
- AnalysisService.CLOSING_LABELS, path)) {
- _runDelayed(() {
- sendAnalysisNotificationClosingLabels(
- analysisServer, path, result.lineInfo, unit);
- });
- }
- if (analysisServer._hasAnalysisServiceSubscription(
- AnalysisService.FOLDING, path)) {
- _runDelayed(() {
- sendAnalysisNotificationFolding(
- analysisServer, path, result.lineInfo, unit);
- });
- }
- if (analysisServer._hasAnalysisServiceSubscription(
- AnalysisService.OUTLINE, path)) {
- _runDelayed(() {
- sendAnalysisNotificationOutline(analysisServer, result);
- });
- }
- if (analysisServer._hasAnalysisServiceSubscription(
- AnalysisService.OVERRIDES, path)) {
- _runDelayed(() {
- sendAnalysisNotificationOverrides(analysisServer, path, unit);
- });
- }
- if (analysisServer._hasFlutterServiceSubscription(
- FlutterService.OUTLINE, path)) {
- _runDelayed(() {
- sendFlutterNotificationOutline(analysisServer, result);
- });
- }
- // TODO(scheglov) Implement notifications for AnalysisService.IMPLEMENTED.
+ if (analysisServer._hasAnalysisServiceSubscription(
+ AnalysisService.HIGHLIGHTS, path)) {
+ _runDelayed(() {
+ _notificationManager.recordHighlightRegions(
+ NotificationManager.serverId, path, _computeHighlightRegions(unit));
+ });
+ }
+ if (analysisServer._hasAnalysisServiceSubscription(
+ AnalysisService.NAVIGATION, path)) {
+ _runDelayed(() {
+ _notificationManager.recordNavigationParams(
+ NotificationManager.serverId,
+ path,
+ _computeNavigationParams(path, unit));
+ });
+ }
+ if (analysisServer._hasAnalysisServiceSubscription(
+ AnalysisService.OCCURRENCES, path)) {
+ _runDelayed(() {
+ _notificationManager.recordOccurrences(
+ NotificationManager.serverId, path, _computeOccurrences(unit));
+ });
+ }
+ // if (analysisServer._hasAnalysisServiceSubscription(
+ // AnalysisService.OUTLINE, path)) {
+ // _runDelayed(() {
+ // // TODO(brianwilkerson) Change NotificationManager to store params
+ // // so that fileKind and libraryName can be recorded / passed along.
+ // notificationManager.recordOutlines(NotificationManager.serverId, path,
+ // _computeOutlineParams(path, unit, result.lineInfo));
+ // });
+ // }
+ if (analysisServer._hasAnalysisServiceSubscription(
+ AnalysisService.CLOSING_LABELS, path)) {
+ _runDelayed(() {
+ sendAnalysisNotificationClosingLabels(
+ analysisServer, path, result.lineInfo, unit);
+ });
+ }
+ if (analysisServer._hasAnalysisServiceSubscription(
+ AnalysisService.FOLDING, path)) {
+ _runDelayed(() {
+ sendAnalysisNotificationFolding(
+ analysisServer, path, result.lineInfo, unit);
+ });
+ }
+ if (analysisServer._hasAnalysisServiceSubscription(
+ AnalysisService.OUTLINE, path)) {
+ _runDelayed(() {
+ sendAnalysisNotificationOutline(analysisServer, result);
+ });
+ }
+ if (analysisServer._hasAnalysisServiceSubscription(
+ AnalysisService.OVERRIDES, path)) {
+ _runDelayed(() {
+ sendAnalysisNotificationOverrides(analysisServer, path, unit);
+ });
+ }
+ if (analysisServer._hasFlutterServiceSubscription(
+ FlutterService.OUTLINE, path)) {
+ _runDelayed(() {
+ sendFlutterNotificationOutline(analysisServer, result);
+ });
}
}
diff --git a/pkg/analysis_server/lib/src/computer/computer_outline.dart b/pkg/analysis_server/lib/src/computer/computer_outline.dart
index deca868..46408c8 100644
--- a/pkg/analysis_server/lib/src/computer/computer_outline.dart
+++ b/pkg/analysis_server/lib/src/computer/computer_outline.dart
@@ -17,17 +17,9 @@
DartUnitOutlineComputer(this.resolvedUnit, {this.withBasicFlutter = false});
- CompilationUnit get _unit {
- var unit = resolvedUnit.unit;
- if (unit == null) {
- throw StateError('DartUnitOutlineComputer created with invalid result');
- }
- return unit;
- }
-
/// Returns the computed outline, not `null`.
Outline compute() {
- var unit = _unit;
+ var unit = resolvedUnit.unit;
var unitContents = <Outline>[];
for (var unitMember in unit.declarations) {
if (unitMember is ClassDeclaration) {
@@ -325,7 +317,7 @@
}
Outline _newUnitOutline(List<Outline> unitContents) {
- var unit = _unit;
+ var unit = resolvedUnit.unit;
var element = Element(
ElementKind.COMPILATION_UNIT, '<unit>', Element.makeFlags(),
location: _getLocationNode(unit));
diff --git a/pkg/analysis_server/lib/src/computer/import_elements_computer.dart b/pkg/analysis_server/lib/src/computer/import_elements_computer.dart
index d6c013d..a29230f 100644
--- a/pkg/analysis_server/lib/src/computer/import_elements_computer.dart
+++ b/pkg/analysis_server/lib/src/computer/import_elements_computer.dart
@@ -32,11 +32,6 @@
Future<SourceChange> createEdits(
List<ImportedElements> importedElementsList) async {
var unit = libraryResult.unit;
- if (unit == null) {
- // We should never reach this point because the libraryResult should be
- // valid.
- return SourceChange('');
- }
var filteredImportedElements =
_filterImportedElements(importedElementsList);
var libraryElement = libraryResult.libraryElement;
@@ -279,11 +274,6 @@
/// Partially copied from DartFileEditBuilderImpl.
_InsertionDescription _getInsertionDescription(String importUri) {
var unit = libraryResult.unit;
- if (unit == null) {
- // We should never reach this point because the libraryResult should be
- // valid.
- return _InsertionDescription(0, after: 2);
- }
LibraryDirective? libraryDirective;
var importDirectives = <ImportDirective>[];
var otherDirectives = <Directive>[];
diff --git a/pkg/analysis_server/lib/src/domain_analysis.dart b/pkg/analysis_server/lib/src/domain_analysis.dart
index 2e2bc5d..df5d9f6 100644
--- a/pkg/analysis_server/lib/src/domain_analysis.dart
+++ b/pkg/analysis_server/lib/src/domain_analysis.dart
@@ -63,7 +63,7 @@
server.sendResponse(Response.fileNotAnalyzed(request, file));
return;
}
- var unit = result.unit!;
+ var unit = result.unit;
// Prepare the hovers.
var hovers = <HoverInformation>[];
@@ -105,7 +105,7 @@
elements = <ImportedElements>[];
} else {
elements =
- ImportedElementsComputer(result.unit!, params.offset, params.length)
+ ImportedElementsComputer(result.unit, params.offset, params.length)
.compute();
}
@@ -166,7 +166,7 @@
var allResults = <AnalysisNavigationParams>[];
var result = await server.getResolvedUnit(file);
if (result != null && result.state == ResultState.VALID) {
- var unit = result.unit!;
+ var unit = result.unit;
var collector = NavigationCollectorImpl();
computeDartNavigation(
server.resourceProvider, collector, unit, offset, length);
@@ -237,7 +237,7 @@
}
// Ensure the offset provided is a valid location in the file.
- final unit = result.unit!;
+ final unit = result.unit;
final computer = DartUnitSignatureComputer(
server.getDartdocDirectiveInfoFor(result), unit, params.offset);
if (!computer.offsetIsValid) {
diff --git a/pkg/analysis_server/lib/src/domain_completion.dart b/pkg/analysis_server/lib/src/domain_completion.dart
index 78db63a..9a10237 100644
--- a/pkg/analysis_server/lib/src/domain_completion.dart
+++ b/pkg/analysis_server/lib/src/domain_completion.dart
@@ -330,7 +330,7 @@
}
server.requestStatistics?.addItemTimeNow(request, 'resolvedUnit');
if (resolvedUnit.state == ResultState.VALID) {
- if (offset < 0 || offset > resolvedUnit.content!.length) {
+ if (offset < 0 || offset > resolvedUnit.content.length) {
server.sendResponse(Response.invalidParameter(
request,
'params.offset',
@@ -339,7 +339,7 @@
return;
}
- recordRequest(performance, file, resolvedUnit.content!, offset);
+ recordRequest(performance, file, resolvedUnit.content, offset);
}
var declarationsTracker = server.declarationsTracker;
if (declarationsTracker == null) {
diff --git a/pkg/analysis_server/lib/src/domain_kythe.dart b/pkg/analysis_server/lib/src/domain_kythe.dart
index b03acbb..990588e 100644
--- a/pkg/analysis_server/lib/src/domain_kythe.dart
+++ b/pkg/analysis_server/lib/src/domain_kythe.dart
@@ -47,8 +47,8 @@
var entries = <KytheEntry>[];
// TODO(brianwilkerson) Figure out how to get the list of files.
var files = <String>[];
- result.unit!.accept(KytheDartVisitor(server.resourceProvider, entries,
- file, InheritanceManager3(), result.content!));
+ result.unit.accept(KytheDartVisitor(server.resourceProvider, entries,
+ file, InheritanceManager3(), result.content));
allResults.add(KytheGetKytheEntriesResult(entries, files));
}
//
diff --git a/pkg/analysis_server/lib/src/domains/execution/completion.dart b/pkg/analysis_server/lib/src/domains/execution/completion.dart
index 97ab5bf..7162de9 100644
--- a/pkg/analysis_server/lib/src/domains/execution/completion.dart
+++ b/pkg/analysis_server/lib/src/domains/execution/completion.dart
@@ -53,7 +53,7 @@
// Compute the patched context file content.
var targetCode = SourceEdit.applySequence(
- contextResult.content!,
+ contextResult.content,
changeBuilder.sourceChange.edits[0].edits,
);
diff --git a/pkg/analysis_server/lib/src/edit/edit_domain.dart b/pkg/analysis_server/lib/src/edit/edit_domain.dart
index 5513519..b73448c 100644
--- a/pkg/analysis_server/lib/src/edit/edit_domain.dart
+++ b/pkg/analysis_server/lib/src/edit/edit_domain.dart
@@ -401,7 +401,7 @@
return;
}
var libraryUnit = result.libraryElement.definingCompilationUnit;
- if (libraryUnit != result.unit!.declaredElement) {
+ if (libraryUnit != result.unit.declaredElement) {
// The file in the request is a part of a library. We need to pass the
// defining compilation unit to the computer, not the part.
result = await server.getResolvedUnit(libraryUnit.source.fullName);
@@ -483,8 +483,8 @@
return;
}
var fileStamp = -1;
- var code = result.content!;
- var unit = result.unit!;
+ var code = result.content;
+ var unit = result.unit;
var errors = result.errors;
// check if there are scan/parse errors in the file
var numScanParseErrors = _getNumberOfScanParseErrors(errors);
@@ -627,7 +627,7 @@
error.errorCode: ${error.errorCode}
''';
throw CaughtExceptionWithFiles(exception, stackTrace, {
- file: result.content!,
+ file: result.content,
'parameters': parametersFile,
});
}
@@ -766,7 +766,7 @@
length: $length
''';
throw CaughtExceptionWithFiles(exception, stackTrace, {
- file: result.content!,
+ file: result.content,
'parameters': parametersFile,
});
}
diff --git a/pkg/analysis_server/lib/src/flutter/flutter_outline_computer.dart b/pkg/analysis_server/lib/src/flutter/flutter_outline_computer.dart
index d216445..8c3dd26 100644
--- a/pkg/analysis_server/lib/src/flutter/flutter_outline_computer.dart
+++ b/pkg/analysis_server/lib/src/flutter/flutter_outline_computer.dart
@@ -31,7 +31,7 @@
// Create outlines for widgets.
var visitor = _FlutterOutlineBuilder(this);
- resolvedUnit.unit!.accept(visitor);
+ resolvedUnit.unit.accept(visitor);
// Associate Flutter outlines with Dart outlines.
for (var outline in visitor.outlines) {
@@ -66,7 +66,7 @@
var name = parameter.displayName;
- var label = resolvedUnit.content!.substring(argument.offset, argument.end);
+ var label = resolvedUnit.content.substring(argument.offset, argument.end);
if (label.contains('\n')) {
label = '…';
}
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/commands/organize_imports.dart b/pkg/analysis_server/lib/src/lsp/handlers/commands/organize_imports.dart
index 6b3ac68..2a81ac0 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/commands/organize_imports.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/commands/organize_imports.dart
@@ -41,8 +41,8 @@
}
return result.mapResult((result) {
- final code = result.content!;
- final unit = result.unit!;
+ final code = result.content;
+ final unit = result.unit;
if (hasScanParseErrors(result.errors)) {
// It's not uncommon for editors to run this command automatically on-save
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart
index 8dc8323..a1c9fab 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart
@@ -205,7 +205,7 @@
) async {
final performance = CompletionPerformance();
performance.path = unit.path;
- performance.setContentsAndOffset(unit.content!, offset);
+ performance.setContentsAndOffset(unit.content, offset);
server.performanceStats.completion.add(performance);
return await performance.runRequestOperation((perf) async {
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_document_highlights.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_document_highlights.dart
index ff213a4..ae96228 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handler_document_highlights.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_document_highlights.dart
@@ -34,7 +34,7 @@
return offset.mapResult((requestedOffset) {
final collector = OccurrencesCollectorImpl();
- addDartOccurrences(collector, unit.result.unit!);
+ addDartOccurrences(collector, unit.result.unit);
// Find an occurrence that has an instance that spans the position.
for (final occurrence in collector.allOccurrences) {
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_hover.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_hover.dart
index c533db2..1195c9b 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handler_hover.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_hover.dart
@@ -83,10 +83,6 @@
ErrorOr<Hover?> _getHover(ResolvedUnitResult unit, int offset) {
final compilationUnit = unit.unit;
- if (compilationUnit == null) {
- return success(null);
- }
-
final computer = DartUnitHoverComputer(
server.getDartdocDirectiveInfoFor(unit), compilationUnit, offset);
final hover = computer.compute();
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_references.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_references.dart
index b302227..93c78da 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handler_references.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_references.dart
@@ -83,7 +83,7 @@
convert(results, toLocation).whereNotNull().toList();
final compilationUnit = unit.unit;
- if (compilationUnit != null && params.context.includeDeclaration == true) {
+ if (params.context.includeDeclaration == true) {
// Also include the definition for the symbol at this location.
referenceResults.addAll(_getDeclarations(compilationUnit, offset));
}
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_signature_help.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_signature_help.dart
index 34f4193..25a78ca 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handler_signature_help.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_signature_help.dart
@@ -62,7 +62,7 @@
// signature help for that.
final typeArgsSignature = _tryGetTypeArgsSignatureHelp(
dartDocInfo,
- unit.result.unit!,
+ unit.result.unit,
offset,
autoTriggered,
formats,
@@ -72,7 +72,7 @@
}
final computer =
- DartUnitSignatureComputer(dartDocInfo, unit.result.unit!, offset);
+ DartUnitSignatureComputer(dartDocInfo, unit.result.unit, offset);
if (!computer.offsetIsValid) {
return success(null); // No error, just no valid hover.
}
diff --git a/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart b/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart
index a09919e..7f381dd 100644
--- a/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart
+++ b/pkg/analysis_server/lib/src/lsp/lsp_analysis_server.dart
@@ -864,28 +864,26 @@
analysisServer.getExtensionCacheFor(result)?.cacheFromResult(result);
final unit = result.unit;
- if (unit != null) {
- if (analysisServer.shouldSendClosingLabelsFor(path)) {
- final labels = DartUnitClosingLabelsComputer(result.lineInfo, unit)
- .compute()
- .map((l) => toClosingLabel(result.lineInfo, l))
- .toList();
+ if (analysisServer.shouldSendClosingLabelsFor(path)) {
+ final labels = DartUnitClosingLabelsComputer(result.lineInfo, unit)
+ .compute()
+ .map((l) => toClosingLabel(result.lineInfo, l))
+ .toList();
- analysisServer.publishClosingLabels(path, labels);
- }
- if (analysisServer.shouldSendOutlineFor(path)) {
- final outline = DartUnitOutlineComputer(
- result,
- withBasicFlutter: true,
- ).compute();
- final lspOutline = toOutline(result.lineInfo, outline);
- analysisServer.publishOutline(path, lspOutline);
- }
- if (analysisServer.shouldSendFlutterOutlineFor(path)) {
- final outline = FlutterOutlineComputer(result).compute();
- final lspOutline = toFlutterOutline(result.lineInfo, outline);
- analysisServer.publishFlutterOutline(path, lspOutline);
- }
+ analysisServer.publishClosingLabels(path, labels);
+ }
+ if (analysisServer.shouldSendOutlineFor(path)) {
+ final outline = DartUnitOutlineComputer(
+ result,
+ withBasicFlutter: true,
+ ).compute();
+ final lspOutline = toOutline(result.lineInfo, outline);
+ analysisServer.publishOutline(path, lspOutline);
+ }
+ if (analysisServer.shouldSendFlutterOutlineFor(path)) {
+ final outline = FlutterOutlineComputer(result).compute();
+ final lspOutline = toFlutterOutline(result.lineInfo, outline);
+ analysisServer.publishFlutterOutline(path, lspOutline);
}
}
diff --git a/pkg/analysis_server/lib/src/operation/operation_analysis.dart b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
index cb7e0ed..94f0005 100644
--- a/pkg/analysis_server/lib/src/operation/operation_analysis.dart
+++ b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
@@ -94,7 +94,7 @@
AnalysisServer server, ResolvedUnitResult resolvedUnit) {
_sendNotification(server, () {
protocol.FileKind fileKind;
- var unit = resolvedUnit.unit!;
+ var unit = resolvedUnit.unit;
if (unit.directives.any((d) => d is PartOfDirective)) {
fileKind = protocol.FileKind.PART;
} else {
diff --git a/pkg/analysis_server/lib/src/services/completion/completion_core.dart b/pkg/analysis_server/lib/src/services/completion/completion_core.dart
index 2c71a1e..d6fe971 100644
--- a/pkg/analysis_server/lib/src/services/completion/completion_core.dart
+++ b/pkg/analysis_server/lib/src/services/completion/completion_core.dart
@@ -44,7 +44,7 @@
ResourceProvider get resourceProvider => result.session.resourceProvider;
@override
- Source get source => result.unit!.declaredElement!.source;
+ Source get source => result.unit.declaredElement!.source;
@override
String? get sourceContents => result.content;
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart b/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart
index f6dc69a..b71fa3e 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart
@@ -458,7 +458,7 @@
return performance.run(
'build DartCompletionRequest',
(_) {
- var unit = request.result.unit!;
+ var unit = request.result.unit;
var libSource = unit.declaredElement!.library.source;
var objectType = request.result.typeProvider.objectType;
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/documentation_cache.dart b/pkg/analysis_server/lib/src/services/completion/dart/documentation_cache.dart
index 4457f2e..0ca62d6 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/documentation_cache.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/documentation_cache.dart
@@ -29,7 +29,7 @@
/// Fill the cache with data from the [result].
void cacheFromResult(ResolvedUnitResult result) {
- var compilationUnit = result.unit?.declaredElement;
+ var compilationUnit = result.unit.declaredElement;
if (compilationUnit != null) {
documentationCache.remove(_keyForUnit(compilationUnit));
_cacheFromElement(compilationUnit);
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/extension_cache.dart b/pkg/analysis_server/lib/src/services/completion/dart/extension_cache.dart
index 96decc0..38481dc 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/extension_cache.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/extension_cache.dart
@@ -21,7 +21,7 @@
/// Fill the cache with data from the [result].
void cacheFromResult(ResolvedUnitResult result) {
- var element = result.unit?.declaredElement;
+ var element = result.unit.declaredElement;
if (element != null) {
_cacheFromElement(element);
for (var library in result.libraryElement.importedLibraries) {
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart
index c767698..f14d554 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart
@@ -158,7 +158,7 @@
return;
}
- var libraryUnits = request.result.unit?.declaredElement?.library.units;
+ var libraryUnits = request.result.unit.declaredElement?.library.units;
if (libraryUnits == null) {
return;
}
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/utilities.dart b/pkg/analysis_server/lib/src/services/completion/dart/utilities.dart
index d045443..8812c24 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/utilities.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/utilities.dart
@@ -194,7 +194,7 @@
}
String getRequestLineIndent(DartCompletionRequest request) {
- var content = request.result.content!;
+ var content = request.result.content;
var lineStartOffset = request.offset;
var notWhitespaceOffset = request.offset;
for (; lineStartOffset > 0; lineStartOffset--) {
diff --git a/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart b/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart
index e71629b..e337213 100644
--- a/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart
+++ b/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart
@@ -128,7 +128,7 @@
Source get source => unitElement.source;
- CompilationUnit get unit => statementContext.resolveResult.unit!;
+ CompilationUnit get unit => statementContext.resolveResult.unit;
CompilationUnitElement get unitElement => unit.declaredElement!;
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart b/pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart
index 83b0402..14485d2 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart
@@ -254,7 +254,7 @@
sessionHelper = AnalysisSessionHelper(resolvedResult.session),
typeProvider = resolvedResult.typeProvider,
selectionEnd = selectionOffset + selectionLength,
- unit = resolvedResult.unit!,
+ unit = resolvedResult.unit,
utils = CorrectionUtils(resolvedResult);
/// Return `true` if the lint with the given [name] is enabled.
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/flutter_wrap.dart b/pkg/analysis_server/lib/src/services/correction/dart/flutter_wrap.dart
index 1b02c88..318a934 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/flutter_wrap.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/flutter_wrap.dart
@@ -39,7 +39,7 @@
Iterable<CorrectionProducer> _wrapMultipleWidgets() sync* {
var selectionRange = SourceRange(selectionOffset, selectionLength);
var analyzer = SelectionAnalyzer(selectionRange);
- resolvedResult.unit!.accept(analyzer);
+ resolvedResult.unit.accept(analyzer);
var widgetExpressions = <Expression>[];
if (analyzer.hasSelectedNodes) {
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/organize_imports.dart b/pkg/analysis_server/lib/src/services/correction/dart/organize_imports.dart
index caca5ec..d5cf7c0 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/organize_imports.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/organize_imports.dart
@@ -25,7 +25,7 @@
@override
Future<void> compute(ChangeBuilder builder) async {
var organizer =
- ImportOrganizer(resolvedResult.content!, unit, resolvedResult.errors);
+ ImportOrganizer(resolvedResult.content, unit, resolvedResult.errors);
// todo (pq): consider restructuring organizer to allow a passed-in change
// builder
for (var edit in organizer.organize()) {
diff --git a/pkg/analysis_server/lib/src/services/correction/statement_analyzer.dart b/pkg/analysis_server/lib/src/services/correction/statement_analyzer.dart
index 9f1c68a..9a156c4 100644
--- a/pkg/analysis_server/lib/src/services/correction/statement_analyzer.dart
+++ b/pkg/analysis_server/lib/src/services/correction/statement_analyzer.dart
@@ -52,7 +52,7 @@
/// Analyze the selection, compute [status] and nodes.
void analyze() {
- resolveResult.unit!.accept(this);
+ resolveResult.unit.accept(this);
}
/// Records fatal error with given message and [Location].
@@ -73,7 +73,7 @@
{
var selectionStart = selection.offset;
var selectionEnd = selection.end;
- var commentRanges = getCommentRanges(resolveResult.unit!);
+ var commentRanges = getCommentRanges(resolveResult.unit);
for (var commentRange in commentRanges) {
if (commentRange.contains(selectionStart)) {
invalidSelection('Selection begins inside a comment.');
@@ -208,9 +208,9 @@
/// Returns `true` if there are [Token]s in the given [SourceRange].
bool _hasTokens(SourceRange range) {
- var fullText = resolveResult.content!;
+ var fullText = resolveResult.content;
var rangeText = fullText.substring(range.offset, range.end);
- return _getTokens(rangeText, resolveResult.unit!.featureSet).isNotEmpty;
+ return _getTokens(rangeText, resolveResult.unit.featureSet).isNotEmpty;
}
/// Returns `true` if [nodes] contains [node].
diff --git a/pkg/analysis_server/lib/src/services/correction/util.dart b/pkg/analysis_server/lib/src/services/correction/util.dart
index 57ffe36..ae54a38 100644
--- a/pkg/analysis_server/lib/src/services/correction/util.dart
+++ b/pkg/analysis_server/lib/src/services/correction/util.dart
@@ -537,9 +537,9 @@
String? _endOfLine;
CorrectionUtils(ResolvedUnitResult result)
- : unit = result.unit!,
+ : unit = result.unit,
_library = result.libraryElement,
- _buffer = result.content!;
+ _buffer = result.content;
/// Returns the EOL to use for this [CompilationUnit].
String get endOfLine {
diff --git a/pkg/analysis_server/lib/src/services/flutter/property.dart b/pkg/analysis_server/lib/src/services/flutter/property.dart
index 0d4f3e3..2a6586d 100644
--- a/pkg/analysis_server/lib/src/services/flutter/property.dart
+++ b/pkg/analysis_server/lib/src/services/flutter/property.dart
@@ -659,7 +659,7 @@
String? _expressionCode(Expression? expression) {
if (expression != null) {
- var content = property.resolvedUnit.content!;
+ var content = property.resolvedUnit.content;
return content.substring(expression.offset, expression.end);
}
return null;
diff --git a/pkg/analysis_server/lib/src/services/flutter/widget_descriptions.dart b/pkg/analysis_server/lib/src/services/flutter/widget_descriptions.dart
index f38a7cc..77da5dda 100644
--- a/pkg/analysis_server/lib/src/services/flutter/widget_descriptions.dart
+++ b/pkg/analysis_server/lib/src/services/flutter/widget_descriptions.dart
@@ -336,7 +336,7 @@
String? valueExpressionCode;
if (valueExpression != null) {
- valueExpressionCode = resolvedUnit.content!.substring(
+ valueExpressionCode = resolvedUnit.content.substring(
valueExpression.offset,
valueExpression.end,
);
diff --git a/pkg/analysis_server/lib/src/services/refactoring/extract_local.dart b/pkg/analysis_server/lib/src/services/refactoring/extract_local.dart
index 0fc97d8..7d361dc 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/extract_local.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/extract_local.dart
@@ -66,7 +66,7 @@
@override
String get refactoringName => 'Extract Local Variable';
- CompilationUnit get unit => resolveResult.unit!;
+ CompilationUnit get unit => resolveResult.unit;
CompilationUnitElement get unitElement => unit.declaredElement!;
@@ -231,7 +231,7 @@
return RefactoringStatus.fatal(
'The selection offset must be greater than zero.');
}
- if (selectionOffset + selectionLength >= resolveResult.content!.length) {
+ if (selectionOffset + selectionLength >= resolveResult.content.length) {
return RefactoringStatus.fatal(
'The selection end offset must be less then the length of the file.');
}
diff --git a/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart b/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
index a2c9a19..ebb50c0 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
@@ -297,7 +297,7 @@
// add replace edit
var edit = newSourceEdit_range(range, invocationSource);
doSourceChange_addElementEdit(
- change, resolveResult.unit!.declaredElement!, edit);
+ change, resolveResult.unit.declaredElement!, edit);
}
// add method declaration
{
@@ -378,7 +378,7 @@
var offset = _parentMember!.end;
var edit = SourceEdit(offset, 0, '$eol$eol$prefix$declarationSource');
doSourceChange_addElementEdit(
- change, resolveResult.unit!.declaredElement!, edit);
+ change, resolveResult.unit.declaredElement!, edit);
}
}
// done
@@ -450,7 +450,7 @@
return RefactoringStatus.fatal(
'The selection offset must be greater than zero.');
}
- if (selectionOffset + selectionLength >= resolveResult.content!.length) {
+ if (selectionOffset + selectionLength >= resolveResult.content.length) {
return RefactoringStatus.fatal(
'The selection end offset must be less then the length of the file.');
}
@@ -658,12 +658,11 @@
var originalSource = utils.getText(range.offset, range.length);
var pattern = _SourcePattern();
var replaceEdits = <SourceEdit>[];
- resolveResult.unit!
- .accept(_GetSourcePatternVisitor(range, pattern, replaceEdits));
+ resolveResult.unit.accept(_GetSourcePatternVisitor(range, pattern, replaceEdits));
replaceEdits = replaceEdits.reversed.toList();
var source = SourceEdit.applySequence(originalSource, replaceEdits);
pattern.normalizedSource =
- _getNormalizedSource(source, resolveResult.unit!.featureSet);
+ _getNormalizedSource(source, resolveResult.unit.featureSet);
return pattern;
}
@@ -706,7 +705,7 @@
var result = RefactoringStatus();
var assignedUsedVariables = <VariableElement>[];
- var unit = resolveResult.unit!;
+ var unit = resolveResult.unit;
_visibleRangeMap = VisibleRangesComputer.forNode(unit);
unit.accept(
_InitializeParametersVisitor(this, assignedUsedVariables),
diff --git a/pkg/analysis_server/lib/src/services/refactoring/extract_widget.dart b/pkg/analysis_server/lib/src/services/refactoring/extract_widget.dart
index 1137c45..6fe4778 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/extract_widget.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/extract_widget.dart
@@ -85,7 +85,7 @@
}
FeatureSet get _featureSet {
- return resolveResult.unit!.featureSet;
+ return resolveResult.unit.featureSet;
}
Flutter get _flutter => Flutter.instance;
diff --git a/pkg/analysis_server/lib/src/services/refactoring/inline_local.dart b/pkg/analysis_server/lib/src/services/refactoring/inline_local.dart
index c7577b6..e0f3df71 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/inline_local.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/inline_local.dart
@@ -114,7 +114,7 @@
@override
Future<SourceChange> createChange() {
var change = SourceChange(refactoringName);
- var unitElement = resolveResult.unit!.declaredElement!;
+ var unitElement = resolveResult.unit.declaredElement!;
var state = _initialState!;
// remove declaration
{
diff --git a/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart b/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
index 1cff243..f3e4b67 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
@@ -363,7 +363,7 @@
_methodNode = methodNode;
var resolvedUnit = declaration.resolvedUnit!;
- _methodUnit = resolvedUnit.unit!;
+ _methodUnit = resolvedUnit.unit;
_methodUtils = CorrectionUtils(resolvedUnit);
if (methodNode is MethodDeclaration) {
diff --git a/pkg/analysis_server/lib/src/services/refactoring/move_file.dart b/pkg/analysis_server/lib/src/services/refactoring/move_file.dart
index 1c259a4..f768861 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/move_file.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/move_file.dart
@@ -71,7 +71,7 @@
@override
Future<SourceChange> createChange() async {
var changeBuilder = ChangeBuilder(session: resolvedUnit.session);
- var element = resolvedUnit.unit!.declaredElement;
+ var element = resolvedUnit.unit.declaredElement;
if (element == null) {
return changeBuilder.sourceChange;
}
@@ -92,14 +92,14 @@
var definingUnitResult = libraryResult.units.first;
for (var result in libraryResult.units) {
if (result.isPart) {
- var partOfs = result.unit!.directives
+ var partOfs = result.unit.directives
.whereType<PartOfDirective>()
.map((e) => e.uri)
.whereNotNull()
.where((uri) => _isRelativeUri(uri.stringValue));
if (partOfs.isNotEmpty) {
await changeBuilder.addDartFileEdit(
- result.unit!.declaredElement!.source.fullName, (builder) {
+ result.unit.declaredElement!.source.fullName, (builder) {
partOfs.forEach((uri) {
var newLocation =
pathContext.join(newDir, pathos.basename(newFile));
@@ -114,7 +114,7 @@
if (newDir != oldDir) {
await changeBuilder.addDartFileEdit(definingUnitResult.path, (builder) {
- for (var directive in definingUnitResult.unit!.directives) {
+ for (var directive in definingUnitResult.unit.directives) {
if (directive is UriBasedDirective) {
_updateUriReference(builder, directive, oldDir, newDir);
}
@@ -123,7 +123,7 @@
}
} else if (newDir != oldDir) {
// Otherwise, we need to update any relative part-of references.
- var partOfs = resolvedUnit.unit!.directives
+ var partOfs = resolvedUnit.unit.directives
.whereType<PartOfDirective>()
.map((e) => e.uri)
.whereNotNull()
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart b/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart
index 422d944..91654f8 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart
@@ -334,9 +334,6 @@
}
var unit = result.unit;
- if (unit == null) {
- return const [];
- }
var collector = _LocalElementsCollector(name);
unit.accept(collector);
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_extension_member.dart b/pkg/analysis_server/lib/src/services/refactoring/rename_extension_member.dart
index 5367235..f0b65ab 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_extension_member.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/rename_extension_member.dart
@@ -165,9 +165,6 @@
}
var unit = result.unit;
- if (unit == null) {
- return const [];
- }
var collector = _LocalElementsCollector(name);
unit.accept(collector);
diff --git a/pkg/analysis_server/lib/src/status/diagnostics.dart b/pkg/analysis_server/lib/src/status/diagnostics.dart
index 610be65..999bc4d 100644
--- a/pkg/analysis_server/lib/src/status/diagnostics.dart
+++ b/pkg/analysis_server/lib/src/status/diagnostics.dart
@@ -246,7 +246,7 @@
var result = await driver.getResult2(filePath);
if (result is ResolvedUnitResult) {
var writer = AstWriter(buf);
- result.unit!.accept(writer);
+ result.unit.accept(writer);
} else {
p(
'An AST could not be produced for the file '
@@ -836,7 +836,7 @@
var result = await driver.getResult2(filePath);
CompilationUnitElement? compilationUnitElement;
if (result is ResolvedUnitResult) {
- compilationUnitElement = result.unit?.declaredElement;
+ compilationUnitElement = result.unit.declaredElement;
}
if (compilationUnitElement != null) {
var writer = ElementWriter(buf);
diff --git a/pkg/analysis_server/test/abstract_single_unit.dart b/pkg/analysis_server/test/abstract_single_unit.dart
index 5323a57..b18416c 100644
--- a/pkg/analysis_server/test/abstract_single_unit.dart
+++ b/pkg/analysis_server/test/abstract_single_unit.dart
@@ -72,8 +72,8 @@
Future<void> resolveTestFile() async {
var result = await session.getResolvedUnit(testFile) as ResolvedUnitResult;
testAnalysisResult = result;
- testCode = result.content!;
- testUnit = result.unit!;
+ testCode = result.content;
+ testUnit = result.unit;
if (verifyNoTestUnitErrors) {
expect(result.errors.where((AnalysisError error) {
return error.errorCode != HintCode.DEAD_CODE &&
diff --git a/pkg/analysis_server/test/services/correction/organize_directives_test.dart b/pkg/analysis_server/test/services/correction/organize_directives_test.dart
index 8681ccb..7696ad5 100644
--- a/pkg/analysis_server/test/services/correction/organize_directives_test.dart
+++ b/pkg/analysis_server/test/services/correction/organize_directives_test.dart
@@ -583,7 +583,7 @@
Future<void> _computeUnitAndErrors(String code) async {
addTestSource(code);
var result = await session.getResolvedUnit(testFile) as ResolvedUnitResult;
- testUnit = result.unit!;
+ testUnit = result.unit;
testErrors = result.errors;
}
}
diff --git a/pkg/analysis_server/test/services/search/search_engine_test.dart b/pkg/analysis_server/test/services/search/search_engine_test.dart
index 99aa552..512db98 100644
--- a/pkg/analysis_server/test/services/search/search_engine_test.dart
+++ b/pkg/analysis_server/test/services/search/search_engine_test.dart
@@ -41,8 +41,8 @@
result = await resolveFile(path);
expect(result.state, ResultState.VALID);
- findNode = FindNode(result.content!, result.unit!);
- findElement = FindElement(result.unit!);
+ findNode = FindNode(result.content, result.unit);
+ findElement = FindElement(result.unit);
}
/// Put the [code] into the test file, and resolve it.
diff --git a/pkg/analysis_server/test/src/cider/completion_test.dart b/pkg/analysis_server/test/src/cider/completion_test.dart
index b83e4ef..7a50af7 100644
--- a/pkg/analysis_server/test/src/cider/completion_test.dart
+++ b/pkg/analysis_server/test/src/cider/completion_test.dart
@@ -806,7 +806,7 @@
/// for completion we don't resolve unnecessary node.
void _configureToCheckNotResolved({required Set<String> identifiers}) {
_testResolvedUnit = (resolvedUnitResult) {
- var unit = resolvedUnitResult.unit!;
+ var unit = resolvedUnitResult.unit;
unit.accept(
FunctionAstVisitor(
simpleIdentifier: (node) {
diff --git a/pkg/analysis_server/test/src/computer/closing_labels_computer_test.dart b/pkg/analysis_server/test/src/computer/closing_labels_computer_test.dart
index 5e39f9a..83a9954 100644
--- a/pkg/analysis_server/test/src/computer/closing_labels_computer_test.dart
+++ b/pkg/analysis_server/test/src/computer/closing_labels_computer_test.dart
@@ -399,7 +399,7 @@
newFile(sourcePath, content: sourceContent);
var result =
await session.getResolvedUnit(sourcePath) as ResolvedUnitResult;
- var computer = DartUnitClosingLabelsComputer(result.lineInfo, result.unit!);
+ var computer = DartUnitClosingLabelsComputer(result.lineInfo, result.unit);
return computer.compute();
}
}
diff --git a/pkg/analysis_server/test/src/computer/folding_computer_test.dart b/pkg/analysis_server/test/src/computer/folding_computer_test.dart
index e6084a0..f63607d 100644
--- a/pkg/analysis_server/test/src/computer/folding_computer_test.dart
+++ b/pkg/analysis_server/test/src/computer/folding_computer_test.dart
@@ -583,7 +583,7 @@
newFile(sourcePath, content: sourceContent);
var result =
await session.getResolvedUnit(sourcePath) as ResolvedUnitResult;
- var computer = DartUnitFoldingComputer(result.lineInfo, result.unit!);
+ var computer = DartUnitFoldingComputer(result.lineInfo, result.unit);
return computer.compute();
}
}
diff --git a/pkg/analysis_server/test/src/computer/highlights_computer_test.dart b/pkg/analysis_server/test/src/computer/highlights_computer_test.dart
index 145950d..46a6c44 100644
--- a/pkg/analysis_server/test/src/computer/highlights_computer_test.dart
+++ b/pkg/analysis_server/test/src/computer/highlights_computer_test.dart
@@ -122,7 +122,7 @@
expect(result.errors, isEmpty);
}
- var computer = DartUnitHighlightsComputer(result.unit!);
+ var computer = DartUnitHighlightsComputer(result.unit);
highlights = computer.compute();
}
}
diff --git a/pkg/analysis_server/test/src/computer/imported_elements_computer_test.dart b/pkg/analysis_server/test/src/computer/imported_elements_computer_test.dart
index 3448803..a63d9bc 100644
--- a/pkg/analysis_server/test/src/computer/imported_elements_computer_test.dart
+++ b/pkg/analysis_server/test/src/computer/imported_elements_computer_test.dart
@@ -473,7 +473,7 @@
var result =
await session.getResolvedUnit(sourcePath) as ResolvedUnitResult;
var computer = ImportedElementsComputer(
- result.unit!, content.indexOf(selection), selection.length);
+ result.unit, content.indexOf(selection), selection.length);
importedElements = computer.compute();
}
}
diff --git a/pkg/analysis_server/test/src/computer/selection_range_computer_test.dart b/pkg/analysis_server/test/src/computer/selection_range_computer_test.dart
index 603b7b6..27e9e7f 100644
--- a/pkg/analysis_server/test/src/computer/selection_range_computer_test.dart
+++ b/pkg/analysis_server/test/src/computer/selection_range_computer_test.dart
@@ -195,7 +195,7 @@
newFile(sourcePath, content: sourceContent);
var result =
await session.getResolvedUnit(sourcePath) as ResolvedUnitResult;
- var computer = DartSelectionRangeComputer(result.unit!, offset);
+ var computer = DartSelectionRangeComputer(result.unit, offset);
return computer.compute();
}
diff --git a/pkg/analysis_server/test/src/services/correction/fix/data_driven/code_template_test.dart b/pkg/analysis_server/test/src/services/correction/fix/data_driven/code_template_test.dart
index 5103661..f6ccc74 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/data_driven/code_template_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/data_driven/code_template_test.dart
@@ -72,7 +72,7 @@
}
void g(int x, int y) {}
''');
- var unit = testAnalysisResult.unit!;
+ var unit = testAnalysisResult.unit;
var function = unit.declarations[0] as FunctionDeclaration;
var body = function.functionExpression.body as BlockFunctionBody;
var statement = body.block.statements[0] as ExpressionStatement;
diff --git a/pkg/analysis_server/test/src/services/flutter/widget_description.dart b/pkg/analysis_server/test/src/services/flutter/widget_description.dart
index 8cdbfff..33f47ad 100644
--- a/pkg/analysis_server/test/src/services/flutter/widget_description.dart
+++ b/pkg/analysis_server/test/src/services/flutter/widget_description.dart
@@ -24,7 +24,7 @@
expect(fileEdit.file, testAnalysisResult.path);
var actual = SourceEdit.applySequence(
- testAnalysisResult.content!,
+ testAnalysisResult.content,
fileEdit.edits,
);
expect(actual, expected);
@@ -50,7 +50,7 @@
Future<protocol.FlutterGetWidgetDescriptionResult?> getDescription(
String search) async {
- var content = testAnalysisResult.content!;
+ var content = testAnalysisResult.content;
var offset = content.indexOf(search);
if (offset == -1) {
diff --git a/pkg/analysis_server/test/stress/completion/completion_runner.dart b/pkg/analysis_server/test/stress/completion/completion_runner.dart
index 8d16f86..16d1e81 100644
--- a/pkg/analysis_server/test/stress/completion/completion_runner.dart
+++ b/pkg/analysis_server/test/stress/completion/completion_runner.dart
@@ -82,9 +82,9 @@
output.write('.');
var result = await context.currentSession.getResolvedUnit(path)
as ResolvedUnitResult;
- var content = result.content!;
+ var content = result.content;
var lineInfo = result.lineInfo;
- var identifiers = _identifiersIn(result.unit!);
+ var identifiers = _identifiersIn(result.unit);
for (var identifier in identifiers) {
identifierCount++;
diff --git a/pkg/analysis_server/tool/code_completion/code_metrics.dart b/pkg/analysis_server/tool/code_completion/code_metrics.dart
index 898b393..565a9fd 100644
--- a/pkg/analysis_server/tool/code_completion/code_metrics.dart
+++ b/pkg/analysis_server/tool/code_completion/code_metrics.dart
@@ -1411,7 +1411,7 @@
continue;
}
- resolvedUnitResult.unit!.accept(collector);
+ resolvedUnitResult.unit.accept(collector);
} catch (exception) {
print('Exception caught analyzing: "$filePath"');
print(exception.toString());
diff --git a/pkg/analysis_server/tool/code_completion/completion_metrics.dart b/pkg/analysis_server/tool/code_completion/completion_metrics.dart
index 3527d19..46638b1 100644
--- a/pkg/analysis_server/tool/code_completion/completion_metrics.dart
+++ b/pkg/analysis_server/tool/code_completion/completion_metrics.dart
@@ -1319,7 +1319,7 @@
// Use the ExpectedCompletionsVisitor to compute the set of expected
// completions for this CompilationUnit.
final visitor = ExpectedCompletionsVisitor(filePath);
- _resolvedUnitResult.unit!.accept(visitor);
+ _resolvedUnitResult.unit.accept(visitor);
for (var expectedCompletion in visitor.expectedCompletions) {
var resolvedUnitResult = _resolvedUnitResult;
@@ -1328,7 +1328,7 @@
// have the context reanalyze the file
if (options.overlay != CompletionMetricsOptions.OVERLAY_NONE) {
var overlayContents = _getOverlayContents(
- _resolvedUnitResult.content!, expectedCompletion);
+ _resolvedUnitResult.content, expectedCompletion);
_provider.setOverlay(filePath,
content: overlayContents,
diff --git a/pkg/analysis_server/tool/code_completion/flutter_metrics.dart b/pkg/analysis_server/tool/code_completion/flutter_metrics.dart
index 886c484..edab701 100644
--- a/pkg/analysis_server/tool/code_completion/flutter_metrics.dart
+++ b/pkg/analysis_server/tool/code_completion/flutter_metrics.dart
@@ -224,7 +224,7 @@
continue;
}
- resolvedUnitResult.unit!.accept(collector);
+ resolvedUnitResult.unit.accept(collector);
} catch (exception, stackTrace) {
print('');
print('Exception caught analyzing: "$filePath"');
diff --git a/pkg/analysis_server/tool/code_completion/implicit_type_declarations.dart b/pkg/analysis_server/tool/code_completion/implicit_type_declarations.dart
index c2f21c9..8494fb4 100644
--- a/pkg/analysis_server/tool/code_completion/implicit_type_declarations.dart
+++ b/pkg/analysis_server/tool/code_completion/implicit_type_declarations.dart
@@ -208,7 +208,7 @@
continue;
}
- resolvedUnitResult.unit!.accept(collector);
+ resolvedUnitResult.unit.accept(collector);
} catch (exception, stacktrace) {
print('Exception caught analyzing: "$filePath"');
print(exception);
diff --git a/pkg/analysis_server/tool/code_completion/relevance_metrics.dart b/pkg/analysis_server/tool/code_completion/relevance_metrics.dart
index e80ba2a3..8a24e94 100644
--- a/pkg/analysis_server/tool/code_completion/relevance_metrics.dart
+++ b/pkg/analysis_server/tool/code_completion/relevance_metrics.dart
@@ -1964,7 +1964,7 @@
continue;
}
- resolvedUnitResult.unit!.accept(collector);
+ resolvedUnitResult.unit.accept(collector);
} catch (exception, stacktrace) {
print('Exception caught analyzing: "$filePath"');
print(exception);
diff --git a/pkg/analysis_server/tool/code_completion/relevance_table_generator.dart b/pkg/analysis_server/tool/code_completion/relevance_table_generator.dart
index 77359a0..3e2af94 100644
--- a/pkg/analysis_server/tool/code_completion/relevance_table_generator.dart
+++ b/pkg/analysis_server/tool/code_completion/relevance_table_generator.dart
@@ -317,7 +317,7 @@
/// Initialize this collector prior to visiting the unit in the [result].
void initializeFrom(ResolvedUnitResult result) {
- unit = result.unit!;
+ unit = result.unit;
}
@override
@@ -1484,7 +1484,7 @@
}
collector.initializeFrom(resolvedUnitResult);
- resolvedUnitResult.unit!.accept(collector);
+ resolvedUnitResult.unit.accept(collector);
} catch (exception, stacktrace) {
print('Exception caught analyzing: "$filePath"');
print(exception);
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md
index e8557d9..73619d3 100644
--- a/pkg/analyzer/CHANGELOG.md
+++ b/pkg/analyzer/CHANGELOG.md
@@ -3,6 +3,8 @@
* Changed `ParsedLibraryResult.units` to be non-nullable.
* Changed `ResolvedLibraryResult.element` to be non-nullable.
* Changed `ResolvedLibraryResult.units` to be non-nullable.
+* Changed `ResolvedUnitResult.content` to be non-nullable.
+* Changed `ResolvedUnitResult.unit` to be non-nullable.
* Deprecated and renamed `AnalysisSession.getXyz2()` into `getXyz()`.
* Changed `AnalysisDriver.results` to `Stream<Object>`.
It used to always produce `ResolvedUnitResult`s, but sometimes its
diff --git a/pkg/analyzer/lib/dart/analysis/results.dart b/pkg/analyzer/lib/dart/analysis/results.dart
index 550303b..13500ba 100644
--- a/pkg/analyzer/lib/dart/analysis/results.dart
+++ b/pkg/analyzer/lib/dart/analysis/results.dart
@@ -231,7 +231,7 @@
abstract class ResolvedUnitResult
implements SomeResolvedUnitResult, AnalysisResultWithErrors {
/// The content of the file that was scanned, parsed and resolved.
- String? get content;
+ String get content;
/// Return `true` if the file exists.
bool get exists;
@@ -246,7 +246,7 @@
TypeSystem get typeSystem;
/// The fully resolved compilation unit for the [content].
- CompilationUnit? get unit;
+ CompilationUnit get unit;
}
/// An indication of whether an analysis result is valid, and if not why.
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index df488a6..c7726fb 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -1672,7 +1672,7 @@
List<AnalysisError> errors = _getErrorsFromSerialized(file, unit.errors);
_updateHasErrorOrWarningFlag(file, errors);
var index = unit.index!;
- if (resolvedUnit != null) {
+ if (content != null && resolvedUnit != null) {
var resolvedUnitResult = ResolvedUnitResultImpl(
currentSession,
file.path,
diff --git a/pkg/analyzer/lib/src/dart/analysis/results.dart b/pkg/analyzer/lib/src/dart/analysis/results.dart
index d13482f..9db2ec6 100644
--- a/pkg/analyzer/lib/src/dart/analysis/results.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/results.dart
@@ -204,13 +204,8 @@
},
);
- var unit = unitResult.unit;
- if (unit == null) {
- throw StateError('The result has no unit');
- }
-
var locator = _DeclarationByElementLocator(element);
- unit.accept(locator);
+ unitResult.unit.accept(locator);
var declaration = locator.result;
if (declaration == null) {
@@ -227,10 +222,10 @@
final bool exists;
@override
- final String? content;
+ final String content;
@override
- final CompilationUnit? unit;
+ final CompilationUnit unit;
@override
final List<AnalysisError> errors;
@@ -249,10 +244,6 @@
@override
LibraryElement get libraryElement {
- final unit = this.unit;
- if (unit == null) {
- throw StateError('The result has no unit');
- }
return unit.declaredElement!.library;
}
diff --git a/pkg/analyzer/lib/src/dart/analysis/search.dart b/pkg/analyzer/lib/src/dart/analysis/search.dart
index 20df7ad..8d7a200 100644
--- a/pkg/analyzer/lib/src/dart/analysis/search.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/search.dart
@@ -381,7 +381,7 @@
var unitResult = await _driver.getResult2(unitPath);
if (unitResult is ResolvedUnitResult) {
var visitor = _ImportElementReferencesVisitor(element, unitElement);
- unitResult.unit!.accept(visitor);
+ unitResult.unit.accept(visitor);
results.addAll(visitor.results);
}
}
@@ -400,7 +400,7 @@
String unitPath = unitElement.source.fullName;
var unitResult = await _driver.getResult2(unitPath);
if (unitResult is ResolvedUnitResult) {
- CompilationUnit unit = unitResult.unit!;
+ CompilationUnit unit = unitResult.unit;
for (Directive directive in unit.directives) {
if (directive is PartOfDirective && directive.element == element) {
results.add(
@@ -433,9 +433,6 @@
return const <SearchResult>[];
}
var unit = unitResult.unit;
- if (unit == null) {
- return const <SearchResult>[];
- }
// Prepare the node.
var node = NodeLocator(element.nameOffset).searchWithin(unit);
@@ -487,7 +484,7 @@
var unitResult = await _driver.getResult2(unitPath);
if (unitResult is ResolvedUnitResult) {
var visitor = _LocalReferencesVisitor(element, unitElement);
- unitResult.unit!.accept(visitor);
+ unitResult.unit.accept(visitor);
results.addAll(visitor.results);
}
}
diff --git a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
index aa64210..e11ec7f 100644
--- a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
+++ b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
@@ -208,7 +208,7 @@
result.forEach((filePath) {
var resolved = resolve(path: filePath);
var collector = ReferencesCollector(element);
- resolved.unit?.accept(collector);
+ resolved.unit.accept(collector);
var offsets = collector.offsets;
if (offsets.isNotEmpty) {
references.add(CiderSearchMatch(filePath, offsets));
diff --git a/pkg/analyzer/test/error/error_reporter_test.dart b/pkg/analyzer/test/error/error_reporter_test.dart
index dba624a..7b32e98 100644
--- a/pkg/analyzer/test/error/error_reporter_test.dart
+++ b/pkg/analyzer/test/error/error_reporter_test.dart
@@ -166,7 +166,7 @@
var fa = findNode.topLevelVariableDeclaration('fa');
var fb = findNode.topLevelVariableDeclaration('fb');
- var source = result.unit!.declaredElement!.source;
+ var source = result.unit.declaredElement!.source;
var reporter = ErrorReporter(
listener,
source,
@@ -201,7 +201,7 @@
var ba = findNode.topLevelVariableDeclaration('ba');
var bb = findNode.topLevelVariableDeclaration('bb');
- var source = result.unit!.declaredElement!.source;
+ var source = result.unit.declaredElement!.source;
var reporter = ErrorReporter(
listener,
source,
diff --git a/pkg/analyzer/test/generated/non_error_resolver_test.dart b/pkg/analyzer/test/generated/non_error_resolver_test.dart
index 33fc9a1..91e4e01 100644
--- a/pkg/analyzer/test/generated/non_error_resolver_test.dart
+++ b/pkg/analyzer/test/generated/non_error_resolver_test.dart
@@ -761,7 +761,7 @@
class D {}
class E {}
''');
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
ClassElement classC = unit.declaredElement!.getType('C')!;
expect(classC.documentationComment, isNotNull);
}
@@ -1610,7 +1610,7 @@
class C extends A<B> with M {}
''');
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
ClassElement classC = unit.declaredElement!.getType('C')!;
expect(classC.mixins, hasLength(1));
assertType(classC.mixins[0], 'M<B>');
@@ -1632,7 +1632,7 @@
1,
),
]);
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
ClassElement classC = unit.declaredElement!.getType('C')!;
expect(classC.mixins, hasLength(1));
assertType(classC.mixins[0], 'M<int, String>');
@@ -1648,7 +1648,7 @@
class C extends A<List<B>> with M {}
''');
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
ClassElement classC = unit.declaredElement!.getType('C')!;
expect(classC.mixins, hasLength(1));
assertType(classC.mixins[0], 'M<B>');
@@ -2095,7 +2095,7 @@
error(HintCode.UNUSED_LOCAL_VARIABLE, 93, 1),
error(CompileTimeErrorCode.INVALID_ASSIGNMENT, 97, 1),
]);
- var z = result.unit!.declaredElement!.topLevelVariables
+ var z = result.unit.declaredElement!.topLevelVariables
.where((e) => e.name == 'z')
.single;
assertType(z.type, 'List<String>');
@@ -2275,7 +2275,7 @@
class B<T> = Object with A<T>;
class C = Object with B;
''');
- var bReference = result.unit!.declaredElement!.getType('C')!.mixins[0];
+ var bReference = result.unit.declaredElement!.getType('C')!.mixins[0];
assertTypeDynamic(bReference.typeArguments[0]);
}
@@ -2294,7 +2294,7 @@
''', [
error(CompileTimeErrorCode.MIXIN_INHERITS_FROM_NOT_OBJECT, 122, 1),
]);
- var bReference = result.unit!.declaredElement!.getType('C')!.mixins[0];
+ var bReference = result.unit.declaredElement!.getType('C')!.mixins[0];
assertType(bReference.typeArguments[0], 'int');
}
@@ -2333,7 +2333,7 @@
x;
}
''');
- var main = result.unit!.declarations.last as FunctionDeclaration;
+ var main = result.unit.declarations.last as FunctionDeclaration;
var mainBody = main.functionExpression.body as BlockFunctionBody;
var xDecl = mainBody.block.statements[0] as VariableDeclarationStatement;
var xElem = xDecl.variables.variables[0].declaredElement!;
@@ -2804,8 +2804,8 @@
@B.named8()
main() {}
''');
- expect(result.unit!.declarations, hasLength(1));
- final mainDecl = result.unit!.declarations[0];
+ expect(result.unit.declarations, hasLength(1));
+ final mainDecl = result.unit.declarations[0];
expect(mainDecl.metadata, hasLength(8));
mainDecl.metadata.forEach((metadata) {
final value = metadata.elementAnnotation!.computeConstantValue()!;
diff --git a/pkg/analyzer/test/generated/simple_resolver_test.dart b/pkg/analyzer/test/generated/simple_resolver_test.dart
index b0a30a2..254dea0 100644
--- a/pkg/analyzer/test/generated/simple_resolver_test.dart
+++ b/pkg/analyzer/test/generated/simple_resolver_test.dart
@@ -1264,7 +1264,7 @@
/// Verify that all of the identifiers in the [result] have been resolved.
void verifyTestResolved() {
var verifier = ResolutionVerifier();
- result.unit!.accept(verifier);
+ result.unit.accept(verifier);
verifier.assertResolved();
}
diff --git a/pkg/analyzer/test/generated/strong_mode_test.dart b/pkg/analyzer/test/generated/strong_mode_test.dart
index aa67fe2..e724509 100644
--- a/pkg/analyzer/test/generated/strong_mode_test.dart
+++ b/pkg/analyzer/test/generated/strong_mode_test.dart
@@ -59,7 +59,7 @@
late final AsserterBuilder<Element, DartType> _hasElement;
- CompilationUnit get unit => result.unit!;
+ CompilationUnit get unit => result.unit;
@override
Future<void> resolveTestFile() async {
@@ -2404,7 +2404,7 @@
}
''');
- var b = result.unit!.declarations[1] as ClassDeclaration;
+ var b = result.unit.declarations[1] as ClassDeclaration;
var bConstructor = b.members[0] as ConstructorDeclaration;
var redirected = bConstructor.redirectedConstructor as ConstructorName;
diff --git a/pkg/analyzer/test/src/dart/analysis/dependency/base.dart b/pkg/analyzer/test/src/dart/analysis/dependency/base.dart
index 08f50c5..0c2aefa 100644
--- a/pkg/analyzer/test/src/dart/analysis/dependency/base.dart
+++ b/pkg/analyzer/test/src/dart/analysis/dependency/base.dart
@@ -140,7 +140,7 @@
var session = contextFor(libraryPath).currentSession;
var resolvedLibrary = await session.getResolvedLibrary(libraryPath);
resolvedLibrary as ResolvedLibraryResult;
- return resolvedLibrary.units.map((ru) => ru.unit!).toList();
+ return resolvedLibrary.units.map((ru) => ru.unit).toList();
}
}
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart
index 5853f91..9fe7223 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart
@@ -143,7 +143,7 @@
await resolveTestFile();
var myDeclaration =
- result.unit!.declarations[0] as TopLevelVariableDeclaration;
+ result.unit.declarations[0] as TopLevelVariableDeclaration;
var myVariable = myDeclaration.variables.variables[0];
var myElement = myVariable.declaredElement as TopLevelVariableElement;
@@ -157,7 +157,7 @@
}
{
- var classNode = result.unit!.declarations[1] as ClassDeclaration;
+ var classNode = result.unit.declarations[1] as ClassDeclaration;
assertMyAnnotation(classNode);
{
@@ -177,12 +177,12 @@
}
{
- var node = result.unit!.declarations[2] as TopLevelVariableDeclaration;
+ var node = result.unit.declarations[2] as TopLevelVariableDeclaration;
assertMyAnnotation(node);
}
{
- var node = result.unit!.declarations[3] as FunctionDeclaration;
+ var node = result.unit.declarations[3] as FunctionDeclaration;
assertMyAnnotation(node);
}
}
@@ -346,11 +346,11 @@
await resolveTestFile();
- var c = result.unit!.declarations[0] as ClassDeclaration;
+ var c = result.unit.declarations[0] as ClassDeclaration;
var constructor = c.members[1] as ConstructorDeclaration;
ConstructorElement element = constructor.declaredElement!;
- var main = result.unit!.declarations[1] as FunctionDeclaration;
+ var main = result.unit.declarations[1] as FunctionDeclaration;
var statement = (main.functionExpression.body as BlockFunctionBody)
.block
.statements[0] as VariableDeclarationStatement;
@@ -377,11 +377,11 @@
await resolveTestFile();
var myDeclaration =
- result.unit!.declarations[0] as TopLevelVariableDeclaration;
+ result.unit.declarations[0] as TopLevelVariableDeclaration;
VariableDeclaration myVariable = myDeclaration.variables.variables[0];
var myElement = myVariable.declaredElement as TopLevelVariableElement;
- var classNode = result.unit!.declarations[1] as ClassDeclaration;
+ var classNode = result.unit.declarations[1] as ClassDeclaration;
var node = classNode.members[0] as MethodDeclaration;
var statement = (node.body as BlockFunctionBody).block.statements[0]
as VariableDeclarationStatement;
@@ -406,7 +406,7 @@
main() {}
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
ImportElement aImport = unit.declaredElement!.library.imports[0];
PrefixElement aPrefix = aImport.prefix!;
@@ -445,7 +445,7 @@
main() {}
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
ImportElement aImport = unit.declaredElement!.library.imports[0];
PrefixElement aPrefix = aImport.prefix!;
@@ -486,7 +486,7 @@
main() {}
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
ImportElement aImport = unit.declaredElement!.library.imports[0];
PrefixElement aPrefix = aImport.prefix!;
@@ -527,7 +527,7 @@
main() {}
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
ImportElement aImport = unit.declaredElement!.library.imports[0];
PrefixElement aPrefix = aImport.prefix!;
@@ -560,7 +560,7 @@
}
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
CompilationUnitElement unitElement = unit.declaredElement!;
ClassElement aClass = unitElement.getType('A')!;
@@ -590,7 +590,7 @@
}
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
CompilationUnitElement unitElement = unit.declaredElement!;
ClassElement aClass = unitElement.getType('A')!;
@@ -620,7 +620,7 @@
}
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
CompilationUnitElement unitElement = unit.declaredElement!;
ClassElement aClass = unitElement.getType('A')!;
@@ -657,11 +657,11 @@
f() {}
''');
await resolveTestFile();
- var elementC = AstFinder.getClass(result.unit!, 'C').declaredElement!;
+ var elementC = AstFinder.getClass(result.unit, 'C').declaredElement!;
var constructorC = elementC.constructors[0];
- var elementD = AstFinder.getClass(result.unit!, 'D').declaredElement!;
+ var elementD = AstFinder.getClass(result.unit, 'D').declaredElement!;
var constructorD = elementD.constructors[0];
- var atD = AstFinder.getTopLevelFunction(result.unit!, 'f').metadata[0];
+ var atD = AstFinder.getTopLevelFunction(result.unit, 'f').metadata[0];
var constC = atD.arguments!.arguments[0] as InstanceCreationExpression;
expect(atD.name.staticElement, elementD);
@@ -689,16 +689,16 @@
await resolveTestFile();
var declaration_1 =
- result.unit!.declarations[0] as TopLevelVariableDeclaration;
+ result.unit.declarations[0] as TopLevelVariableDeclaration;
VariableDeclaration variable_1 = declaration_1.variables.variables[0];
var element_1 = variable_1.declaredElement as TopLevelVariableElement;
var declaration_2 =
- result.unit!.declarations[1] as TopLevelVariableDeclaration;
+ result.unit.declarations[1] as TopLevelVariableDeclaration;
VariableDeclaration variable_2 = declaration_2.variables.variables[0];
var element_2 = variable_2.declaredElement as TopLevelVariableElement;
- var main = result.unit!.declarations[2] as FunctionDeclaration;
+ var main = result.unit.declarations[2] as FunctionDeclaration;
Annotation annotation_1 = main.metadata[0];
expect(annotation_1.element, same(element_1.getter));
@@ -959,7 +959,7 @@
''');
await resolveTestFile();
- var mainDeclaration = result.unit!.declarations[0] as FunctionDeclaration;
+ var mainDeclaration = result.unit.declarations[0] as FunctionDeclaration;
var mainElement = mainDeclaration.declaredElement as FunctionElement;
var mainBody = mainDeclaration.functionExpression.body as BlockFunctionBody;
List<Statement> mainStatements = mainBody.block.statements;
@@ -1090,7 +1090,7 @@
}
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var c = unit.declarations[0] as ClassDeclaration;
var declaration = c.members[0] as FieldDeclaration;
@@ -1107,7 +1107,7 @@
var v = (() => 42)();
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var declaration = unit.declarations[0] as TopLevelVariableDeclaration;
VariableDeclaration variable = declaration.variables.variables[0];
@@ -1164,7 +1164,7 @@
''');
await resolveTestFile();
- var cNode = result.unit!.declarations[0] as ClassDeclaration;
+ var cNode = result.unit.declarations[0] as ClassDeclaration;
var constructorNode = cNode.members[0] as ConstructorDeclaration;
ParameterElement pElement = constructorNode.declaredElement!.parameters[0];
@@ -1188,7 +1188,7 @@
''');
await resolveTestFile();
- var cNode = result.unit!.declarations[0] as ClassDeclaration;
+ var cNode = result.unit.declarations[0] as ClassDeclaration;
ClassElement cElement = cNode.declaredElement!;
FieldElement fElement = cElement.getField('f')!;
@@ -1219,10 +1219,10 @@
''');
await resolveTestFile();
- var aNode = result.unit!.declarations[0] as ClassDeclaration;
+ var aNode = result.unit.declarations[0] as ClassDeclaration;
ClassElement aElement = aNode.declaredElement!;
- var bNode = result.unit!.declarations[1] as ClassDeclaration;
+ var bNode = result.unit.declarations[1] as ClassDeclaration;
{
var constructor = bNode.members[0] as ConstructorDeclaration;
@@ -1261,7 +1261,7 @@
''');
await resolveTestFile();
- var cNode = result.unit!.declarations[0] as ClassDeclaration;
+ var cNode = result.unit.declarations[0] as ClassDeclaration;
ClassElement cElement = cNode.declaredElement!;
{
@@ -1312,10 +1312,10 @@
await resolveTestFile();
expect(result.errors, isEmpty);
- var aNode = result.unit!.declarations[0] as ClassDeclaration;
+ var aNode = result.unit.declarations[0] as ClassDeclaration;
ClassElement aElement = aNode.declaredElement!;
- var bNode = result.unit!.declarations[1] as ClassDeclaration;
+ var bNode = result.unit.declarations[1] as ClassDeclaration;
{
ConstructorElement aUnnamed = aElement.constructors[0];
@@ -1373,10 +1373,10 @@
await resolveTestFile();
expect(result.errors, isEmpty);
- var aNode = result.unit!.declarations[0] as ClassDeclaration;
+ var aNode = result.unit.declarations[0] as ClassDeclaration;
ClassElement aElement = aNode.declaredElement!;
- var bNode = result.unit!.declarations[1] as ClassDeclaration;
+ var bNode = result.unit.declarations[1] as ClassDeclaration;
TypeParameterType uType =
typeParameterTypeNone(bNode.declaredElement!.typeParameters[0]);
InterfaceType auType = aElement.instantiate(
@@ -1714,7 +1714,7 @@
''');
await resolveTestFile();
- var enumNode = result.unit!.declarations[0] as EnumDeclaration;
+ var enumNode = result.unit.declarations[0] as EnumDeclaration;
ClassElement enumElement = enumNode.declaredElement!;
List<Statement> mainStatements = _getMainStatements(result);
@@ -1758,7 +1758,7 @@
''');
await resolveTestFile();
- var cNode = result.unit!.declarations[0] as ClassDeclaration;
+ var cNode = result.unit.declarations[0] as ClassDeclaration;
var tElement = cNode.declaredElement!.typeParameters[0];
var fDeclaration = cNode.members[0] as FieldDeclaration;
@@ -1806,7 +1806,7 @@
''');
await resolveTestFile();
- var clazz = result.unit!.declarations[0] as ClassDeclaration;
+ var clazz = result.unit.declarations[0] as ClassDeclaration;
var constructor = clazz.members[0] as ConstructorDeclaration;
List<FormalParameter> parameters = constructor.parameters.parameters;
@@ -1841,7 +1841,7 @@
''');
await resolveTestFile();
- var clazz = result.unit!.declarations[0] as ClassDeclaration;
+ var clazz = result.unit.declarations[0] as ClassDeclaration;
var fDeclaration = clazz.members[0] as FieldDeclaration;
VariableDeclaration fNode = fDeclaration.fields.variables[0];
@@ -1886,7 +1886,7 @@
''');
await resolveTestFile();
- var clazz = result.unit!.declarations[0] as ClassDeclaration;
+ var clazz = result.unit.declarations[0] as ClassDeclaration;
var fDeclaration = clazz.members[0] as FieldDeclaration;
VariableDeclaration fNode = fDeclaration.fields.variables[0];
@@ -1916,7 +1916,7 @@
''');
await resolveTestFile();
- var clazz = result.unit!.declarations[0] as ClassDeclaration;
+ var clazz = result.unit.declarations[0] as ClassDeclaration;
var fDeclaration = clazz.members[0] as FieldDeclaration;
VariableDeclaration fNode = fDeclaration.fields.variables[0];
@@ -2078,7 +2078,7 @@
addTestFile(content);
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var cNode = unit.declarations[0] as ClassDeclaration;
ClassElement cElement = cNode.declaredElement!;
@@ -2131,7 +2131,7 @@
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var xNode = unit.declarations[0] as ClassDeclaration;
ClassElement xElement = xNode.declaredElement!;
@@ -2172,7 +2172,7 @@
addTestFile(content);
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var cNode = unit.declarations[0] as ClassDeclaration;
ClassElement cElement = cNode.declaredElement!;
@@ -2239,7 +2239,7 @@
}
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
ImportElement aImport = unit.declaredElement!.library.imports[0];
LibraryElement aLibrary = aImport.importedLibrary!;
@@ -2356,7 +2356,7 @@
}
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
CompilationUnitElement unitElement = unit.declaredElement!;
ClassElement cElement = unitElement.getType('C')!;
@@ -4342,7 +4342,7 @@
}
''');
- var main = result.unit!.declarations[0] as FunctionDeclaration;
+ var main = result.unit.declarations[0] as FunctionDeclaration;
List<Statement> statements = _getMainStatements(result);
// (int p)
@@ -4735,7 +4735,7 @@
InterfaceType intType = typeProvider.intType;
- var main = result.unit!.declarations[0] as FunctionDeclaration;
+ var main = result.unit.declarations[0] as FunctionDeclaration;
expect(main.declaredElement, isNotNull);
expect(main.name.staticElement, isNotNull);
expect(main.name.staticType, isNull);
@@ -4778,7 +4778,7 @@
}
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var cDeclaration = unit.declarations[0] as ClassDeclaration;
@@ -4849,7 +4849,7 @@
num v;
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
List<Statement> statements = _getMainStatements(result);
@@ -5089,7 +5089,7 @@
String fTypeString = 'double Function(int, {String b, bool c})';
await resolveTestFile();
- var classDeclaration = result.unit!.declarations[0] as ClassDeclaration;
+ var classDeclaration = result.unit.declarations[0] as ClassDeclaration;
var methodDeclaration = classDeclaration.members[0] as MethodDeclaration;
var methodElement = methodDeclaration.declaredElement as MethodElement;
@@ -5134,7 +5134,7 @@
// Validate the arguments at the call site.
//
var functionDeclaration =
- result.unit!.declarations[1] as FunctionDeclaration;
+ result.unit.declarations[1] as FunctionDeclaration;
var body = functionDeclaration.functionExpression.body as BlockFunctionBody;
var statement = body.block.statements[0] as ExpressionStatement;
var invocation = statement.expression as MethodInvocation;
@@ -5157,7 +5157,7 @@
await resolveTestFile();
expect(result.errors, isEmpty);
- var cNode = result.unit!.declarations[0] as ClassDeclaration;
+ var cNode = result.unit.declarations[0] as ClassDeclaration;
ClassElement cElement = cNode.declaredElement!;
MethodElement callElement = cElement.methods[0];
@@ -5183,7 +5183,7 @@
await resolveTestFile();
expect(result.errors, isEmpty);
- var main = result.unit!.declarations[0] as FunctionDeclaration;
+ var main = result.unit.declarations[0] as FunctionDeclaration;
var mainElement = main.declaredElement as FunctionElement;
ParameterElement parameter = mainElement.parameters[0];
@@ -5220,7 +5220,7 @@
''');
await resolveTestFile();
- var aNode = result.unit!.declarations[0] as ClassDeclaration;
+ var aNode = result.unit.declarations[0] as ClassDeclaration;
var fooNode = aNode.members[0] as MethodDeclaration;
var fooElement = fooNode.declaredElement as MethodElement;
@@ -5305,7 +5305,7 @@
await resolveTestFile();
List<Statement> mainStatements = _getMainStatements(result);
- var foo = result.unit!.declarations[1] as FunctionDeclaration;
+ var foo = result.unit.declarations[1] as FunctionDeclaration;
ExecutableElement fooElement = foo.declaredElement!;
var statement = mainStatements[0] as ExpressionStatement;
@@ -5452,7 +5452,7 @@
await resolveTestFile();
List<Statement> mainStatements = _getMainStatements(result);
- var cNode = result.unit!.declarations[1] as ClassDeclaration;
+ var cNode = result.unit.declarations[1] as ClassDeclaration;
ClassElement cElement = cNode.declaredElement!;
var mNode = cNode.members[0] as MethodDeclaration;
var mElement = mNode.declaredElement as MethodElement;
@@ -5509,7 +5509,7 @@
''');
await resolveTestFile();
- var cNode = result.unit!.declarations[0] as ClassDeclaration;
+ var cNode = result.unit.declarations[0] as ClassDeclaration;
TypeParameterElement tElement = cNode.declaredElement!.typeParameters[0];
var barNode = cNode.members[1] as MethodDeclaration;
@@ -5535,7 +5535,7 @@
InterfaceType doubleType = typeProvider.doubleType;
- var fNode = result.unit!.declarations[1] as FunctionDeclaration;
+ var fNode = result.unit.declarations[1] as FunctionDeclaration;
var fElement = fNode.declaredElement as FunctionElement;
var statement = mainStatements[0] as ExpressionStatement;
@@ -5564,7 +5564,7 @@
List<Statement> mainStatements = _getMainStatements(result);
- var fNode = result.unit!.declarations[1] as FunctionDeclaration;
+ var fNode = result.unit.declarations[1] as FunctionDeclaration;
var fElement = fNode.declaredElement as FunctionElement;
// f<bool, String>(true, 'str');
@@ -6030,7 +6030,7 @@
addTestFile(content);
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var cClassDeclaration = unit.declarations[1] as ClassDeclaration;
ClassElement cClassElement = cClassDeclaration.declaredElement!;
@@ -6129,7 +6129,7 @@
List<Statement> statements = _getMainStatements(result);
- var cDeclaration = result.unit!.declarations[1] as ClassDeclaration;
+ var cDeclaration = result.unit.declarations[1] as ClassDeclaration;
ClassElement cElement = cDeclaration.declaredElement!;
FieldElement fElement = cElement.fields[0];
@@ -6164,7 +6164,7 @@
List<Statement> statements = _getMainStatements(result);
- var cDeclaration = result.unit!.declarations[1] as ClassDeclaration;
+ var cDeclaration = result.unit.declarations[1] as ClassDeclaration;
ClassElement cElement = cDeclaration.declaredElement!;
FieldElement fElement = cElement.fields[0];
@@ -6189,7 +6189,7 @@
await resolveTestFile();
expect(result.errors, isEmpty);
- var main = result.unit!.declarations[0] as FunctionDeclaration;
+ var main = result.unit.declarations[0] as FunctionDeclaration;
var mainElement = main.declaredElement as FunctionElement;
ParameterElement parameter = mainElement.parameters[0];
@@ -6232,7 +6232,7 @@
// TODO(scheglov) Uncomment and fix "unused imports" hint.
// expect(result.errors, isEmpty);
- var unitElement = result.unit!.declaredElement!;
+ var unitElement = result.unit.declaredElement!;
ImportElement myImport = unitElement.library.imports[0];
PrefixElement myPrefix = myImport.prefix!;
@@ -6405,7 +6405,7 @@
addTestFile(content);
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var cClassDeclaration = unit.declarations[1] as ClassDeclaration;
ClassElement cClassElement = cClassDeclaration.declaredElement!;
@@ -6467,7 +6467,7 @@
addTestFile(content);
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var cClassDeclaration = unit.declarations[1] as ClassDeclaration;
ClassElement cClassElement = cClassDeclaration.declaredElement!;
@@ -6504,7 +6504,7 @@
addTestFile(content);
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var cClassDeclaration = unit.declarations[1] as ClassDeclaration;
ClassElement cClassElement = cClassDeclaration.declaredElement!;
@@ -6571,7 +6571,7 @@
}
''');
- var main = result.unit!.declarations[0] as FunctionDeclaration;
+ var main = result.unit.declarations[0] as FunctionDeclaration;
expect(main.declaredElement, isNotNull);
expect(main.name.staticElement, isNotNull);
expect(main.name.staticType, isNull);
@@ -6655,8 +6655,8 @@
addTestFile(content);
await resolveTestFile();
- var aNode = result.unit!.declarations[0] as ClassDeclaration;
- var bNode = result.unit!.declarations[1] as ClassDeclaration;
+ var aNode = result.unit.declarations[0] as ClassDeclaration;
+ var bNode = result.unit.declarations[1] as ClassDeclaration;
var methodElement = aNode.members[0].declaredElement as MethodElement;
var getterElement =
@@ -6784,7 +6784,7 @@
addTestFile(content);
await resolveTestFile();
- var aNode = result.unit!.declarations[0] as ClassDeclaration;
+ var aNode = result.unit.declarations[0] as ClassDeclaration;
var methodElement = aNode.members[0].declaredElement as MethodElement;
var getterElement =
@@ -6900,7 +6900,7 @@
addTestFile(content);
await resolveTestFile();
- var cNode = result.unit!.declarations[0] as ClassDeclaration;
+ var cNode = result.unit.declarations[0] as ClassDeclaration;
ClassElement cElement = cNode.declaredElement!;
var constructorNode = cNode.members[1] as ConstructorDeclaration;
@@ -6945,16 +6945,16 @@
addTestFile(content);
await resolveTestFile();
- var aNode = result.unit!.declarations[0] as ClassDeclaration;
+ var aNode = result.unit.declarations[0] as ClassDeclaration;
ClassElement aElement = aNode.declaredElement!;
- var bNode = result.unit!.declarations[1] as ClassDeclaration;
+ var bNode = result.unit.declarations[1] as ClassDeclaration;
ClassElement bElement = bNode.declaredElement!;
- var cNode = result.unit!.declarations[2] as ClassDeclaration;
+ var cNode = result.unit.declarations[2] as ClassDeclaration;
ClassElement cElement = cNode.declaredElement!;
- var dNode = result.unit!.declarations[3] as ClassDeclaration;
+ var dNode = result.unit.declarations[3] as ClassDeclaration;
Element dElement = dNode.declaredElement!;
SimpleIdentifier dName = dNode.name;
@@ -7014,16 +7014,16 @@
addTestFile(content);
await resolveTestFile();
- var aNode = result.unit!.declarations[0] as ClassDeclaration;
+ var aNode = result.unit.declarations[0] as ClassDeclaration;
ClassElement aElement = aNode.declaredElement!;
- var bNode = result.unit!.declarations[1] as ClassDeclaration;
+ var bNode = result.unit.declarations[1] as ClassDeclaration;
ClassElement bElement = bNode.declaredElement!;
- var cNode = result.unit!.declarations[2] as ClassDeclaration;
+ var cNode = result.unit.declarations[2] as ClassDeclaration;
ClassElement cElement = cNode.declaredElement!;
- var dNode = result.unit!.declarations[3] as ClassTypeAlias;
+ var dNode = result.unit.declarations[3] as ClassTypeAlias;
Element dElement = dNode.declaredElement!;
SimpleIdentifier dName = dNode.name;
@@ -7082,7 +7082,7 @@
addTestFile(content);
await resolveTestFile();
- var enumNode = result.unit!.declarations[0] as EnumDeclaration;
+ var enumNode = result.unit.declarations[0] as EnumDeclaration;
ClassElement enumElement = enumNode.declaredElement!;
SimpleIdentifier dName = enumNode.name;
@@ -7123,7 +7123,7 @@
ClassElement doubleElement = doubleType.element;
ClassElement intElement = intType.element;
- var cNode = result.unit!.declarations[0] as ClassDeclaration;
+ var cNode = result.unit.declarations[0] as ClassDeclaration;
ClassElement cElement = cNode.declaredElement!;
// The class name identifier.
@@ -7248,7 +7248,7 @@
// topFunction()
{
- var node = result.unit!.declarations[0] as FunctionDeclaration;
+ var node = result.unit.declarations[0] as FunctionDeclaration;
expect(node.declaredElement, isNotNull);
assertType(node.declaredElement!.type, 'int Function(double)');
@@ -7281,7 +7281,7 @@
// topGetter()
{
- var node = result.unit!.declarations[1] as FunctionDeclaration;
+ var node = result.unit.declarations[1] as FunctionDeclaration;
expect(node.declaredElement, isNotNull);
assertType(node.declaredElement!.type, 'int Function()');
@@ -7299,7 +7299,7 @@
// topSetter()
{
- var node = result.unit!.declarations[2] as FunctionDeclaration;
+ var node = result.unit.declarations[2] as FunctionDeclaration;
expect(node.declaredElement, isNotNull);
assertType(node.declaredElement!.type, 'void Function(double)');
@@ -7341,7 +7341,7 @@
addTestFile(content);
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
CompilationUnitElement unitElement = unit.declaredElement!;
var cNode = unit.declarations[0] as ClassDeclaration;
@@ -7388,7 +7388,7 @@
addTestFile(content);
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var cNode = unit.declarations[0] as ClassDeclaration;
ClassElement cElement = cNode.declaredElement!;
@@ -7432,7 +7432,7 @@
addTestFile(content);
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
CompilationUnitElement unitElement = unit.declaredElement!;
{
@@ -7474,7 +7474,7 @@
addTestFile(content);
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
CompilationUnitElement unitElement = unit.declaredElement!;
var variableDeclaration =
@@ -7518,7 +7518,7 @@
String fTypeString = 'double Function(int, {String b, bool c})';
await resolveTestFile();
- var fDeclaration = result.unit!.declarations[0] as FunctionDeclaration;
+ var fDeclaration = result.unit.declarations[0] as FunctionDeclaration;
var fElement = fDeclaration.declaredElement as FunctionElement;
InterfaceType doubleType = typeProvider.doubleType;
@@ -7571,7 +7571,7 @@
//
// Validate the arguments at the call site.
//
- var mainDeclaration = result.unit!.declarations[1] as FunctionDeclaration;
+ var mainDeclaration = result.unit.declarations[1] as FunctionDeclaration;
var body = mainDeclaration.functionExpression.body as BlockFunctionBody;
var statement = body.block.statements[0] as ExpressionStatement;
var invocation = statement.expression as MethodInvocation;
@@ -7589,7 +7589,7 @@
addTestFile(content);
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var alias = unit.declarations[0] as FunctionTypeAlias;
TypeAliasElement aliasElement = alias.declaredElement!;
@@ -7623,7 +7623,7 @@
''';
addTestFile(content);
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
CompilationUnitElement unitElement = unit.declaredElement!;
var aNode = unit.declarations[0] as ClassDeclaration;
@@ -7870,7 +7870,7 @@
c.A a2;
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
ImportElement bImport = unit.declaredElement!.library.imports[0];
ImportElement cImport = unit.declaredElement!.library.imports[1];
@@ -7915,7 +7915,7 @@
typedef void F(int p);
''');
await resolveTestFile();
- CompilationUnit unit = result.unit!;
+ CompilationUnit unit = result.unit;
var fNode = unit.declarations[1] as FunctionTypeAlias;
TypeAliasElement fElement = fNode.declaredElement!;
@@ -8033,7 +8033,7 @@
await resolveTestFile();
expect(result.errors, isNotEmpty);
- var unitElement = result.unit!.declaredElement!;
+ var unitElement = result.unit.declaredElement!;
var foo = unitElement.library.imports[0].prefix;
List<Statement> statements = _getMainStatements(result);
@@ -8117,7 +8117,7 @@
await resolveTestFile();
expect(result.errors, isNotEmpty);
- var unitElement = result.unit!.declaredElement!;
+ var unitElement = result.unit.declaredElement!;
var mathImport = unitElement.library.imports[0];
var foo = mathImport.prefix;
@@ -8163,7 +8163,7 @@
await resolveTestFile();
expect(result.errors, isNotEmpty);
- var unitElement = result.unit!.declaredElement!;
+ var unitElement = result.unit.declaredElement!;
var mathImport = unitElement.library.imports[0];
var foo = mathImport.prefix;
var randomElement = mathImport.importedLibrary!.getType('Random')!;
@@ -8716,7 +8716,7 @@
}
List<Statement> _getMainStatements(ResolvedUnitResult result) {
- for (var declaration in result.unit!.declarations) {
+ for (var declaration in result.unit.declarations) {
if (declaration is FunctionDeclaration &&
declaration.name.name == 'main') {
var body = declaration.functionExpression.body as BlockFunctionBody;
@@ -8728,7 +8728,7 @@
TopLevelVariableElement _getTopLevelVariable(
ResolvedUnitResult result, String name) {
- for (var variable in result.unit!.declaredElement!.topLevelVariables) {
+ for (var variable in result.unit.declaredElement!.topLevelVariables) {
if (variable.name == name) {
return variable;
}
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index 0ee0dc7..29a974a 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -448,9 +448,9 @@
ResolvedUnitResult partResult1 = await driver.getResultValid(part1);
ResolvedUnitResult partResult2 = await driver.getResultValid(part2);
- CompilationUnit libUnit = libResult.unit!;
- CompilationUnit partUnit1 = partResult1.unit!;
- CompilationUnit partUnit2 = partResult2.unit!;
+ CompilationUnit libUnit = libResult.unit;
+ CompilationUnit partUnit1 = partResult1.unit;
+ CompilationUnit partUnit2 = partResult2.unit;
CompilationUnitElement unitElement = libUnit.declaredElement!;
CompilationUnitElement partElement1 = partUnit1.declaredElement!;
@@ -676,7 +676,7 @@
ResolvedUnitResult ar = allResults
.whereType<ResolvedUnitResult>()
.firstWhere((r) => r.path == a);
- _assertTopLevelVarType(ar.unit!, 'A', 'int');
+ _assertTopLevelVarType(ar.unit, 'A', 'int');
}
allResults.clear();
@@ -695,7 +695,7 @@
ResolvedUnitResult ar = allResults
.whereType<ResolvedUnitResult>()
.firstWhere((r) => r.path == a);
- _assertTopLevelVarType(ar.unit!, 'A', 'double');
+ _assertTopLevelVarType(ar.unit, 'A', 'double');
}
}
@@ -751,14 +751,14 @@
ResolvedUnitResult ar = allResults
.whereType<ResolvedUnitResult>()
.firstWhere((r) => r.path == a);
- _assertTopLevelVarType(ar.unit!, 'A1', 'int');
- _assertTopLevelVarType(ar.unit!, 'A2', 'int');
+ _assertTopLevelVarType(ar.unit, 'A1', 'int');
+ _assertTopLevelVarType(ar.unit, 'A2', 'int');
}
{
ResolvedUnitResult br = allResults
.whereType<ResolvedUnitResult>()
.firstWhere((r) => r.path == b);
- _assertTopLevelVarType(br.unit!, 'B1', 'int');
+ _assertTopLevelVarType(br.unit, 'B1', 'int');
}
// Clear the results and update "a".
@@ -778,14 +778,14 @@
ResolvedUnitResult ar = allResults
.whereType<ResolvedUnitResult>()
.firstWhere((r) => r.path == a);
- _assertTopLevelVarType(ar.unit!, 'A1', 'double');
- _assertTopLevelVarType(ar.unit!, 'A2', 'double');
+ _assertTopLevelVarType(ar.unit, 'A1', 'double');
+ _assertTopLevelVarType(ar.unit, 'A2', 'double');
}
{
ResolvedUnitResult br = allResults
.whereType<ResolvedUnitResult>()
.firstWhere((r) => r.path == b);
- _assertTopLevelVarType(br.unit!, 'B1', 'double');
+ _assertTopLevelVarType(br.unit, 'B1', 'double');
}
}
@@ -798,7 +798,7 @@
expect(allResults, hasLength(1));
var result = allResults[0] as ResolvedUnitResult;
expect(result.path, testFile);
- _assertTopLevelVarType(result.unit!, 'V', 'int');
+ _assertTopLevelVarType(result.unit, 'V', 'int');
}
// Update the file, but don't notify the driver.
@@ -821,7 +821,7 @@
expect(allResults, hasLength(1));
var result = allResults[0] as ResolvedUnitResult;
expect(result.path, testFile);
- _assertTopLevelVarType(result.unit!, 'V', 'double');
+ _assertTopLevelVarType(result.unit, 'V', 'double');
}
}
@@ -836,7 +836,7 @@
class C {}
''');
var result = await driver.getResultValid(testFile);
- var atD = AstFinder.getClass(result.unit!, 'C').metadata[0];
+ var atD = AstFinder.getClass(result.unit, 'C').metadata[0];
var atDI = atD.elementAnnotation as ElementAnnotationImpl;
var value = atDI.evaluationResult!.value;
// That is illegal.
@@ -853,7 +853,7 @@
}
''');
var result = await driver.getResultValid(testFile);
- var atD = AstFinder.getClass(result.unit!, 'C').metadata[0];
+ var atD = AstFinder.getClass(result.unit, 'C').metadata[0];
var atDI = atD.elementAnnotation as ElementAnnotationImpl;
var value = atDI.evaluationResult!.value!;
expect(value.type, isNotNull);
@@ -869,7 +869,7 @@
@x class C {}
''');
var result = await driver.getResultValid(testFile);
- Annotation at_x = AstFinder.getClass(result.unit!, 'C').metadata[0];
+ Annotation at_x = AstFinder.getClass(result.unit, 'C').metadata[0];
expect(at_x.elementAnnotation!.computeConstantValue()!.toIntValue(), 1);
}
@@ -879,7 +879,7 @@
const y = x + 1;
''');
var result = await driver.getResultValid(testFile);
- var x = AstFinder.getTopLevelVariableElement(result.unit!, 'x')
+ var x = AstFinder.getTopLevelVariableElement(result.unit, 'x')
as TopLevelVariableElementImpl;
_expectCircularityError(x.evaluationResult!);
}
@@ -890,8 +890,8 @@
const y = 1;
''');
var result = await driver.getResultValid(testFile);
- var x = AstFinder.getTopLevelVariableElement(result.unit!, 'x');
- var y = AstFinder.getTopLevelVariableElement(result.unit!, 'y');
+ var x = AstFinder.getTopLevelVariableElement(result.unit, 'x');
+ var y = AstFinder.getTopLevelVariableElement(result.unit, 'y');
expect(x.computeConstantValue()!.toIntValue(), 2);
expect(y.computeConstantValue()!.toIntValue(), 1);
}
@@ -907,7 +907,7 @@
class B {}
''');
var result = await driver.getResultValid(testFile);
- var x = AstFinder.getTopLevelVariableElement(result.unit!, 'x');
+ var x = AstFinder.getTopLevelVariableElement(result.unit, 'x');
expect(x.computeConstantValue(), isNotNull);
}
@@ -973,7 +973,7 @@
const x = const Derived();
''');
var result = await driver.getResultValid(testFile);
- var x = AstFinder.getTopLevelVariableElement(result.unit!, 'x');
+ var x = AstFinder.getTopLevelVariableElement(result.unit, 'x');
expect(x.computeConstantValue(), isNotNull);
}
@@ -982,7 +982,7 @@
const x = 1;
''');
var result = await driver.getResultValid(testFile);
- var x = AstFinder.getTopLevelVariableElement(result.unit!, 'x');
+ var x = AstFinder.getTopLevelVariableElement(result.unit, 'x');
expect(x.computeConstantValue()!.toIntValue(), 1);
}
@@ -1528,7 +1528,7 @@
expect(result.unit, isNotNull);
expect(result.errors, hasLength(0));
- var f = result.unit!.declarations[0] as FunctionDeclaration;
+ var f = result.unit.declarations[0] as FunctionDeclaration;
assertType(f.declaredElement!.type, 'int Function()');
assertType(f.returnType!.typeOrThrow, 'int');
@@ -1673,7 +1673,7 @@
await waitForIdleWithoutExceptions();
ResolvedUnitResult result = await driver.getResultValid(testFile);
- _assertClassFieldType(result.unit!, 'C', 'f', 'int');
+ _assertClassFieldType(result.unit, 'C', 'f', 'int');
}
test_getResult_inferTypes_instanceMethod() async {
@@ -1688,8 +1688,8 @@
await waitForIdleWithoutExceptions();
ResolvedUnitResult result = await driver.getResultValid(testFile);
- _assertClassMethodReturnType(result.unit!, 'A', 'm', 'int');
- _assertClassMethodReturnType(result.unit!, 'B', 'm', 'int');
+ _assertClassMethodReturnType(result.unit, 'A', 'm', 'int');
+ _assertClassMethodReturnType(result.unit, 'B', 'm', 'int');
}
test_getResult_invalid_annotation_functionAsConstructor() async {
@@ -1701,7 +1701,7 @@
''', priority: true);
ResolvedUnitResult result = await driver.getResultValid(testFile);
- ClassDeclaration c = result.unit!.declarations[1] as ClassDeclaration;
+ ClassDeclaration c = result.unit.declarations[1] as ClassDeclaration;
Annotation a = c.metadata[0];
expect(a.name.name, 'fff');
expect(a.name.staticElement, isFunctionElement);
@@ -1788,7 +1788,7 @@
''');
var result = await driver.getResultValid(path);
- var languageVersion = result.unit!.languageVersionToken!;
+ var languageVersion = result.unit.languageVersionToken!;
expect(languageVersion.major, 2);
expect(languageVersion.minor, 7);
}
@@ -1871,7 +1871,7 @@
ResolvedUnitResult result = await driver.getResultValid(path);
expect(result, isNotNull);
- expect(result.unit!.declaredElement!.classes.map((e) => e.name), ['A']);
+ expect(result.unit.declaredElement!.classes.map((e) => e.name), ['A']);
}
test_getResult_recursiveFlatten() async {
@@ -1904,18 +1904,18 @@
{
ResolvedUnitResult result = await driver.getResultValid(b);
- expect(_getImportSource(result.unit!, 0).uri.toString(),
+ expect(_getImportSource(result.unit, 0).uri.toString(),
'package:test/a.dart');
- _assertTopLevelVarType(result.unit!, 'VB', 'A<int>');
+ _assertTopLevelVarType(result.unit, 'VB', 'A<int>');
}
{
ResolvedUnitResult result = await driver.getResultValid(c);
expect(
- _getImportSource(result.unit!, 0).uri,
+ _getImportSource(result.unit, 0).uri,
toUri('/test/lib/a.dart'),
);
- _assertTopLevelVarType(result.unit!, 'VC', 'A<double>');
+ _assertTopLevelVarType(result.unit, 'VC', 'A<double>');
}
}
@@ -1938,8 +1938,8 @@
{
ResolvedUnitResult result = await driver.getResultValid(a);
- _assertTopLevelVarType(result.unit!, 'A1', 'int');
- _assertTopLevelVarType(result.unit!, 'A2', 'int');
+ _assertTopLevelVarType(result.unit, 'A1', 'int');
+ _assertTopLevelVarType(result.unit, 'A2', 'int');
}
// Update "a" so that "A1" is now "double".
@@ -1958,8 +1958,8 @@
{
ResolvedUnitResult result = await driver.getResultValid(a);
- _assertTopLevelVarType(result.unit!, 'A1', 'double');
- _assertTopLevelVarType(result.unit!, 'A2', 'double');
+ _assertTopLevelVarType(result.unit, 'A1', 'double');
+ _assertTopLevelVarType(result.unit, 'A2', 'double');
}
}
@@ -2094,7 +2094,7 @@
''');
var result = await driver.getResultValid(b);
- var c = _getTopLevelVar(result.unit!, 'c');
+ var c = _getTopLevelVar(result.unit, 'c');
var typeC = c.declaredElement!.type as InterfaceType;
// The class C has an old field 'foo', not the new 'bar'.
expect(typeC.element.getField('foo'), isNotNull);
@@ -2533,15 +2533,15 @@
{
ResolvedUnitResult result = await driver.getResultValid(a);
expect(result.errors, isEmpty);
- _assertTopLevelVarType(result.unit!, 'c', 'C');
+ _assertTopLevelVarType(result.unit, 'c', 'C');
}
// Now c.dart can be resolved without errors in the context of a.dart
{
ResolvedUnitResult result = await driver.getResultValid(c);
expect(result.errors, isEmpty);
- _assertTopLevelVarType(result.unit!, 'a', 'A');
- _assertTopLevelVarType(result.unit!, 'b', 'B');
+ _assertTopLevelVarType(result.unit, 'a', 'A');
+ _assertTopLevelVarType(result.unit, 'b', 'B');
}
}
@@ -2572,8 +2572,8 @@
// So, A and B references are resolved.
ResolvedUnitResult result = await driver.getResultValid(c);
expect(result.errors, isEmpty);
- _assertTopLevelVarType(result.unit!, 'a', 'A');
- _assertTopLevelVarType(result.unit!, 'b', 'B');
+ _assertTopLevelVarType(result.unit, 'a', 'A');
+ _assertTopLevelVarType(result.unit, 'b', 'B');
}
test_part_getResult_changePart_invalidatesLibraryCycle() async {
@@ -2883,13 +2883,13 @@
ResolvedUnitResult ar = allResults
.whereType<ResolvedUnitResult>()
.firstWhere((r) => r.path == a);
- _assertTopLevelVarType(ar.unit!, 'A', 'int');
+ _assertTopLevelVarType(ar.unit, 'A', 'int');
}
{
ResolvedUnitResult br = allResults
.whereType<ResolvedUnitResult>()
.firstWhere((r) => r.path == b);
- _assertTopLevelVarType(br.unit!, 'B', 'int');
+ _assertTopLevelVarType(br.unit, 'B', 'int');
}
allResults.clear();
@@ -2907,7 +2907,7 @@
ResolvedUnitResult ar = allResults
.whereType<ResolvedUnitResult>()
.firstWhere((r) => r.path == a);
- _assertTopLevelVarType(ar.unit!, 'A', 'double');
+ _assertTopLevelVarType(ar.unit, 'A', 'double');
}
}
@@ -3119,7 +3119,7 @@
expect(result.unit, isNotNull);
expect(result.errors, hasLength(0));
- var f = result.unit!.declarations[0] as FunctionDeclaration;
+ var f = result.unit.declarations[0] as FunctionDeclaration;
assertType(f.declaredElement!.type, 'int Function()');
assertType(f.returnType!.typeOrThrow, 'int');
}
diff --git a/pkg/analyzer/test/src/dart/analysis/index_test.dart b/pkg/analyzer/test/src/dart/analysis/index_test.dart
index 63c5831..c61fa44 100644
--- a/pkg/analyzer/test/src/dart/analysis/index_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/index_test.dart
@@ -1734,7 +1734,7 @@
Future<void> _indexTestUnit(String code) async {
await resolveTestCode(code);
- var indexBuilder = indexUnit(result.unit!);
+ var indexBuilder = indexUnit(result.unit);
var indexBytes = indexBuilder.toBuffer();
index = AnalysisDriverUnitIndex.fromBuffer(indexBytes);
}
diff --git a/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart b/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart
index a36d472..983d7bb 100644
--- a/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart
@@ -42,7 +42,7 @@
expect(node.name.name, 'A');
expect(
node.name.offset,
- this.result.content!.indexOf('A {} // 1'),
+ this.result.content.indexOf('A {} // 1'),
);
}
@@ -53,7 +53,7 @@
expect(node.name.name, 'A');
expect(
node.name.offset,
- this.result.content!.indexOf('A {} // 2'),
+ this.result.content.indexOf('A {} // 2'),
);
}
}
@@ -66,7 +66,7 @@
await resolveTestCode(r'''
part 'a.dart';
''');
- var library = this.result.unit!.declaredElement!.library;
+ var library = this.result.unit.declaredElement!.library;
var element = library.getType('A')!;
var result = await getElementDeclaration(element);
var node = result!.node as ClassDeclaration;
@@ -139,7 +139,7 @@
expect(node.name!.name, 'named');
expect(
node.name!.offset,
- this.result.content!.indexOf('named(); // 1'),
+ this.result.content.indexOf('named(); // 1'),
);
}
@@ -150,7 +150,7 @@
expect(node.name!.name, 'named');
expect(
node.name!.offset,
- this.result.content!.indexOf('named(); // 2'),
+ this.result.content.indexOf('named(); // 2'),
);
}
}
@@ -169,7 +169,7 @@
expect(node.name, isNull);
expect(
node.returnType.offset,
- this.result.content!.indexOf('A(); // 1'),
+ this.result.content.indexOf('A(); // 1'),
);
}
@@ -180,7 +180,7 @@
expect(node.name, isNull);
expect(
node.returnType.offset,
- this.result.content!.indexOf('A(); // 2'),
+ this.result.content.indexOf('A(); // 2'),
);
}
}
diff --git a/pkg/analyzer/test/src/dart/analysis/search_test.dart b/pkg/analyzer/test/src/dart/analysis/search_test.dart
index 5b33cdf..dab758b 100644
--- a/pkg/analyzer/test/src/dart/analysis/search_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/search_test.dart
@@ -64,7 +64,7 @@
class SearchTest extends PubPackageResolutionTest {
AnalysisDriver get driver => driverFor(testFilePath);
- CompilationUnitElement get resultUnitElement => result.unit!.declaredElement!;
+ CompilationUnitElement get resultUnitElement => result.unit.declaredElement!;
String get testUriStr => 'package:test/test.dart';
@@ -378,7 +378,7 @@
var element = findElement.unnamedConstructor('A');
var otherUnitResult = await driver.getResult2(other) as ResolvedUnitResult;
- CompilationUnit otherUnit = otherUnitResult.unit!;
+ CompilationUnit otherUnit = otherUnitResult.unit;
Element main = otherUnit.declaredElement!.functions[0];
var expected = [
ExpectedResult(main, SearchResultKind.REFERENCE,
diff --git a/pkg/analyzer/test/src/dart/analysis/session_helper_test.dart b/pkg/analyzer/test/src/dart/analysis/session_helper_test.dart
index 6e96379..6beca53 100644
--- a/pkg/analyzer/test/src/dart/analysis/session_helper_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/session_helper_test.dart
@@ -91,7 +91,7 @@
''');
var element = findNode.classDeclaration('A').declaredElement!;
var resolvedUnit = (await helper.getResolvedUnitByElement(element))!;
- expect(resolvedUnit.unit!.declarations, hasLength(2));
+ expect(resolvedUnit.unit.declarations, hasLength(2));
}
test_getTopLevelPropertyAccessor_defined_getter() async {
diff --git a/pkg/analyzer/test/src/dart/analysis/session_test.dart b/pkg/analyzer/test/src/dart/analysis/session_test.dart
index 5d863b5..6a9d493 100644
--- a/pkg/analyzer/test/src/dart/analysis/session_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/session_test.dart
@@ -476,8 +476,8 @@
expect(aUnitResult.uri, Uri.parse('package:test/a.dart'));
expect(aUnitResult.content, aContent);
expect(aUnitResult.unit, isNotNull);
- expect(aUnitResult.unit!.directives, hasLength(1));
- expect(aUnitResult.unit!.declarations, hasLength(1));
+ expect(aUnitResult.unit.directives, hasLength(1));
+ expect(aUnitResult.unit.declarations, hasLength(1));
expect(aUnitResult.errors, isEmpty);
var bUnitResult = resolvedLibrary.units[1];
@@ -485,8 +485,8 @@
expect(bUnitResult.uri, Uri.parse('package:test/b.dart'));
expect(bUnitResult.content, bContent);
expect(bUnitResult.unit, isNotNull);
- expect(bUnitResult.unit!.directives, hasLength(1));
- expect(bUnitResult.unit!.declarations, hasLength(2));
+ expect(bUnitResult.unit.directives, hasLength(1));
+ expect(bUnitResult.unit.declarations, hasLength(2));
expect(bUnitResult.errors, isNotEmpty);
var aDeclaration = resolvedLibrary.getElementDeclaration(aClass)!;
@@ -588,7 +588,7 @@
expect(result.path, testPath);
expect(result.uri, Uri.parse('package:test/test.dart'));
expect(result.units, hasLength(1));
- expect(result.units[0].unit!.declaredElement, isNotNull);
+ expect(result.units[0].unit.declaredElement, isNotNull);
}
test_getResolvedLibraryByElement2_differentSession() async {
@@ -617,7 +617,7 @@
expect(unitResult.session, session);
expect(unitResult.path, testPath);
expect(unitResult.uri, Uri.parse('package:test/test.dart'));
- expect(unitResult.unit!.declarations, hasLength(2));
+ expect(unitResult.unit.declarations, hasLength(2));
expect(unitResult.typeProvider, isNotNull);
expect(unitResult.libraryElement, isNotNull);
}
diff --git a/pkg/analyzer/test/src/dart/ast/element_locator_test.dart b/pkg/analyzer/test/src/dart/ast/element_locator_test.dart
index b6f51e2..c594940 100644
--- a/pkg/analyzer/test/src/dart/ast/element_locator_test.dart
+++ b/pkg/analyzer/test/src/dart/ast/element_locator_test.dart
@@ -46,7 +46,7 @@
test_locate_CompilationUnit() async {
await resolveTestCode('// only comment');
- var unitElement = result.unit!.declaredElement!;
+ var unitElement = result.unit.declaredElement!;
var element = ElementLocator.locate(result.unit);
expect(element, same(unitElement));
diff --git a/pkg/analyzer/test/src/dart/constant/evaluation_test.dart b/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
index 40ba0f8..1db519f 100644
--- a/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
+++ b/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
@@ -1218,9 +1218,6 @@
var expression = findNode.topVariableDeclarationByName(name).initializer!;
var unit = this.result.unit;
- if (unit == null) {
- throw StateError('analysis result unit is null');
- }
var source = unit.declaredElement!.source;
var errorListener = GatheringErrorListener();
var errorReporter = ErrorReporter(
diff --git a/pkg/analyzer/test/src/dart/micro/file_resolution.dart b/pkg/analyzer/test/src/dart/micro/file_resolution.dart
index ca6326b..3c85527 100644
--- a/pkg/analyzer/test/src/dart/micro/file_resolution.dart
+++ b/pkg/analyzer/test/src/dart/micro/file_resolution.dart
@@ -74,8 +74,8 @@
Future<void> resolveTestFile() async {
var path = convertPath(_testFile);
result = await resolveFile(path);
- findNode = FindNode(result.content!, result.unit!);
- findElement = FindElement(result.unit!);
+ findNode = FindNode(result.content, result.unit);
+ findElement = FindElement(result.unit);
}
void setUp() {
diff --git a/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart b/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
index 2fb3462..b2bceea 100644
--- a/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
@@ -351,7 +351,7 @@
List<String> expectedArguments,
) {
var argumentStrings = argumentList.arguments
- .map((e) => result.content!.substring(e.offset, e.end))
+ .map((e) => result.content.substring(e.offset, e.end))
.toList();
expect(argumentStrings, expectedArguments);
}
@@ -383,7 +383,7 @@
}
var argumentStrings = argumentList.arguments
- .map((e) => result.content!.substring(e.offset, e.end))
+ .map((e) => result.content.substring(e.offset, e.end))
.toList();
expect(argumentStrings, expectedArguments);
}
diff --git a/pkg/analyzer/test/src/dart/resolution/constant_test.dart b/pkg/analyzer/test/src/dart/resolution/constant_test.dart
index 7d71d57..2e49834 100644
--- a/pkg/analyzer/test/src/dart/resolution/constant_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/constant_test.dart
@@ -214,7 +214,7 @@
result = await resolveFile(convertPath('$testPackageLibPath/a.dart'));
assertErrorsInResolvedUnit(result, []);
- var bElement = FindElement(result.unit!).field('b') as ConstVariableElement;
+ var bElement = FindElement(result.unit).field('b') as ConstVariableElement;
var bValue = bElement.evaluationResult!.value!;
var superFields = bValue.getField(GenericState.SUPERCLASS_FIELD);
expect(superFields!.getField('f1')!.toBoolValue(), false);
diff --git a/pkg/analyzer/test/src/dart/resolution/optional_const_test.dart b/pkg/analyzer/test/src/dart/resolution/optional_const_test.dart
index e32e7e8..daa949c 100644
--- a/pkg/analyzer/test/src/dart/resolution/optional_const_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/optional_const_test.dart
@@ -152,7 +152,7 @@
}
void _fillLibraries([LibraryElement? library]) {
- library ??= result.unit!.declaredElement!.library;
+ library ??= result.unit.declaredElement!.library;
var uriStr = library.source.uri.toString();
if (!libraries.containsKey(uriStr)) {
libraries[uriStr] = library;
diff --git a/pkg/analyzer/test/src/dart/resolution/resolution.dart b/pkg/analyzer/test/src/dart/resolution/resolution.dart
index 2080ec9..3b2f5a4 100644
--- a/pkg/analyzer/test/src/dart/resolution/resolution.dart
+++ b/pkg/analyzer/test/src/dart/resolution/resolution.dart
@@ -924,8 +924,8 @@
result = await resolveFile(path);
expect(result.state, ResultState.VALID);
- findNode = FindNode(result.content!, result.unit!);
- findElement = FindElement(result.unit!);
+ findNode = FindNode(result.content, result.unit);
+ findElement = FindElement(result.unit);
}
/// Create a new file with the [path] and [content], resolve it into [result].
diff --git a/pkg/analyzer/test/src/dart/resolver/exit_detector_test.dart b/pkg/analyzer/test/src/dart/resolver/exit_detector_test.dart
index a24235f..690050e 100644
--- a/pkg/analyzer/test/src/dart/resolver/exit_detector_test.dart
+++ b/pkg/analyzer/test/src/dart/resolver/exit_detector_test.dart
@@ -1102,7 +1102,7 @@
Future<void> _assertHasReturn(String code, int n, bool expected) async {
await resolveTestCode(code);
- var function = result.unit!.declarations.last as FunctionDeclaration;
+ var function = result.unit.declarations.last as FunctionDeclaration;
var body = function.functionExpression.body as BlockFunctionBody;
Statement statement = body.block.statements[n];
expect(ExitDetector.exits(statement), expected);
diff --git a/pkg/analyzer/test/src/diagnostics/mixin_application_not_implemented_interface_test.dart b/pkg/analyzer/test/src/diagnostics/mixin_application_not_implemented_interface_test.dart
index 31546d9..0266782 100644
--- a/pkg/analyzer/test/src/diagnostics/mixin_application_not_implemented_interface_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/mixin_application_not_implemented_interface_test.dart
@@ -111,7 +111,7 @@
error(HintCode.UNUSED_ELEMENT, 96, 15),
]);
var mixins =
- result.unit!.declaredElement!.getType('_LocalDirectory')!.mixins;
+ result.unit.declaredElement!.getType('_LocalDirectory')!.mixins;
assertType(mixins[0], 'ForwardingDirectory<_LocalDirectory>');
}
}
diff --git a/pkg/analyzer/test/src/diagnostics/type_argument_not_matching_bounds_test.dart b/pkg/analyzer/test/src/diagnostics/type_argument_not_matching_bounds_test.dart
index 72f8042..1f43b21 100644
--- a/pkg/analyzer/test/src/diagnostics/type_argument_not_matching_bounds_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/type_argument_not_matching_bounds_test.dart
@@ -300,7 +300,7 @@
error(CompileTimeErrorCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS, 65, 3),
]);
// Instantiate-to-bounds should have instantiated "Bar" to "Bar<Foo>".
- assertType(result.unit!.declaredElement!.getType('Baz')!.supertype,
+ assertType(result.unit.declaredElement!.getType('Baz')!.supertype,
'Bar<Foo<dynamic>>');
}
diff --git a/pkg/analyzer/test/src/lint/linter/linter_context_impl_test.dart b/pkg/analyzer/test/src/lint/linter/linter_context_impl_test.dart
index 399d2e4..4212464 100644
--- a/pkg/analyzer/test/src/lint/linter/linter_context_impl_test.dart
+++ b/pkg/analyzer/test/src/lint/linter/linter_context_impl_test.dart
@@ -28,7 +28,7 @@
Future<void> resolve(String content) async {
await resolveTestCode(content);
- var contextUnit = LinterContextUnit(result.content!, result.unit!);
+ var contextUnit = LinterContextUnit(result.content, result.unit);
final libraryElement = result.libraryElement;
final analysisContext = libraryElement.session.analysisContext;
diff --git a/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart b/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart
index e7b1ac5..87a1477 100644
--- a/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart
+++ b/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart
@@ -347,8 +347,8 @@
}
void _assertTypeAnnotations() {
- var code = result.content!;
- var unit = result.unit!;
+ var code = result.content;
+ var unit = result.unit;
var types = <int, String>{};
{
diff --git a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
index 21fa9c9..4840db6 100644
--- a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
+++ b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
@@ -22,7 +22,7 @@
// TODO(https://github.com/dart-lang/sdk/issues/44666): Use null safety in
// test cases.
CompilationUnitElement get _resultUnitElement {
- return result.unit!.declaredElement!;
+ return result.unit.declaredElement!;
}
test_asyncClosureReturnType_flatten() async {
diff --git a/pkg/analyzer/test/util/id_testing_helper.dart b/pkg/analyzer/test/util/id_testing_helper.dart
index 6d75b6f..f192694 100644
--- a/pkg/analyzer/test/util/id_testing_helper.dart
+++ b/pkg/analyzer/test/util/id_testing_helper.dart
@@ -196,7 +196,7 @@
});
} else {
String _formatError(AnalysisError e) {
- var locationInfo = result.unit!.lineInfo!.getLocation(e.offset);
+ var locationInfo = result.unit.lineInfo!.getLocation(e.offset);
return '$locationInfo: ${e.errorCode}: ${e.message}';
}
@@ -209,7 +209,7 @@
results.forEach((testUri, result) {
dataComputer.computeUnitData(
- driver.testingData!, result.unit!, actualMapFor(testUri));
+ driver.testingData!, result.unit, actualMapFor(testUri));
});
var compiledData = AnalyzerCompiledData<T>(
testData.code, testData.entryPoint, actualMaps, globalData);
diff --git a/pkg/analyzer_plugin/lib/plugin/navigation_mixin.dart b/pkg/analyzer_plugin/lib/plugin/navigation_mixin.dart
index de11deb..07dbddb 100644
--- a/pkg/analyzer_plugin/lib/plugin/navigation_mixin.dart
+++ b/pkg/analyzer_plugin/lib/plugin/navigation_mixin.dart
@@ -27,7 +27,7 @@
var length = parameters.length;
if (offset < 0 && length < 0) {
offset = 0;
- length = result.content?.length ?? 0;
+ length = result.content.length;
}
return DartNavigationRequestImpl(resourceProvider, offset, length, result);
}
diff --git a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_core.dart b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_core.dart
index 4755515..0e6ea1a 100644
--- a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_core.dart
+++ b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_core.dart
@@ -252,7 +252,7 @@
}
var timeStamp = result.exists ? 0 : -1;
- var declaredUnit = result.unit?.declaredElement;
+ var declaredUnit = result.unit.declaredElement;
var libraryUnit = declaredUnit?.library.definingCompilationUnit;
DartFileEditBuilderImpl? libraryEditBuilder;
diff --git a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart
index 6de2511..f6b890f 100644
--- a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart
+++ b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart
@@ -1353,7 +1353,7 @@
@override
void format(SourceRange range) {
- var newContent = resolvedUnit.content!;
+ var newContent = resolvedUnit.content;
var newRangeOffset = range.offset;
var newRangeLength = range.length;
for (var edit in fileEdit.edits) {
@@ -1437,7 +1437,7 @@
LibraryDirective? libraryDirective;
var importDirectives = <ImportDirective>[];
PartDirective? partDirective;
- var unit = resolvedUnit.unit!;
+ var unit = resolvedUnit.unit;
for (var directive in unit.directives) {
if (directive is LibraryDirective) {
libraryDirective = directive;
diff --git a/pkg/analyzer_plugin/lib/utilities/completion/inherited_reference_contributor.dart b/pkg/analyzer_plugin/lib/utilities/completion/inherited_reference_contributor.dart
index a605f4e..cf0a57b 100644
--- a/pkg/analyzer_plugin/lib/utilities/completion/inherited_reference_contributor.dart
+++ b/pkg/analyzer_plugin/lib/utilities/completion/inherited_reference_contributor.dart
@@ -35,7 +35,7 @@
Future<void> computeSuggestions(
DartCompletionRequest request, CompletionCollector collector) async {
var target =
- CompletionTarget.forOffset(request.result.unit!, request.offset);
+ CompletionTarget.forOffset(request.result.unit, request.offset);
var optype = OpType.forCompletion(target, request.offset);
if (!optype.includeIdentifiers) {
return;
@@ -59,7 +59,7 @@
CompletionTarget? target,
OpType? optype,
}) async {
- target ??= CompletionTarget.forOffset(request.result.unit!, request.offset,
+ target ??= CompletionTarget.forOffset(request.result.unit, request.offset,
entryPoint: entryPoint);
optype ??= OpType.forCompletion(target, request.offset);
if (!optype.includeIdentifiers) {
diff --git a/pkg/analyzer_plugin/lib/utilities/completion/type_member_contributor.dart b/pkg/analyzer_plugin/lib/utilities/completion/type_member_contributor.dart
index 1009c12..d190e3d 100644
--- a/pkg/analyzer_plugin/lib/utilities/completion/type_member_contributor.dart
+++ b/pkg/analyzer_plugin/lib/utilities/completion/type_member_contributor.dart
@@ -53,7 +53,7 @@
Expression? _computeDotTarget(
DartCompletionRequest request, AstNode? entryPoint) {
var target = CompletionTarget.forOffset(
- request.result.unit!, request.offset,
+ request.result.unit, request.offset,
entryPoint: entryPoint);
var node = target.containingNode;
if (node is MethodInvocation) {
diff --git a/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart b/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart
index 7d3e886..fd398ed 100644
--- a/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart
+++ b/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart
@@ -790,7 +790,7 @@
addSource(path, content);
var unit = (await resolveFile(path)).unit;
- var A = unit?.declarations[1] as ClassDeclaration;
+ var A = unit.declarations[1] as ClassDeclaration;
var builder = newBuilder();
await builder.addDartFileEdit(path, (builder) {
@@ -821,7 +821,7 @@
addSource(path, content);
var unit = (await resolveFile(path)).unit;
- var A = unit?.declarations[1] as ClassDeclaration;
+ var A = unit.declarations[1] as ClassDeclaration;
var builder = newBuilder();
await builder.addDartFileEdit(path, (builder) {
@@ -857,7 +857,7 @@
addSource(path, content);
var unit = (await resolveFile(path)).unit;
- var A = unit?.declarations[1] as ClassDeclaration;
+ var A = unit.declarations[1] as ClassDeclaration;
var builder = newBuilder();
await builder.addDartFileEdit(path, (builder) {
@@ -1026,7 +1026,7 @@
''';
addSource(path, content);
var unit = (await resolveFile(path)).unit;
- var g = unit?.declarations[1] as FunctionDeclaration;
+ var g = unit.declarations[1] as FunctionDeclaration;
var body = g.functionExpression.body as BlockFunctionBody;
var statement = body.block.statements[0] as ExpressionStatement;
var invocation = statement.expression as MethodInvocation;
@@ -1048,7 +1048,7 @@
addSource(path, content);
var unit = (await resolveFile(path)).unit;
- var f = unit?.declarations[0] as FunctionDeclaration;
+ var f = unit.declarations[0] as FunctionDeclaration;
var parameters = f.functionExpression.parameters;
var elements = parameters?.parameters.map((p) => p.declaredElement!);
@@ -1068,7 +1068,7 @@
var content = 'f(int a, [bool b = false, String c]) {}';
addSource(path, content);
var unit = (await resolveFile(path)).unit;
- var f = unit?.declarations[0] as FunctionDeclaration;
+ var f = unit.declarations[0] as FunctionDeclaration;
var parameters = f.functionExpression.parameters;
var elements = parameters?.parameters.map((p) => p.declaredElement!);
@@ -1088,7 +1088,7 @@
var content = 'f(int i, String s) {}';
addSource(path, content);
var unit = (await resolveFile(path)).unit;
- var f = unit?.declarations[0] as FunctionDeclaration;
+ var f = unit.declarations[0] as FunctionDeclaration;
var parameters = f.functionExpression.parameters;
var elements = parameters?.parameters.map((p) => p.declaredElement!);
@@ -1110,7 +1110,7 @@
}''';
addSource(path, content);
var unit = (await resolveFile(path)).unit;
- var f = unit?.declarations[0] as FunctionDeclaration;
+ var f = unit.declarations[0] as FunctionDeclaration;
var body = f.functionExpression.body as BlockFunctionBody;
var statement = body.block.statements[0] as ExpressionStatement;
var invocation = statement.expression as MethodInvocation;
@@ -1133,7 +1133,7 @@
}''';
addSource(path, content);
var unit = (await resolveFile(path)).unit;
- var f = unit?.declarations[0] as FunctionDeclaration;
+ var f = unit.declarations[0] as FunctionDeclaration;
var body = f.functionExpression.body as BlockFunctionBody;
var statement = body.block.statements[0] as ExpressionStatement;
var invocation = statement.expression as MethodInvocation;
@@ -1330,7 +1330,7 @@
var builder = newBuilder();
await builder.addDartFileEdit(path, (builder) {
builder.addInsertion(content.length - 1, (builder) {
- var typeProvider = unit!.declaredElement!.library.typeProvider;
+ var typeProvider = unit.declaredElement!.library.typeProvider;
builder.writeType(typeProvider.dynamicType);
});
});
@@ -1543,7 +1543,7 @@
var builder = newBuilder();
await builder.addDartFileEdit(path, (builder) {
builder.addInsertion(content.length - 1, (builder) {
- var typeProvider = unit!.declaredElement!.library.typeProvider;
+ var typeProvider = unit.declaredElement!.library.typeProvider;
builder.writeType(typeProvider.dynamicType, required: true);
});
});
@@ -1690,13 +1690,13 @@
Future<ClassElement> _getClassElement(String path, String name) async {
var result = (await resolveFile(path)).unit;
- return result!.declaredElement!.getType(name)!;
+ return result.declaredElement!.getType(name)!;
}
Future<PropertyAccessorElement> _getTopLevelAccessorElement(
String path, String name) async {
var result = (await resolveFile(path)).unit;
- return result!.declaredElement!.accessors.firstWhere((v) => v.name == name);
+ return result.declaredElement!.accessors.firstWhere((v) => v.name == name);
}
Future<InterfaceType> _getType(
@@ -1720,7 +1720,7 @@
addSource(path, '''var f = () {}''');
var resolvedUnit = await resolveFile(path);
- var findNode = FindNode(resolvedUnit.content!, resolvedUnit.unit!);
+ var findNode = FindNode(resolvedUnit.content, resolvedUnit.unit);
var body = findNode.functionBody('{}');
var builder = newBuilder();
@@ -1737,7 +1737,7 @@
addSource(path, 'String f() {}');
var resolvedUnit = await resolveFile(path);
- var findNode = FindNode(resolvedUnit.content!, resolvedUnit.unit!);
+ var findNode = FindNode(resolvedUnit.content, resolvedUnit.unit);
var body = findNode.functionBody('{}');
var builder = newBuilder();
@@ -1850,7 +1850,7 @@
addSource(path, 'String f() {}');
var resolvedUnit = await resolveFile(path);
- var findNode = FindNode(resolvedUnit.content!, resolvedUnit.unit!);
+ var findNode = FindNode(resolvedUnit.content, resolvedUnit.unit);
var type = findNode.typeAnnotation('String');
var builder = newBuilder();
@@ -1873,7 +1873,7 @@
class C extends B {}
''');
var unit = (await resolveFile(path)).unit;
- var classC = unit?.declarations[2] as ClassDeclaration;
+ var classC = unit.declarations[2] as ClassDeclaration;
var builder = DartLinkedEditBuilderImpl(MockEditBuilderImpl());
builder.addSuperTypesAsSuggestions(
classC.declaredElement?.instantiate(
@@ -2895,10 +2895,10 @@
{
var unitResult = (await resolveFile(path)).unit;
if (targetMixinName != null) {
- targetElement = unitResult!.declaredElement!.mixins
+ targetElement = unitResult.declaredElement!.mixins
.firstWhere((e) => e.name == targetMixinName);
} else {
- targetElement = unitResult!.declaredElement!.classes
+ targetElement = unitResult.declaredElement!.classes
.firstWhere((e) => e.name == targetClassName);
}
}
diff --git a/pkg/analyzer_plugin/test/src/utilities/completion/completion_target_test.dart b/pkg/analyzer_plugin/test/src/utilities/completion/completion_target_test.dart
index 71b649d..742f070 100644
--- a/pkg/analyzer_plugin/test/src/utilities/completion/completion_target_test.dart
+++ b/pkg/analyzer_plugin/test/src/utilities/completion/completion_target_test.dart
@@ -954,9 +954,9 @@
newFile(path, content: content);
var result = await resolveFile(path);
- findElement = FindElement(result.unit!);
+ findElement = FindElement(result.unit);
- target = CompletionTarget.forOffset(result.unit!, offset!);
+ target = CompletionTarget.forOffset(result.unit, offset!);
}
static String _executableNameStr(ExecutableElement executable) {
diff --git a/pkg/analyzer_plugin/test/src/utilities/completion/optype_test.dart b/pkg/analyzer_plugin/test/src/utilities/completion/optype_test.dart
index 3c8fe89..79c9e0c 100644
--- a/pkg/analyzer_plugin/test/src/utilities/completion/optype_test.dart
+++ b/pkg/analyzer_plugin/test/src/utilities/completion/optype_test.dart
@@ -50,7 +50,7 @@
//
var resolvedUnit = await resolveFile(testPath);
var completionTarget =
- CompletionTarget.forOffset(resolvedUnit.unit!, completionOffset);
+ CompletionTarget.forOffset(resolvedUnit.unit, completionOffset);
var opType = OpType.forCompletion(completionTarget, completionOffset);
//
// Validate the OpType.
diff --git a/pkg/analyzer_plugin/test/support/abstract_single_unit.dart b/pkg/analyzer_plugin/test/support/abstract_single_unit.dart
index afa5699..bdd1c69 100644
--- a/pkg/analyzer_plugin/test/support/abstract_single_unit.dart
+++ b/pkg/analyzer_plugin/test/support/abstract_single_unit.dart
@@ -95,8 +95,8 @@
Future<void> resolveTestFile() async {
var result = await resolveFile(testFile);
- testCode = result.content!;
- testUnit = result.unit!;
+ testCode = result.content;
+ testUnit = result.unit;
if (verifyNoTestUnitErrors) {
expect(result.errors.where((AnalysisError error) {
return error.errorCode != HintCode.DEAD_CODE &&
diff --git a/pkg/analyzer_plugin/test/utilities/completion/completion_contributor_util.dart b/pkg/analyzer_plugin/test/utilities/completion/completion_contributor_util.dart
index d7cba95..a98ac39 100644
--- a/pkg/analyzer_plugin/test/utilities/completion/completion_contributor_util.dart
+++ b/pkg/analyzer_plugin/test/utilities/completion/completion_contributor_util.dart
@@ -418,7 +418,7 @@
DartCompletionRequestImpl(resourceProvider, completionOffset!, result);
var target =
- CompletionTarget.forOffset(request!.result.unit!, request!.offset);
+ CompletionTarget.forOffset(request!.result.unit, request!.offset);
var range = target.computeReplacementRange(request!.offset);
replacementOffset = range.offset;
replacementLength = range.length;
diff --git a/pkg/nnbd_migration/lib/migration_cli.dart b/pkg/nnbd_migration/lib/migration_cli.dart
index bcd7f99..9a0a6ec 100644
--- a/pkg/nnbd_migration/lib/migration_cli.dart
+++ b/pkg/nnbd_migration/lib/migration_cli.dart
@@ -1049,7 +1049,7 @@
// Process each source file.
bool allSourcesAlreadyMigrated = true;
await processResources((ResolvedUnitResult result) async {
- if (!result.unit!.featureSet.isEnabled(Feature.non_nullable)) {
+ if (!result.unit.featureSet.isEnabled(Feature.non_nullable)) {
allSourcesAlreadyMigrated = false;
}
_progressBar.tick();
diff --git a/pkg/nnbd_migration/lib/src/front_end/info_builder.dart b/pkg/nnbd_migration/lib/src/front_end/info_builder.dart
index ecc8a99..b471651 100644
--- a/pkg/nnbd_migration/lib/src/front_end/info_builder.dart
+++ b/pkg/nnbd_migration/lib/src/front_end/info_builder.dart
@@ -100,7 +100,7 @@
if (result is ResolvedLibraryResult) {
for (var unitResult in result.units) {
var sourceInfo =
- sourceInfoMap[unitResult.unit!.declaredElement!.source];
+ sourceInfoMap[unitResult.unit.declaredElement!.source];
// Note: there might have been no information for this unit in
// sourceInfoMap. That can happen if there's an already-migrated
// library being referenced by the code being migrated, but not all
@@ -185,7 +185,7 @@
break;
case NullabilityFixKind.addRequired:
var metaImport =
- _findImportDirective(result.unit!, 'package:meta/meta.dart');
+ _findImportDirective(result.unit, 'package:meta/meta.dart');
if (metaImport == null) {
edits.add(
EditDetail('Add /*required*/ hint', offset, 0, '/*required*/ '));
@@ -273,7 +273,7 @@
List<NavigationSource> _computeNavigationSources(ResolvedUnitResult result) {
var collector = NavigationCollectorImpl();
computeDartNavigation(
- result.session.resourceProvider, collector, result.unit!, null, null);
+ result.session.resourceProvider, collector, result.unit, null, null);
collector.createRegions();
var files = collector.files;
var regions = collector.regions;
@@ -377,8 +377,8 @@
var content = result.content;
unitInfo.diskContent = content;
var alreadyMigrated =
- result.unit!.featureSet.isEnabled(Feature.non_nullable);
- unitInfo.wasExplicitlyOptedOut = result.unit!.languageVersionToken != null;
+ result.unit.featureSet.isEnabled(Feature.non_nullable);
+ unitInfo.wasExplicitlyOptedOut = result.unit.languageVersionToken != null;
if (alreadyMigrated) {
unitInfo.migrationStatus = UnitMigrationStatus.alreadyMigrated;
unitInfo.migrationStatusCanBeChanged = false;
@@ -401,7 +401,7 @@
// before we re-populate the region list.
regions.clear();
- var lineInfo = result.unit!.lineInfo;
+ var lineInfo = result.unit.lineInfo;
var insertions = <int?, List<AtomicEdit>>{};
var infosSeen = Set<AtomicEditInfo>.identity();
@@ -422,7 +422,7 @@
var end = offset + length;
// Insert the replacement text without deleting the replaced text.
if (replacement.isNotEmpty) {
- content = content!.replaceRange(end, end, replacement);
+ content = content.replaceRange(end, end, replacement);
(insertions[sourceOffset] ??= []).add(AtomicEdit.insert(replacement));
}
var info = edit.info;
diff --git a/pkg/nnbd_migration/lib/src/nullability_migration_impl.dart b/pkg/nnbd_migration/lib/src/nullability_migration_impl.dart
index 07c652a..be547dc 100644
--- a/pkg/nnbd_migration/lib/src/nullability_migration_impl.dart
+++ b/pkg/nnbd_migration/lib/src/nullability_migration_impl.dart
@@ -123,7 +123,7 @@
@override
void finalizeInput(ResolvedUnitResult result) {
- if (result.unit!.featureSet.isEnabled(Feature.non_nullable)) {
+ if (result.unit.featureSet.isEnabled(Feature.non_nullable)) {
// This library has already been migrated; nothing more to do.
return;
}
@@ -132,7 +132,7 @@
_propagated = true;
_graph.propagate();
}
- var unit = result.unit!;
+ var unit = result.unit;
var compilationUnit = unit.declaredElement!;
var library = compilationUnit.library;
var source = compilationUnit.source;
@@ -188,7 +188,7 @@
!_queriedUnmigratedDependencies,
'Should only query unmigratedDependencies after all calls to '
'prepareInput');
- if (result.unit!.featureSet.isEnabled(Feature.non_nullable)) {
+ if (result.unit.featureSet.isEnabled(Feature.non_nullable)) {
// This library has already been migrated; nothing more to do.
return;
}
@@ -202,7 +202,7 @@
instrumentation: _instrumentation);
_decoratedClassHierarchy = DecoratedClassHierarchy(_variables, _graph);
}
- var unit = result.unit!;
+ var unit = result.unit;
try {
DecoratedTypeParameterBounds.current = _decoratedTypeParameterBounds;
unit.accept(NodeBuilder(
@@ -219,12 +219,12 @@
}
void processInput(ResolvedUnitResult result) {
- if (result.unit!.featureSet.isEnabled(Feature.non_nullable)) {
+ if (result.unit.featureSet.isEnabled(Feature.non_nullable)) {
// This library has already been migrated; nothing more to do.
return;
}
ExperimentStatusException.sanityCheck(result);
- var unit = result.unit!;
+ var unit = result.unit;
try {
DecoratedTypeParameterBounds.current = _decoratedTypeParameterBounds;
unit.accept(EdgeBuilder(
diff --git a/pkg/nnbd_migration/test/front_end/info_builder_test.dart b/pkg/nnbd_migration/test/front_end/info_builder_test.dart
index d1c96e4..23a7900 100644
--- a/pkg/nnbd_migration/test/front_end/info_builder_test.dart
+++ b/pkg/nnbd_migration/test/front_end/info_builder_test.dart
@@ -35,7 +35,7 @@
''');
var result = await resolveTestFile();
ClassDeclaration class_ =
- result.unit!.declarations.single as ClassDeclaration;
+ result.unit.declarations.single as ClassDeclaration;
var constructor = class_.members.single;
expect(InfoBuilder.buildEnclosingMemberDescription(constructor),
equals("the constructor 'C.aaa'"));
@@ -49,7 +49,7 @@
''');
var result = await resolveTestFile();
ClassDeclaration class_ =
- result.unit!.declarations.single as ClassDeclaration;
+ result.unit.declarations.single as ClassDeclaration;
var constructor = class_.members.single;
expect(InfoBuilder.buildEnclosingMemberDescription(constructor),
equals("the default constructor of 'C'"));
@@ -63,7 +63,7 @@
''');
var result = await resolveTestFile();
ClassDeclaration class_ =
- result.unit!.declarations.single as ClassDeclaration;
+ result.unit.declarations.single as ClassDeclaration;
FieldDeclaration fieldDeclaration =
class_.members.single as FieldDeclaration;
var field = fieldDeclaration.fields.variables[0];
@@ -79,7 +79,7 @@
''');
var result = await resolveTestFile();
ClassDeclaration class_ =
- result.unit!.declarations.single as ClassDeclaration;
+ result.unit.declarations.single as ClassDeclaration;
FieldDeclaration fieldDeclaration =
class_.members.single as FieldDeclaration;
var type = fieldDeclaration.fields.type;
@@ -95,7 +95,7 @@
''');
var result = await resolveTestFile();
ClassDeclaration class_ =
- result.unit!.declarations.single as ClassDeclaration;
+ result.unit.declarations.single as ClassDeclaration;
var getter = class_.members.single;
expect(InfoBuilder.buildEnclosingMemberDescription(getter),
equals("the getter 'C.aaa'"));
@@ -109,7 +109,7 @@
''');
var result = await resolveTestFile();
ClassDeclaration class_ =
- result.unit!.declarations.single as ClassDeclaration;
+ result.unit.declarations.single as ClassDeclaration;
var method = class_.members.single;
expect(InfoBuilder.buildEnclosingMemberDescription(method),
equals("the method 'C.aaa'"));
@@ -123,7 +123,7 @@
''');
var result = await resolveTestFile();
ClassDeclaration class_ =
- result.unit!.declarations.single as ClassDeclaration;
+ result.unit.declarations.single as ClassDeclaration;
var operator = class_.members.single;
expect(InfoBuilder.buildEnclosingMemberDescription(operator),
equals("the operator 'C.=='"));
@@ -137,7 +137,7 @@
''');
var result = await resolveTestFile();
ClassDeclaration class_ =
- result.unit!.declarations.single as ClassDeclaration;
+ result.unit.declarations.single as ClassDeclaration;
var setter = class_.members.single;
expect(InfoBuilder.buildEnclosingMemberDescription(setter),
equals("the setter 'C.aaa='"));
@@ -151,7 +151,7 @@
''');
var result = await resolveTestFile();
ExtensionDeclaration extension_ =
- result.unit!.declarations.single as ExtensionDeclaration;
+ result.unit.declarations.single as ExtensionDeclaration;
var method = extension_.members.single;
expect(InfoBuilder.buildEnclosingMemberDescription(method),
equals("the method 'E.aaa'"));
@@ -165,7 +165,7 @@
''');
var result = await resolveTestFile();
ExtensionDeclaration extension_ =
- result.unit!.declarations.single as ExtensionDeclaration;
+ result.unit.declarations.single as ExtensionDeclaration;
var method = extension_.members.single;
expect(InfoBuilder.buildEnclosingMemberDescription(method),
equals("the method 'aaa' in unnamed extension on List<dynamic>"));
@@ -179,7 +179,7 @@
''');
var result = await resolveTestFile();
MixinDeclaration mixin_ =
- result.unit!.declarations.single as MixinDeclaration;
+ result.unit.declarations.single as MixinDeclaration;
var method = mixin_.members.single;
expect(InfoBuilder.buildEnclosingMemberDescription(method),
equals("the method 'C.aaa'"));
@@ -190,7 +190,7 @@
void aaa(value) {}
''');
var result = await resolveTestFile();
- var function = result.unit!.declarations.single;
+ var function = result.unit.declarations.single;
expect(InfoBuilder.buildEnclosingMemberDescription(function),
equals("the function 'aaa'"));
}
@@ -200,7 +200,7 @@
int get aaa => 7;
''');
var result = await resolveTestFile();
- var getter = result.unit!.declarations.single;
+ var getter = result.unit.declarations.single;
expect(InfoBuilder.buildEnclosingMemberDescription(getter),
equals("the getter 'aaa'"));
}
@@ -210,7 +210,7 @@
void set aaa(value) {}
''');
var result = await resolveTestFile();
- var setter = result.unit!.declarations.single;
+ var setter = result.unit.declarations.single;
expect(InfoBuilder.buildEnclosingMemberDescription(setter),
equals("the setter 'aaa='"));
}
@@ -221,7 +221,7 @@
''');
var result = await resolveTestFile();
TopLevelVariableDeclaration topLevelVariableDeclaration =
- result.unit!.declarations.single as TopLevelVariableDeclaration;
+ result.unit.declarations.single as TopLevelVariableDeclaration;
var variable = topLevelVariableDeclaration.variables.variables[0];
expect(InfoBuilder.buildEnclosingMemberDescription(variable),
equals("the variable 'i'"));
@@ -233,7 +233,7 @@
''');
var result = await resolveTestFile();
TopLevelVariableDeclaration topLevelVariableDeclaration =
- result.unit!.declarations.single as TopLevelVariableDeclaration;
+ result.unit.declarations.single as TopLevelVariableDeclaration;
var type = topLevelVariableDeclaration.variables.type;
expect(InfoBuilder.buildEnclosingMemberDescription(type),
equals("the variable 'i'"));
diff --git a/pkg/nnbd_migration/test/instrumentation_test.dart b/pkg/nnbd_migration/test/instrumentation_test.dart
index f2df090..821b21c 100644
--- a/pkg/nnbd_migration/test/instrumentation_test.dart
+++ b/pkg/nnbd_migration/test/instrumentation_test.dart
@@ -150,8 +150,8 @@
warnOnWeakCode: warnOnWeakCode);
var result =
await session.getResolvedUnit(sourcePath) as ResolvedUnitResult;
- source = result.unit!.declaredElement!.source;
- findNode = FindNode(content, result.unit!);
+ source = result.unit.declaredElement!.source;
+ findNode = FindNode(content, result.unit);
migration.prepareInput(result);
expect(migration.unmigratedDependencies, isEmpty);
migration.processInput(result);
diff --git a/pkg/vm/lib/transformations/ffi_native.dart b/pkg/vm/lib/transformations/ffi_native.dart
index 4c71d56..ec120ac 100644
--- a/pkg/vm/lib/transformations/ffi_native.dart
+++ b/pkg/vm/lib/transformations/ffi_native.dart
@@ -30,6 +30,7 @@
final Class ffiNativeClass;
final Class nativeFunctionClass;
final Field ffiNativeNameField;
+ final Field ffiNativeIsLeafField;
final Field resolverField;
final Procedure asFunctionProcedure;
final Procedure fromAddressInternal;
@@ -39,6 +40,8 @@
nativeFunctionClass = index.getClass('dart:ffi', 'NativeFunction'),
ffiNativeNameField =
index.getField('dart:ffi', 'FfiNative', 'nativeName'),
+ ffiNativeIsLeafField =
+ index.getField('dart:ffi', 'FfiNative', 'isLeaf'),
resolverField = index.getTopLevelField('dart:ffi', '_ffi_resolver'),
asFunctionProcedure = index.getProcedure(
'dart:ffi', 'NativeFunctionPointer', 'asFunction'),
@@ -71,14 +74,14 @@
}
// Transform:
- // @FfiNative<Double Function(Double)>('Math_sqrt')
+ // @FfiNative<Double Function(Double)>('Math_sqrt', isLeaf:true)
// external double _square_root(double x);
//
// Into:
// final _@FfiNative__square_root =
// Pointer<NativeFunction<Double Function(Double)>>
// .fromAddress(_ffi_resolver('dart:math', 'Math_sqrt'))
- // .asFunction<double Function(double)>();
+ // .asFunction<double Function(double)>(isLeaf:true);
// double _square_root(double x) => _@FfiNative__square_root(x);
Statement transformFfiNative(
Procedure node, InstanceConstant annotationConst) {
@@ -86,6 +89,8 @@
final params = node.function.positionalParameters;
final functionName = annotationConst
.fieldValues[ffiNativeNameField.getterReference] as StringConstant;
+ final isLeaf = annotationConst
+ .fieldValues[ffiNativeIsLeafField.getterReference] as BoolConstant;
// double Function(double)
final DartType dartType =
@@ -115,9 +120,12 @@
Arguments([resolverInvocation], types: [nativeInterfaceType]));
// NativeFunctionPointer.asFunction
- // <Double Function(Double), double Function(double)>(...)
- final asFunctionInvocation = StaticInvocation(asFunctionProcedure,
- Arguments([fromAddressInvocation], types: [nativeType, dartType]));
+ // <Double Function(Double), double Function(double)>(..., isLeaf:true)
+ final asFunctionInvocation = StaticInvocation(
+ asFunctionProcedure,
+ Arguments([fromAddressInvocation],
+ types: [nativeType, dartType],
+ named: [NamedExpression("isLeaf", BoolLiteral(isLeaf.value))]));
// final _@FfiNative__square_root = ...
final fieldName = Name('_@FfiNative_${node.name.text}', currentLibrary);
@@ -127,7 +135,8 @@
isStatic: true,
isFinal: true,
fileUri: currentLibrary!.fileUri,
- getterReference: currentLibraryIndex?.lookupGetterReference(fieldName));
+ getterReference: currentLibraryIndex?.lookupGetterReference(fieldName))
+ ..fileOffset = node.fileOffset;
currentLibrary!.addField(funcPtrField);
// _@FfiNative__square_root(x)
diff --git a/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc b/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc
index a4ad2d5..885c48f 100644
--- a/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc
+++ b/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc
@@ -1080,4 +1080,33 @@
Dart_DeletePersistentHandle_DL(closure_to_callback_);
}
+////////////////////////////////////////////////////////////////////////////////
+// Functions for testing @FfiNative.
+
+DART_EXPORT Dart_Handle GetRootLibraryUrl() {
+ Dart_Handle root_lib = Dart_RootLibrary();
+ Dart_Handle lib_url = Dart_LibraryUrl(root_lib);
+ ENSURE(!Dart_IsError(lib_url));
+ return lib_url;
+}
+
+intptr_t ReturnIntPtr(intptr_t x) {
+ return x;
+}
+
+static void* FfiNativeResolver(const char* name) {
+ if (strcmp(name, "ReturnIntPtr") == 0) {
+ return reinterpret_cast<void*>(ReturnIntPtr);
+ }
+ // This should be unreachable in tests.
+ ENSURE(false);
+}
+
+DART_EXPORT void SetFfiNativeResolverForTest(Dart_Handle url) {
+ Dart_Handle library = Dart_LookupLibrary(url);
+ ENSURE(!Dart_IsError(library));
+ Dart_Handle result = Dart_SetFfiNativeResolver(library, &FfiNativeResolver);
+ ENSURE(!Dart_IsError(result));
+}
+
} // namespace dart
diff --git a/runtime/vm/dart_api_impl_test.cc b/runtime/vm/dart_api_impl_test.cc
index 6f116a0..2be540b 100644
--- a/runtime/vm/dart_api_impl_test.cc
+++ b/runtime/vm/dart_api_impl_test.cc
@@ -9305,7 +9305,7 @@
TEST_CASE(Dart_SetFfiNativeResolver) {
const char* kScriptChars = R"(
import 'dart:ffi';
- @FfiNative<IntPtr Function(Double)>('EchoInt')
+ @FfiNative<IntPtr Function(Double)>('EchoInt', isLeaf:true)
external int echoInt(double x);
main() => echoInt(7.0);
)";
@@ -9327,7 +9327,7 @@
TEST_CASE(Dart_SetFfiNativeResolver_MissingResolver) {
const char* kScriptChars = R"(
import 'dart:ffi';
- @FfiNative<IntPtr Function(Double)>('EchoInt')
+ @FfiNative<IntPtr Function(Double)>('EchoInt', isLeaf:true)
external int echoInt(double x);
main() => echoInt(7.0);
)";
diff --git a/sdk/lib/ffi/ffi.dart b/sdk/lib/ffi/ffi.dart
index 0e8be36..1e8a9ea 100644
--- a/sdk/lib/ffi/ffi.dart
+++ b/sdk/lib/ffi/ffi.dart
@@ -806,7 +806,7 @@
///
/// Example:
///```dart
-/// @FfiNative<Int64 Function(Int64, Int64)>("FfiNative_Sum")
+/// @FfiNative<Int64 Function(Int64, Int64)>("FfiNative_Sum", isLeaf:true)
/// external int sum(int a, int b);
///```
/// Calling such functions will throw an exception if no resolver
@@ -817,7 +817,8 @@
/// NOTE: This is an experimental feature and may change in the future.
class FfiNative<T> {
final String nativeName;
- const FfiNative(this.nativeName);
+ final bool isLeaf;
+ const FfiNative(this.nativeName, {this.isLeaf: false});
}
// Bootstrapping native for getting the FFI native C function pointer to look
diff --git a/tests/ffi/ffi_native_test.dart b/tests/ffi/ffi_native_test.dart
new file mode 100644
index 0000000..6997360
--- /dev/null
+++ b/tests/ffi/ffi_native_test.dart
@@ -0,0 +1,32 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// SharedObjects=ffi_test_functions
+
+import 'dart:ffi';
+
+import 'package:expect/expect.dart';
+
+import 'dylib_utils.dart';
+
+final nativeLib = dlopenPlatformSpecific('ffi_test_functions');
+final getRootLibraryUrl = nativeLib
+ .lookupFunction<Handle Function(), Object Function()>('GetRootLibraryUrl');
+final setFfiNativeResolverForTest = nativeLib
+ .lookupFunction<Void Function(Handle), void Function(Object)>('SetFfiNativeResolverForTest');
+
+@FfiNative<IntPtr Function(IntPtr)>('ReturnIntPtr')
+external int returnIntPtr(int x);
+
+@FfiNative<IntPtr Function(IntPtr)>('ReturnIntPtr', isLeaf: true)
+external int returnIntPtrLeaf(int x);
+
+void main() {
+ // Register test resolver for top-level functions above.
+ final root_lib_url = getRootLibraryUrl();
+ setFfiNativeResolverForTest(root_lib_url);
+
+ Expect.equals(123, returnIntPtr(123));
+ Expect.equals(123, returnIntPtrLeaf(123));
+}
diff --git a/tools/VERSION b/tools/VERSION
index d854130..fa3a2fe 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 14
PATCH 0
-PRERELEASE 314
+PRERELEASE 315
PRERELEASE_PATCH 0
\ No newline at end of file