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 {