diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md index f0dc96ee204..d672ae5cd6f 100644 --- a/pkg/analyzer/CHANGELOG.md +++ b/pkg/analyzer/CHANGELOG.md @@ -1,6 +1,7 @@ ## 2.8.0-dev * Deprecations and renames for `getXyz` methods in `AnalysisDriver`. * Removed uppercase named constants from `double` in mock SDK. +* Deprecated `path` and `uri` from `AnalysisResult`. ## 2.7.0 * Updated `ConstructorElement.displayName` to either `Class` or `Class.constructor`. diff --git a/pkg/analyzer/lib/dart/analysis/results.dart b/pkg/analyzer/lib/dart/analysis/results.dart index 6bf41b79ec3..a6f1df5b1ae 100644 --- a/pkg/analyzer/lib/dart/analysis/results.dart +++ b/pkg/analyzer/lib/dart/analysis/results.dart @@ -16,6 +16,7 @@ import 'package:analyzer/src/generated/source.dart'; /// Clients may not extend, implement or mix-in this class. abstract class AnalysisResult { /// The absolute and normalized path of the file that was analyzed. + @Deprecated('Use FileResult.path instead') String get path; /// Return the session used to compute this result. @@ -26,6 +27,7 @@ abstract class AnalysisResult { ResultState get state; /// The absolute URI of the file that was analyzed. + @Deprecated('Use FileResult.uri instead') Uri get uri; } @@ -83,6 +85,14 @@ abstract class FileResult implements SomeFileResult, AnalysisResult { /// Information about lines in the content. LineInfo get lineInfo; + + /// The absolute and normalized path of the file that was analyzed. + @override + String get path; + + /// The absolute URI of the file that was analyzed. + @override + Uri get uri; } /// The type of [InvalidResult] returned when the given file path is invalid, diff --git a/pkg/analyzer/lib/src/dart/analysis/results.dart b/pkg/analyzer/lib/src/dart/analysis/results.dart index 5f03c265c4c..4856a558aee 100644 --- a/pkg/analyzer/lib/src/dart/analysis/results.dart +++ b/pkg/analyzer/lib/src/dart/analysis/results.dart @@ -16,9 +16,11 @@ abstract class AnalysisResultImpl implements AnalysisResult { @override final AnalysisSession session; + @Deprecated('Use FileResult.path instead') @override final String path; + @Deprecated('Use FileResult.uri instead') @override final Uri uri; @@ -62,9 +64,19 @@ class FileResultImpl extends AnalysisResultImpl implements FileResult { AnalysisSession session, String path, Uri uri, this.lineInfo, this.isPart) : super(session, path, uri); + @override + // TODO(scheglov) Convert into a field. + // ignore: deprecated_member_use_from_same_package, unnecessary_overrides + String get path => super.path; + @Deprecated('Check for specific Result subtypes instead') @override ResultState get state => ResultState.VALID; + + @override + // TODO(scheglov) Convert into a field. + // ignore: deprecated_member_use_from_same_package, unnecessary_overrides + Uri get uri => super.uri; } class LibraryElementResultImpl implements LibraryElementResult { diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart index 8ab312a1d97..de37c977b06 100644 --- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart @@ -1570,7 +1570,6 @@ class B {} var uri = Uri.parse('package:test/test.dart'); var result = driver.getParsedLibraryByUri(uri); result as ParsedLibraryResult; - expect(result.uri, uri); expect(result.units, hasLength(1)); expect(result.units[0].uri, uri); expect(result.units[0].path, testFile); @@ -1621,7 +1620,6 @@ class B {} var uri = Uri.parse('package:test/test.dart'); var result = await driver.getResolvedLibraryByUri(uri); result as ResolvedLibraryResult; - expect(result.uri, uri); expect(result.element.source.fullName, testFile); expect(result.units, hasLength(1)); expect(result.units[0].uri, uri); diff --git a/pkg/analyzer/test/src/dart/analysis/session_test.dart b/pkg/analyzer/test/src/dart/analysis/session_test.dart index d9f6f0f8894..951247599a9 100644 --- a/pkg/analyzer/test/src/dart/analysis/session_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/session_test.dart @@ -228,8 +228,6 @@ class B {} var parsedLibrary = session.getParsedLibraryValid(testPath); expect(parsedLibrary.session, session); - expect(parsedLibrary.path, testPath); - expect(parsedLibrary.uri, Uri.parse('package:test/test.dart')); expect(parsedLibrary.units, hasLength(1)); { @@ -365,8 +363,6 @@ class C3 {} newFile(c, content: cContent); var parsedLibrary = session.getParsedLibraryValid(a); - expect(parsedLibrary.path, a); - expect(parsedLibrary.uri, Uri.parse('package:test/a.dart')); expect(parsedLibrary.units, hasLength(3)); { @@ -401,9 +397,14 @@ class C3 {} var parsedLibrary = session.getParsedLibraryByElementValid(element); expect(parsedLibrary.session, session); - expect(parsedLibrary.path, testPath); - expect(parsedLibrary.uri, Uri.parse('package:test/test.dart')); expect(parsedLibrary.units, hasLength(1)); + + { + var unit = parsedLibrary.units[0]; + expect(unit.path, testPath); + expect(unit.uri, Uri.parse('package:test/test.dart')); + expect(unit.unit, isNotNull); + } } test_getParsedLibraryByElement_differentSession() async { @@ -460,8 +461,6 @@ class B2 extends X {} var resolvedLibrary = await session.getResolvedLibraryValid(a); expect(resolvedLibrary.session, session); - expect(resolvedLibrary.path, a); - expect(resolvedLibrary.uri, Uri.parse('package:test/a.dart')); var typeProvider = resolvedLibrary.typeProvider; expect(typeProvider.intType.element.name, 'int'); @@ -586,9 +585,9 @@ part 'c.dart'; var result = await session.getResolvedLibraryByElementValid(element); expect(result.session, session); - expect(result.path, testPath); - expect(result.uri, Uri.parse('package:test/test.dart')); expect(result.units, hasLength(1)); + expect(result.units[0].path, testPath); + expect(result.units[0].uri, Uri.parse('package:test/test.dart')); expect(result.units[0].unit.declaredElement, isNotNull); } diff --git a/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart b/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart index 52f968e3912..83bc4af44ae 100644 --- a/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart +++ b/pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart @@ -1166,8 +1166,9 @@ void func() { '''); var result = fileResolver.resolveLibrary(path: aPath); - expect(result.path, aPath); expect(result.units.length, 2); + expect(result.units[0].path, aPath); + expect(result.units[0].uri, Uri.parse('package:dart.test/a.dart')); } test_reuse_compatibleOptions() async {