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

Unified Diff: pkg/analyzer/tool/task_dependency_graph/generate.dart

Issue 2678693002: Don't use Element.computeNode() in tasks graph generator. (Closed)
Patch Set: Created 3 years, 10 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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');
});
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698