| Index: pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart
|
| index 15e7f0f9e89c80397f05945d41632b215226cadf..350221fecc7fe99a88590c7dc67f1d2100434173 100644
|
| --- a/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart
|
| +++ b/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart
|
| @@ -8,14 +8,13 @@ import 'dart:async';
|
| import 'dart:collection';
|
|
|
| import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart';
|
| -import 'package:analysis_server/src/provisional/completion/dart/completion_target.dart';
|
| import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart';
|
| +import 'package:analysis_server/src/services/completion/local_declaration_visitor.dart';
|
| import 'package:analyzer/src/generated/ast.dart';
|
| import 'package:analyzer/src/generated/element.dart';
|
|
|
| import '../../../protocol_server.dart'
|
| show CompletionSuggestion, CompletionSuggestionKind;
|
| -import 'package:analysis_server/src/services/completion/local_declaration_visitor.dart';
|
|
|
| /**
|
| * A contributor for calculating instance invocation / access suggestions
|
| @@ -27,8 +26,7 @@ class TypeMemberContributor extends DartCompletionContributor {
|
| DartCompletionRequest request) async {
|
| // Determine if the target looks like a prefixed identifier,
|
| // a method invocation, or a property access
|
| - Expression parsedExpression =
|
| - _getTargetExpression(request.target, request.offset);
|
| + Expression parsedExpression = request.dotTarget;
|
| if (parsedExpression == null) {
|
| return EMPTY_LIST;
|
| }
|
| @@ -43,8 +41,7 @@ class TypeMemberContributor extends DartCompletionContributor {
|
| }
|
|
|
| // Recompute the target since resolution may have changed it
|
| - Expression expression =
|
| - _getTargetExpression(request.target, request.offset);
|
| + Expression expression = request.dotTarget;
|
| if (expression == null || expression.isSynthetic) {
|
| return EMPTY_LIST;
|
| }
|
| @@ -113,39 +110,6 @@ class TypeMemberContributor extends DartCompletionContributor {
|
| }
|
| return EMPTY_LIST;
|
| }
|
| -
|
| - /**
|
| - * Return the expression to the left of the 'dot' or `null` if none.
|
| - */
|
| - Expression _getTargetExpression(CompletionTarget target, int offset) {
|
| - AstNode node = target.containingNode;
|
| - if (node is MethodInvocation) {
|
| - if (identical(node.methodName, target.entity)) {
|
| - return node.realTarget;
|
| - } else if (node.isCascaded && node.operator.offset + 1 == offset) {
|
| - return node.realTarget;
|
| - } else {
|
| - return null;
|
| - }
|
| - }
|
| - if (node is PropertyAccess) {
|
| - if (identical(node.propertyName, target.entity)) {
|
| - return node.realTarget;
|
| - } else if (node.isCascaded && node.operator.offset + 1 == offset) {
|
| - return node.realTarget;
|
| - } else {
|
| - return null;
|
| - }
|
| - }
|
| - if (node is PrefixedIdentifier) {
|
| - if (identical(node.identifier, target.entity)) {
|
| - return node.prefix;
|
| - } else {
|
| - return null;
|
| - }
|
| - }
|
| - return null;
|
| - }
|
| }
|
|
|
| /**
|
|
|