| Index: pkg/analysis_server/lib/src/services/correction/name_suggestion.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/correction/name_suggestion.dart b/pkg/analysis_server/lib/src/services/correction/name_suggestion.dart
|
| index 4c10fec3c1e5871c8a9068e9ebcb208ee36198db..b96d7cf0acd5927b78f3666859ce12fc1a275ac1 100644
|
| --- a/pkg/analysis_server/lib/src/services/correction/name_suggestion.dart
|
| +++ b/pkg/analysis_server/lib/src/services/correction/name_suggestion.dart
|
| @@ -136,27 +136,49 @@ void _addSingleCharacterName(Set<String> excluded, Set<String> result, int c) {
|
| }
|
|
|
| String _getBaseNameFromExpression(Expression expression) {
|
| - String name = null;
|
| - // e as Type
|
| if (expression is AsExpression) {
|
| - AsExpression asExpression = expression as AsExpression;
|
| - expression = asExpression.expression;
|
| + return _getBaseNameFromExpression(expression.expression);
|
| + } else if (expression is ParenthesizedExpression) {
|
| + return _getBaseNameFromExpression(expression.expression);
|
| }
|
| + return _getBaseNameFromUnwrappedExpression(expression);
|
| +}
|
| +
|
| +String _getBaseNameFromLocationInParent(Expression expression) {
|
| + // value in named expression
|
| + if (expression.parent is NamedExpression) {
|
| + NamedExpression namedExpression = expression.parent as NamedExpression;
|
| + if (namedExpression.expression == expression) {
|
| + return namedExpression.name.label.name;
|
| + }
|
| + }
|
| + // positional argument
|
| + {
|
| + ParameterElement parameter = expression.propagatedParameterElement;
|
| + if (parameter == null) {
|
| + parameter = expression.staticParameterElement;
|
| + }
|
| + if (parameter != null) {
|
| + return parameter.displayName;
|
| + }
|
| + }
|
| + // unknown
|
| + return null;
|
| +}
|
| +
|
| +String _getBaseNameFromUnwrappedExpression(Expression expression) {
|
| + String name = null;
|
| // analyze expressions
|
| if (expression is SimpleIdentifier) {
|
| - SimpleIdentifier node = expression;
|
| - return node.name;
|
| + return expression.name;
|
| } else if (expression is PrefixedIdentifier) {
|
| - PrefixedIdentifier node = expression;
|
| - return node.identifier.name;
|
| + return expression.identifier.name;
|
| } else if (expression is PropertyAccess) {
|
| - PropertyAccess node = expression;
|
| - return node.propertyName.name;
|
| + return expression.propertyName.name;
|
| } else if (expression is MethodInvocation) {
|
| name = expression.methodName.name;
|
| } else if (expression is InstanceCreationExpression) {
|
| - InstanceCreationExpression creation = expression;
|
| - ConstructorName constructorName = creation.constructorName;
|
| + ConstructorName constructorName = expression.constructorName;
|
| TypeName typeName = constructorName.type;
|
| if (typeName != null) {
|
| Identifier typeNameIdentifier = typeName.name;
|
| @@ -175,6 +197,13 @@ String _getBaseNameFromExpression(Expression expression) {
|
| return prefixed.prefix.name;
|
| }
|
| }
|
| + } else if (expression is IndexExpression) {
|
| + name = _getBaseNameFromExpression(expression.realTarget);
|
| + if (name.endsWith('es')) {
|
| + name = name.substring(0, name.length - 2);
|
| + } else if (name.endsWith('s')) {
|
| + name = name.substring(0, name.length - 1);
|
| + }
|
| }
|
| // strip known prefixes
|
| if (name != null) {
|
| @@ -192,25 +221,3 @@ String _getBaseNameFromExpression(Expression expression) {
|
| // done
|
| return name;
|
| }
|
| -
|
| -String _getBaseNameFromLocationInParent(Expression expression) {
|
| - // value in named expression
|
| - if (expression.parent is NamedExpression) {
|
| - NamedExpression namedExpression = expression.parent as NamedExpression;
|
| - if (namedExpression.expression == expression) {
|
| - return namedExpression.name.label.name;
|
| - }
|
| - }
|
| - // positional argument
|
| - {
|
| - ParameterElement parameter = expression.propagatedParameterElement;
|
| - if (parameter == null) {
|
| - parameter = expression.staticParameterElement;
|
| - }
|
| - if (parameter != null) {
|
| - return parameter.displayName;
|
| - }
|
| - }
|
| - // unknown
|
| - return null;
|
| -}
|
|
|