Chromium Code Reviews| 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; |
| - } |
| -} |