| Index: pkg/analysis_server/lib/src/services/completion/optype.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/completion/optype.dart b/pkg/analysis_server/lib/src/services/completion/optype.dart
|
| index ef2902bc63ca2e76bb71523df82c819643447cf6..7b06919ed2ab5c8b36f5693de26ce1da84377043 100644
|
| --- a/pkg/analysis_server/lib/src/services/completion/optype.dart
|
| +++ b/pkg/analysis_server/lib/src/services/completion/optype.dart
|
| @@ -6,6 +6,7 @@ library services.completion.computer.dart.optype;
|
|
|
| import 'package:analysis_server/src/services/completion/completion_target.dart';
|
| import 'package:analyzer/src/generated/ast.dart';
|
| +import 'package:analyzer/src/generated/scanner.dart';
|
|
|
| /**
|
| * An [AstVisitor] for determining whether top level suggestions or invocation
|
| @@ -247,6 +248,15 @@ class _OpTypeAstVisitor extends GeneralizingAstVisitor {
|
|
|
| @override
|
| void visitExpressionStatement(ExpressionStatement node) {
|
| + // Given f[], the parser drops the [] from the expression statement
|
| + // but the [] token is the CompletionTarget entity
|
| + if (entity is Token) {
|
| + Token token = entity;
|
| + if (token.lexeme == '[]' && offset == token.offset + 1) {
|
| + optype.includeReturnValueSuggestions = true;
|
| + optype.includeTypeNameSuggestions = true;
|
| + }
|
| + }
|
| }
|
|
|
| @override
|
| @@ -307,6 +317,12 @@ class _OpTypeAstVisitor extends GeneralizingAstVisitor {
|
| }
|
|
|
| @override
|
| + void visitIndexExpression(IndexExpression node) {
|
| + optype.includeReturnValueSuggestions = true;
|
| + optype.includeTypeNameSuggestions = true;
|
| + }
|
| +
|
| + @override
|
| void visitInstanceCreationExpression(InstanceCreationExpression node) {
|
| if (identical(entity, node.constructorName)) {
|
| optype.includeTypeNameSuggestions = true;
|
|
|