Add 'content' to FileResult.
Change-Id: I8600aed3beb712b4da9e4a157b2e87398057a9cd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/346902
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_get_fixes.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_get_fixes.dart
index 1605cc0..9f2e8b6 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_get_fixes.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_get_fixes.dart
@@ -131,6 +131,7 @@
var result = engine.ErrorsResultImpl(
session: session,
file: optionsFile,
+ content: content,
uri: optionsFile.toUri(),
lineInfo: lineInfo,
isAugmentation: false,
@@ -248,6 +249,7 @@
var result = engine.ErrorsResultImpl(
session: session,
file: pubspecFile,
+ content: content,
uri: pubspecFile.toUri(),
lineInfo: lineInfo,
isAugmentation: false,
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/code_actions/abstract_code_actions_producer.dart b/pkg/analysis_server/lib/src/lsp/handlers/code_actions/abstract_code_actions_producer.dart
index 278ebbe..e88bad5 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/code_actions/abstract_code_actions_producer.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/code_actions/abstract_code_actions_producer.dart
@@ -133,6 +133,7 @@
return engine.ErrorsResultImpl(
session: session,
file: file,
+ content: file.readAsStringSync(),
uri: server.uriConverter.toClientUri(path),
lineInfo: lineInfo,
isAugmentation: false,
diff --git a/pkg/analyzer/lib/dart/analysis/results.dart b/pkg/analyzer/lib/dart/analysis/results.dart
index b57e7a4..dad66b0 100644
--- a/pkg/analyzer/lib/dart/analysis/results.dart
+++ b/pkg/analyzer/lib/dart/analysis/results.dart
@@ -84,6 +84,10 @@
///
/// Clients may not extend, implement or mix-in this class.
abstract class FileResult implements SomeFileResult, AnalysisResult {
+ /// The latest read content of [file], the same that was used to compute
+ /// other properties of this result.
+ String get content;
+
/// The file resource.
File get file;
@@ -210,9 +214,6 @@
/// Clients may not extend, implement or mix-in this class.
abstract class ParsedUnitResult
implements SomeParsedUnitResult, AnalysisResultWithErrors {
- /// The content of the file that was scanned and parsed.
- String get content;
-
/// The parsed, unresolved compilation unit for the [content].
CompilationUnit get unit;
}
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index f91922e..b55e1e2 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -1570,6 +1570,7 @@
return ErrorsResultImpl(
session: currentSession,
file: file.resource,
+ content: file.content,
lineInfo: file.lineInfo,
uri: file.uri,
isAugmentation: file.kind is AugmentationFileKind,
@@ -1622,7 +1623,6 @@
return ResolvedUnitResultImpl(
session: currentSession,
fileState: file,
- content: file.content,
unit: unitResult.unit,
errors: unitResult.errors,
);
@@ -1835,6 +1835,7 @@
return ErrorsResultImpl(
session: currentSession,
file: file.resource,
+ content: file.content,
lineInfo: file.lineInfo,
uri: file.uri,
isAugmentation: file.kind is AugmentationFileKind,
diff --git a/pkg/analyzer/lib/src/dart/analysis/results.dart b/pkg/analyzer/lib/src/dart/analysis/results.dart
index 3ab909c..ddc9aaf 100644
--- a/pkg/analyzer/lib/src/dart/analysis/results.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/results.dart
@@ -69,9 +69,13 @@
@override
File file;
+ @override
+ final String content;
+
ErrorsResultImpl({
required this.session,
required this.file,
+ required this.content,
required this.uri,
required this.lineInfo,
required this.isAugmentation,
@@ -89,6 +93,9 @@
final FileState fileState;
@override
+ final String content;
+
+ @override
final LineInfo lineInfo;
@override
@@ -103,7 +110,8 @@
FileResultImpl({
required super.session,
required this.fileState,
- }) : lineInfo = fileState.lineInfo,
+ }) : content = fileState.content,
+ lineInfo = fileState.lineInfo,
isAugmentation = fileState.kind is AugmentationFileKind,
isLibrary = fileState.kind is LibraryFileKind,
isPart = fileState.kind is PartFileKind;
@@ -173,9 +181,6 @@
class ParsedUnitResultImpl extends FileResultImpl implements ParsedUnitResult {
@override
- final String content;
-
- @override
final CompilationUnit unit;
@override
@@ -186,7 +191,7 @@
required super.fileState,
required this.unit,
required this.errors,
- }) : content = fileState.content;
+ });
}
class ParseStringResultImpl implements ParseStringResult {
@@ -310,9 +315,6 @@
class ResolvedUnitResultImpl extends FileResultImpl
implements ResolvedUnitResult {
@override
- final String content;
-
- @override
final CompilationUnit unit;
@override
@@ -321,7 +323,6 @@
ResolvedUnitResultImpl({
required super.session,
required super.fileState,
- required this.content,
required this.unit,
required this.errors,
});
diff --git a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
index 2fdaaf5..f9277b8 100644
--- a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
+++ b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
@@ -353,6 +353,7 @@
return ErrorsResultImpl(
session: contextObjects!.analysisSession,
file: file.resource,
+ content: file.content,
uri: file.uri,
lineInfo: file.lineInfo,
isAugmentation: file.kind is AugmentationFileKind,
@@ -695,7 +696,6 @@
return ResolvedUnitResultImpl(
session: contextObjects!.analysisSession,
fileState: file,
- content: file.content,
unit: fileResult.unit,
errors: fileResult.errors,
);
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index b00d8eb..1e3f3b6 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -1884,11 +1884,14 @@
}
test_getFileSync_library() async {
- final a = newFile('$testPackageLibPath/a.dart', '');
+ var content = 'class A {}';
+ final a = newFile('$testPackageLibPath/a.dart', content);
final driver = driverFor(testFile);
final result = driver.getFileSyncValid(a);
expect(result.path, a.path);
expect(result.uri.toString(), 'package:test/a.dart');
+ expect(result.content, content);
+ expect(result.isLibrary, isTrue);
expect(result.isPart, isFalse);
}
@@ -1899,11 +1902,14 @@
}
test_getFileSync_part() async {
- final a = newFile('$testPackageLibPath/a.dart', 'part of lib;');
+ var content = 'part of lib;';
+ final a = newFile('$testPackageLibPath/a.dart', content);
final driver = driverFor(testFile);
final result = driver.getFileSyncValid(a);
expect(result.path, a.path);
expect(result.uri.toString(), 'package:test/a.dart');
+ expect(result.content, content);
+ expect(result.isLibrary, isFalse);
expect(result.isPart, isTrue);
}
diff --git a/pkg/analyzer/test/src/dart/analysis/session_test.dart b/pkg/analyzer/test/src/dart/analysis/session_test.dart
index ec4f9c5..0fdb6da 100644
--- a/pkg/analyzer/test/src/dart/analysis/session_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/session_test.dart
@@ -230,22 +230,28 @@
}
test_getFile_library() async {
- var a = newFile('$testPackageLibPath/a.dart', '');
+ var content = 'class A {}';
+ var a = newFile('$testPackageLibPath/a.dart', content);
var session = contextFor(testFile).currentSession;
var file = session.getFileValid(a);
expect(file.path, a.path);
expect(file.uri.toString(), 'package:test/a.dart');
+ expect(file.content, content);
+ expect(file.isLibrary, isTrue);
expect(file.isPart, isFalse);
}
test_getFile_part() async {
- var a = newFile('$testPackageLibPath/a.dart', 'part of lib;');
+ var content = 'part of lib;';
+ var a = newFile('$testPackageLibPath/a.dart', content);
var session = contextFor(testFile).currentSession;
var file = session.getFileValid(a);
expect(file.path, a.path);
expect(file.uri.toString(), 'package:test/a.dart');
+ expect(file.content, content);
+ expect(file.isLibrary, isFalse);
expect(file.isPart, isTrue);
}
diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart
index 093d85d..517d2be 100644
--- a/pkg/analyzer_cli/lib/src/driver.dart
+++ b/pkg/analyzer_cli/lib/src/driver.dart
@@ -262,6 +262,7 @@
ErrorsResultImpl(
session: analysisDriver.currentSession,
file: file,
+ content: content,
uri: pathContext.toUri(path),
lineInfo: lineInfo,
isAugmentation: false,
@@ -306,6 +307,7 @@
ErrorsResultImpl(
session: analysisDriver.currentSession,
file: file,
+ content: content,
uri: pathContext.toUri(path),
lineInfo: lineInfo,
isAugmentation: false,
@@ -333,6 +335,7 @@
ErrorsResultImpl(
session: analysisDriver.currentSession,
file: file,
+ content: content,
uri: pathContext.toUri(path),
lineInfo: lineInfo,
isAugmentation: false,
diff --git a/pkg/analyzer_cli/test/reporter_test.dart b/pkg/analyzer_cli/test/reporter_test.dart
index f0c2809..8fb4c08 100644
--- a/pkg/analyzer_cli/test/reporter_test.dart
+++ b/pkg/analyzer_cli/test/reporter_test.dart
@@ -115,6 +115,7 @@
return ErrorsResultImpl(
session: _MockAnalysisSession(),
file: file,
+ content: '<mock>',
uri: uri,
lineInfo: lineInfo,
isAugmentation: false,