| Index: pkg/analysis_server/lib/src/services/completion/imported_computer.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/completion/imported_computer.dart b/pkg/analysis_server/lib/src/services/completion/imported_computer.dart
|
| index 5a06b216d6c7a52efa60398e057116080a2f51d7..e8da6efa37dc25faa45492c82bbf09995fbaa2c1 100644
|
| --- a/pkg/analysis_server/lib/src/services/completion/imported_computer.dart
|
| +++ b/pkg/analysis_server/lib/src/services/completion/imported_computer.dart
|
| @@ -80,9 +80,14 @@ class _ImportedSuggestionBuilder extends ElementSuggestionBuilder
|
| final DartCompletionRequest request;
|
| final OpType optype;
|
| DartCompletionCache cache;
|
| + HashSet<String> completions;
|
|
|
| _ImportedSuggestionBuilder(this.request, this.optype) {
|
| cache = request.cache;
|
| + completions = new HashSet<String>();
|
| + for (CompletionSuggestion suggestion in request.suggestions) {
|
| + completions.add(suggestion.completion);
|
| + }
|
| }
|
|
|
| @override
|
| @@ -170,11 +175,11 @@ class _ImportedSuggestionBuilder extends ElementSuggestionBuilder
|
| unfiltered.forEach((CompletionSuggestion suggestion) {
|
| if (filterText.length > 0) {
|
| if (suggestion.completion.startsWith(filterText)) {
|
| - request.suggestions.add(suggestion);
|
| + _addSuggestion(suggestion);
|
| }
|
| } else {
|
| if (suggestion.relevance != DART_RELEVANCE_LOW) {
|
| - request.suggestions.add(suggestion);
|
| + _addSuggestion(suggestion);
|
| }
|
| }
|
| });
|
| @@ -221,6 +226,16 @@ class _ImportedSuggestionBuilder extends ElementSuggestionBuilder
|
| }
|
|
|
| /**
|
| + * Add suggestion if an identically named suggestion
|
| + * has not already been added.
|
| + */
|
| + void _addSuggestion(CompletionSuggestion suggestion) {
|
| + if (completions.add(suggestion.completion)) {
|
| + request.suggestions.add(suggestion);
|
| + }
|
| + }
|
| +
|
| + /**
|
| * Add suggested based upon imported elements.
|
| */
|
| void _addSuggestions(AstNode node) {
|
|
|