Index: pkg/analysis_server/lib/src/services/completion/local_reference_contributor.dart |
diff --git a/pkg/analysis_server/lib/src/services/completion/local_reference_contributor.dart b/pkg/analysis_server/lib/src/services/completion/local_reference_contributor.dart |
index 9cfbb0d1e294b4fe4fd9848b8f44869a20a05d56..6fdb2b6c89237a5a129b828e743e0547e113a02b 100644 |
--- a/pkg/analysis_server/lib/src/services/completion/local_reference_contributor.dart |
+++ b/pkg/analysis_server/lib/src/services/completion/local_reference_contributor.dart |
@@ -14,7 +14,6 @@ import 'package:analysis_server/src/services/completion/local_declaration_visito |
import 'package:analysis_server/src/services/completion/local_suggestion_builder.dart'; |
import 'package:analysis_server/src/services/completion/optype.dart'; |
import 'package:analyzer/src/generated/ast.dart'; |
-import 'package:analyzer/src/generated/source.dart'; |
import 'package:analyzer/src/generated/utilities_dart.dart'; |
/** |
@@ -38,7 +37,8 @@ class LocalReferenceContributor extends DartCompletionContributor { |
} |
if (optype.includeStatementLabelSuggestions || |
optype.includeCaseLabelSuggestions) { |
- _LabelVisitor labelVisitor = new _LabelVisitor(request, |
+ _LabelVisitor labelVisitor = new _LabelVisitor( |
+ request, |
optype.includeStatementLabelSuggestions, |
optype.includeCaseLabelSuggestions); |
labelVisitor.visit(request.target.containingNode); |
@@ -188,8 +188,12 @@ class _ConstructorVisitor extends LocalDeclarationVisitor { |
element.returnType = classDecl.name.name; |
CompletionSuggestion suggestion = new CompletionSuggestion( |
CompletionSuggestionKind.INVOCATION, |
- deprecated ? DART_RELEVANCE_LOW : DART_RELEVANCE_DEFAULT, completion, |
- completion.length, 0, deprecated, false, |
+ deprecated ? DART_RELEVANCE_LOW : DART_RELEVANCE_DEFAULT, |
+ completion, |
+ completion.length, |
+ 0, |
+ deprecated, |
+ false, |
declaringType: classDecl.name.name, |
element: element, |
parameterNames: parameterNames, |
@@ -325,8 +329,13 @@ class _LabelVisitor extends LocalDeclarationVisitor { |
String completion = id.name; |
if (completion != null && completion.length > 0 && completion != '_') { |
CompletionSuggestion suggestion = new CompletionSuggestion( |
- CompletionSuggestionKind.IDENTIFIER, DART_RELEVANCE_DEFAULT, |
- completion, completion.length, 0, false, false); |
+ CompletionSuggestionKind.IDENTIFIER, |
+ DART_RELEVANCE_DEFAULT, |
+ completion, |
+ completion.length, |
+ 0, |
+ false, |
+ false); |
request.addSuggestion(suggestion); |
return suggestion; |
} |
@@ -343,7 +352,9 @@ class _LocalVisitor extends LocalDeclarationVisitor { |
final DartCompletionRequest request; |
final OpType optype; |
- _LocalVisitor(this.request, int offset, this.optype) : super(offset); |
+ _LocalVisitor(this.request, int offset, this.optype) : super(offset) { |
+ includeLocalInheritedTypes = !optype.inStaticMethodBody; |
+ } |
@override |
void declaredClass(ClassDeclaration declaration) { |
@@ -375,7 +386,8 @@ class _LocalVisitor extends LocalDeclarationVisitor { |
@override |
void declaredField(FieldDeclaration fieldDecl, VariableDeclaration varDecl) { |
- if (optype.includeReturnValueSuggestions) { |
+ if (optype.includeReturnValueSuggestions && |
+ (!optype.inStaticMethodBody || fieldDecl.isStatic)) { |
CompletionSuggestion suggestion = |
createFieldSuggestion(request.source, fieldDecl, varDecl); |
if (suggestion != null) { |
@@ -440,8 +452,9 @@ class _LocalVisitor extends LocalDeclarationVisitor { |
@override |
void declaredMethod(MethodDeclaration declaration) { |
- if (optype.includeReturnValueSuggestions || |
- optype.includeVoidReturnSuggestions) { |
+ if ((optype.includeReturnValueSuggestions || |
+ optype.includeVoidReturnSuggestions) && |
+ (!optype.inStaticMethodBody || declaration.isStatic)) { |
protocol.ElementKind elemKind; |
FormalParameterList param; |
TypeName typeName = declaration.returnType; |
@@ -523,19 +536,23 @@ class _LocalVisitor extends LocalDeclarationVisitor { |
} |
return typeId.name; |
}).toList(); |
- suggestion.requiredParameterCount = paramList.where( |
- (FormalParameter param) => param is! DefaultFormalParameter).length; |
+ suggestion.requiredParameterCount = paramList |
+ .where((FormalParameter param) => param is! DefaultFormalParameter) |
+ .length; |
suggestion.hasNamedParameters = paramList |
.any((FormalParameter param) => param.kind == ParameterKind.NAMED); |
} |
void _addSuggestion( |
SimpleIdentifier id, TypeName typeName, protocol.ElementKind elemKind, |
- {bool isAbstract: false, bool isDeprecated: false, |
- ClassDeclaration classDecl, FormalParameterList param, |
+ {bool isAbstract: false, |
+ bool isDeprecated: false, |
+ ClassDeclaration classDecl, |
+ FormalParameterList param, |
int relevance: DART_RELEVANCE_DEFAULT}) { |
CompletionSuggestion suggestion = createSuggestion( |
- id, isDeprecated, relevance, typeName, classDecl: classDecl); |
+ id, isDeprecated, relevance, typeName, |
+ classDecl: classDecl); |
if (suggestion != null) { |
request.addSuggestion(suggestion); |
suggestion.element = createElement(request.source, elemKind, id, |