Index: pkg/analysis_server/lib/src/services/completion/dart/optype.dart |
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/optype.dart b/pkg/analysis_server/lib/src/services/completion/dart/optype.dart |
index 132c8235799d3a2aaba80375d8be4d4030f90615..59a7c7498453a12ff167299d54805c136f566672 100644 |
--- a/pkg/analysis_server/lib/src/services/completion/dart/optype.dart |
+++ b/pkg/analysis_server/lib/src/services/completion/dart/optype.dart |
@@ -8,6 +8,7 @@ import 'package:analysis_server/src/protocol_server.dart' hide Element; |
import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; |
import 'package:analysis_server/src/provisional/completion/dart/completion_target.dart'; |
import 'package:analyzer/dart/ast/ast.dart'; |
+import 'package:analyzer/dart/ast/resolution_accessors.dart'; |
import 'package:analyzer/dart/ast/token.dart'; |
import 'package:analyzer/dart/ast/visitor.dart'; |
import 'package:analyzer/dart/element/element.dart'; |
@@ -567,7 +568,8 @@ class _OpTypeAstVisitor extends GeneralizingAstVisitor { |
if (node.parent is VariableDeclaration) { |
VariableDeclaration varDeclaration = |
node.parent as VariableDeclaration; |
- localTypeAssertion = varDeclaration.element?.type; |
+ localTypeAssertion = |
+ elementForVariableDeclaration(varDeclaration)?.type; |
} else if (node.parent is AssignmentExpression) { |
AssignmentExpression assignmentExpression = |
node.parent as AssignmentExpression; |
@@ -653,7 +655,7 @@ class _OpTypeAstVisitor extends GeneralizingAstVisitor { |
if (identical(entity, node.expression)) { |
optype.includeReturnValueSuggestions = true; |
optype.returnValueSuggestionsFilter = (DartType dartType, int relevance) { |
- DartType type = node.element?.type; |
+ DartType type = elementForNamedExpression(node)?.type; |
bool isEnum = type != null && |
type.element is ClassElement && |
(type.element as ClassElement).isEnum; |