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

Unified Diff: pkg/analysis_server/lib/src/services/completion/local_declaration_visitor.dart

Issue 1319753002: exclude instance suggestions in static context - fixes #22932 (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge Created 5 years, 4 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
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) {

Powered by Google App Engine
This is Rietveld 408576698