| Index: pkg/analyzer/tool/task_dependency_graph/generate.dart
|
| diff --git a/pkg/analyzer/tool/task_dependency_graph/generate.dart b/pkg/analyzer/tool/task_dependency_graph/generate.dart
|
| index 26745f6fdb8cf43455b0d8c36259fcf7f67fbd06..716db4793f7d202ed273c92dc5d3a6dfe597e0db 100644
|
| --- a/pkg/analyzer/tool/task_dependency_graph/generate.dart
|
| +++ b/pkg/analyzer/tool/task_dependency_graph/generate.dart
|
| @@ -189,41 +189,57 @@ ${generateGraphData()}
|
| .instantiate([dynamicType]);
|
| listOfResultDescriptorType =
|
| context.typeProvider.listType.instantiate([resultDescriptorType]);
|
| - CompilationUnitElement enginePluginUnitElement =
|
| - getUnit(enginePluginSource).element;
|
| - enginePluginClass = enginePluginUnitElement.getType('EnginePlugin');
|
| + CompilationUnit enginePluginUnit = getUnit(enginePluginSource);
|
| + enginePluginClass = enginePluginUnit.element.getType('EnginePlugin');
|
| extensionPointIdType =
|
| - enginePluginUnitElement.getType('ExtensionPointId').type;
|
| + enginePluginUnit.element.getType('ExtensionPointId').type;
|
| CompilationUnit dartDartUnit = getUnit(dartDartSource);
|
| - CompilationUnitElement dartDartUnitElement = dartDartUnit.element;
|
| CompilationUnit taskUnit = getUnit(taskSource);
|
| taskUnitElement = taskUnit.element;
|
| Set<String> results = new Set<String>();
|
| Set<String> resultLists = new Set<String>();
|
| - for (ClassElement cls in dartDartUnitElement.types) {
|
| - if (!cls.isAbstract && cls.type.isSubtypeOf(analysisTaskType)) {
|
| - String task = cls.name;
|
| - AstNode buildInputsAst = cls.getMethod('buildInputs').computeNode();
|
| - findResultDescriptors(buildInputsAst, (String input) {
|
| - results.add(input);
|
| - lines.add(' $input -> $task');
|
| - });
|
| - findResultDescriptorLists(buildInputsAst, (String input) {
|
| - resultLists.add(input);
|
| - lines.add(' $input -> $task');
|
| - });
|
| - findResultDescriptors(cls.getField('DESCRIPTOR').computeNode(),
|
| - (String out) {
|
| - results.add(out);
|
| - lines.add(' $task -> $out');
|
| - });
|
| + for (CompilationUnitMember dartUnitMember in dartDartUnit.declarations) {
|
| + if (dartUnitMember is ClassDeclaration) {
|
| + ClassDeclaration clazz = dartUnitMember;
|
| + if (!clazz.isAbstract &&
|
| + clazz.element.type.isSubtypeOf(analysisTaskType)) {
|
| + String task = clazz.name.name;
|
| +
|
| + MethodDeclaration buildInputsAst;
|
| + VariableDeclaration descriptorField;
|
| + for (ClassMember classMember in clazz.members) {
|
| + if (classMember is MethodDeclaration &&
|
| + classMember.name.name == 'buildInputs') {
|
| + buildInputsAst = classMember;
|
| + }
|
| + if (classMember is FieldDeclaration) {
|
| + for (VariableDeclaration field in classMember.fields.variables) {
|
| + if (field.name.name == 'DESCRIPTOR') {
|
| + descriptorField = field;
|
| + }
|
| + }
|
| + }
|
| + }
|
| +
|
| + findResultDescriptors(buildInputsAst, (String input) {
|
| + results.add(input);
|
| + lines.add(' $input -> $task');
|
| + });
|
| + findResultDescriptorLists(buildInputsAst, (String input) {
|
| + resultLists.add(input);
|
| + lines.add(' $input -> $task');
|
| + });
|
| + findResultDescriptors(descriptorField, (String out) {
|
| + results.add(out);
|
| + lines.add(' $task -> $out');
|
| + });
|
| + }
|
| }
|
| }
|
| - AstNode enginePluginAst = enginePluginUnitElement.computeNode();
|
| for (String resultList in resultLists) {
|
| lines.add(' $resultList [shape=hexagon]');
|
| TopLevelVariableElement extensionIdVariable = _getExtensionId(resultList);
|
| - findExtensions(enginePluginAst, extensionIdVariable, (String extension) {
|
| + findExtensions(enginePluginUnit, extensionIdVariable, (String extension) {
|
| results.add(extension);
|
| lines.add(' $extension -> $resultList');
|
| });
|
|
|