OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library services.completion.suggestion.builder; | 5 library services.completion.suggestion.builder; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:collection'; | 8 import 'dart:collection'; |
9 | 9 |
10 import 'package:analysis_server/src/protocol_server.dart' as protocol; | 10 import 'package:analysis_server/src/protocol_server.dart' as protocol; |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 NodeList<TypeName> mixinTypes = withClause.mixinTypes; | 133 NodeList<TypeName> mixinTypes = withClause.mixinTypes; |
134 if (mixinTypes != null) { | 134 if (mixinTypes != null) { |
135 mixinTypes.forEach((TypeName type) { | 135 mixinTypes.forEach((TypeName type) { |
136 visit(type); | 136 visit(type); |
137 }); | 137 }); |
138 } | 138 } |
139 } | 139 } |
140 } | 140 } |
141 | 141 |
142 /** | 142 /** |
143 * Starting with the given class node, traverse the inheritence hierarchy | 143 * Starting with the given class node, traverse the inheritance hierarchy |
144 * calling the given functions with each non-null non-empty inherited class | 144 * calling the given functions with each non-null non-empty inherited class |
145 * declaration. For each locally defined declaration, call [localDeclaration]. | 145 * declaration. For each locally defined declaration, call [localDeclaration]. |
146 * For each class identifier in the hierarchy that is not defined locally, | 146 * For each class identifier in the hierarchy that is not defined locally, |
147 * call the [importedTypeName] function. | 147 * call the [importedTypeName] function. |
148 */ | 148 */ |
149 void visitInheritedTypes(ClassDeclaration node, | 149 void visitInheritedTypes(ClassDeclaration node, |
150 {void localDeclaration(ClassDeclaration classNode), | 150 {void localDeclaration(ClassDeclaration classNode), |
151 void importedTypeName(String typeName)}) { | 151 void importedTypeName(String typeName)}) { |
152 CompilationUnit unit = node.getAncestor((p) => p is CompilationUnit); | 152 CompilationUnit unit = node.getAncestor((p) => p is CompilationUnit); |
153 List<ClassDeclaration> todo = new List<ClassDeclaration>(); | 153 List<ClassDeclaration> todo = new List<ClassDeclaration>(); |
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
668 * or `false` if [computeFull] should be called. | 668 * or `false` if [computeFull] should be called. |
669 */ | 669 */ |
670 bool computeFast(AstNode node); | 670 bool computeFast(AstNode node); |
671 | 671 |
672 /** | 672 /** |
673 * Return a future that computes the suggestions given a fully resolved AST. | 673 * Return a future that computes the suggestions given a fully resolved AST. |
674 * The future returns `true` if suggestions were added, else `false`. | 674 * The future returns `true` if suggestions were added, else `false`. |
675 */ | 675 */ |
676 Future<bool> computeFull(AstNode node); | 676 Future<bool> computeFull(AstNode node); |
677 } | 677 } |
OLD | NEW |