Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(789)

Unified Diff: pkg/analyzer/lib/src/dart/analysis/ast_provider_driver.dart

Issue 2969793002: Clean up AstProvider hierarchy (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/lib/src/dart/analysis/ast_provider_driver.dart
diff --git a/pkg/analyzer/lib/src/dart/analysis/ast_provider_driver.dart b/pkg/analyzer/lib/src/dart/analysis/ast_provider_driver.dart
index ef2aa51bd26dc710cce139e9fb0bcf23a7173130..8cd0efac7377fb3a1372908396699b93d05cd7e8 100644
--- a/pkg/analyzer/lib/src/dart/analysis/ast_provider_driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/ast_provider_driver.dart
@@ -10,7 +10,14 @@ import 'package:analyzer/src/dart/analysis/driver.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer/src/dart/element/ast_provider.dart';
-abstract class AbstractAstProvider implements AstProvider {
+/**
+ * [AstProvider] implementation for [AnalysisDriver].
+ */
+class AstProviderForDriver implements AstProvider {
scheglov 2017/07/01 16:14:15 I think we might as well just make AstProviderForD
Brian Wilkerson 2017/07/02 04:45:09 I thought about that, but I'm not sure that we won
+ final AnalysisDriver driver;
+
+ AstProviderForDriver(this.driver);
+
@override
Future<SimpleIdentifier> getParsedNameForElement(Element element) async {
CompilationUnit unit = await getParsedUnitForElement(element);
@@ -18,11 +25,25 @@ abstract class AbstractAstProvider implements AstProvider {
}
@override
+ Future<CompilationUnit> getParsedUnitForElement(Element element) async {
+ String path = element.source.fullName;
+ ParseResult parseResult = await driver.parseFile(path);
+ return parseResult.unit;
+ }
+
+ @override
Future<SimpleIdentifier> getResolvedNameForElement(Element element) async {
CompilationUnit unit = await getResolvedUnitForElement(element);
return _getNameNode(unit, element);
}
+ @override
+ Future<CompilationUnit> getResolvedUnitForElement(Element element) async {
+ String path = element.source.fullName;
+ AnalysisResult analysisResult = await driver.getResult(path);
+ return analysisResult?.unit;
+ }
+
SimpleIdentifier _getNameNode(CompilationUnit unit, Element element) {
int nameOffset = element.nameOffset;
if (nameOffset == -1) {
@@ -35,26 +56,3 @@ abstract class AbstractAstProvider implements AstProvider {
return null;
}
}
-
-/**
- * [AstProvider] implementation for [AnalysisDriver].
- */
-class AstProviderForDriver extends AbstractAstProvider {
- final AnalysisDriver driver;
-
- AstProviderForDriver(this.driver);
-
- @override
- Future<CompilationUnit> getParsedUnitForElement(Element element) async {
- String path = element.source.fullName;
- ParseResult parseResult = await driver.parseFile(path);
- return parseResult.unit;
- }
-
- @override
- Future<CompilationUnit> getResolvedUnitForElement(Element element) async {
- String path = element.source.fullName;
- AnalysisResult analysisResult = await driver.getResult(path);
- return analysisResult?.unit;
- }
-}
« no previous file with comments | « pkg/analyzer/lib/src/dart/analysis/ast_provider_context.dart ('k') | pkg/analyzer/lib/src/dart/element/ast_provider.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698