Update _ContextTypeVisitor to support ConstructorName / ConstructorReference.
We need it to trigger constructor reference suggestions.
Change-Id: I2a04520c85393b25f6db7fdd1e478aad81398a96
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216762
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart b/pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart
index 722a3f4..1dd0f73 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart
@@ -652,6 +652,16 @@
}
@override
+ DartType? visitConstructorName(ConstructorName node) {
+ return _visitParent(node);
+ }
+
+ @override
+ DartType? visitConstructorReference(ConstructorReference node) {
+ return _visitParent(node);
+ }
+
+ @override
DartType? visitDefaultFormalParameter(DefaultFormalParameter node) {
var separator = node.separator;
if (separator != null && separator.end <= offset) {
diff --git a/pkg/analysis_server/test/src/services/completion/dart/feature_computer_test.dart b/pkg/analysis_server/test/src/services/completion/dart/feature_computer_test.dart
index 6e27b10..bfa63e0 100644
--- a/pkg/analysis_server/test/src/services/completion/dart/feature_computer_test.dart
+++ b/pkg/analysis_server/test/src/services/completion/dart/feature_computer_test.dart
@@ -438,6 +438,30 @@
''', 'num');
}
+ Future<void> test_className_period() async {
+ await assertContextType('''
+int x = List.^;
+''', 'int');
+ }
+
+ Future<void> test_className_period_identifier() async {
+ await assertContextType('''
+int x = List.^;
+''', 'int');
+ }
+
+ Future<void> test_className_typeArguments_period() async {
+ await assertContextType('''
+int x = List<double>.^;
+''', 'int');
+ }
+
+ Future<void> test_className_typeArguments_period_identifier() async {
+ await assertContextType('''
+int x = List<double>.foo^;
+''', 'int');
+ }
+
Future<void> test_fieldDeclaration_int() async {
await assertContextType('''
class Foo {