Index: pkg/analysis_server/lib/src/services/completion/local_declaration_visitor.dart |
diff --git a/pkg/analysis_server/lib/src/services/completion/local_declaration_visitor.dart b/pkg/analysis_server/lib/src/services/completion/local_declaration_visitor.dart |
index ac99637344d58ee62e743cc2cc3a8ce659176e84..360774a906b44207f33a0387aafa5d32300402f7 100644 |
--- a/pkg/analysis_server/lib/src/services/completion/local_declaration_visitor.dart |
+++ b/pkg/analysis_server/lib/src/services/completion/local_declaration_visitor.dart |
@@ -14,11 +14,18 @@ import 'package:analyzer/src/generated/scanner.dart'; |
* which catches the exception thrown by [finished()]. |
*/ |
abstract class LocalDeclarationVisitor extends GeneralizingAstVisitor { |
- static final TypeName STACKTRACE_TYPE = new TypeName(new SimpleIdentifier( |
- new StringToken(TokenType.IDENTIFIER, 'StackTrace', 0)), null); |
+ static final TypeName STACKTRACE_TYPE = new TypeName( |
+ new SimpleIdentifier( |
+ new StringToken(TokenType.IDENTIFIER, 'StackTrace', 0)), |
+ null); |
final int offset; |
+ /** |
+ * `true` if local inherited types should be visited. |
+ */ |
+ bool includeLocalInheritedTypes = true; |
+ |
LocalDeclarationVisitor(this.offset); |
void declaredClass(ClassDeclaration declaration); |
@@ -113,9 +120,11 @@ abstract class LocalDeclarationVisitor extends GeneralizingAstVisitor { |
void visitClassDeclaration(ClassDeclaration node) { |
_visitClassDeclarationMembers(node); |
// imported types are handled by the imported reference contributor |
- visitInheritedTypes(node, localDeclaration: (ClassDeclaration classNode) { |
- _visitClassDeclarationMembers(classNode); |
- }); |
+ if (includeLocalInheritedTypes) { |
+ visitInheritedTypes(node, localDeclaration: (ClassDeclaration classNode) { |
+ _visitClassDeclarationMembers(classNode); |
+ }); |
+ } |
visitNode(node); |
} |
@@ -231,7 +240,7 @@ abstract class LocalDeclarationVisitor extends GeneralizingAstVisitor { |
} |
void _visitClassDeclarationMembers(ClassDeclaration node) { |
- node.members.forEach((ClassMember member) { |
+ for (ClassMember member in node.members) { |
if (member is FieldDeclaration) { |
member.fields.variables.forEach((VariableDeclaration varDecl) { |
declaredField(member, varDecl); |
@@ -239,7 +248,7 @@ abstract class LocalDeclarationVisitor extends GeneralizingAstVisitor { |
} else if (member is MethodDeclaration) { |
declaredMethod(member); |
} |
- }); |
+ } |
} |
void _visitParamList(FormalParameterList paramList) { |