CQ. Fix NPE in DartUnitOccurrencesComputerVisitor when unresolved import prefix.

Saw a crash in logs:

  Null check operator used on a null value

  package:analysis_server/src/domains/analysis/occurrences_dart.dart 253:32  DartUnitOccurrencesComputerVisitor.visitImportPrefixReference
  package:analyzer/src/dart/ast/ast.dart 13353:15                            ImportPrefixReferenceImpl.accept
  package:analyzer/src/dart/ast/ast.dart 16897:19                            NamedTypeImpl.visitChildren
  package:analyzer/dart/ast/visitor.g.dart 474:10                            GeneralizingAstVisitor.visitNode
  package:analyzer/dart/ast/visitor.g.dart 687:50                            GeneralizingAstVisitor.visitTypeAnnotation
  package:analyzer/dart/ast/visitor.g.dart 456:40                            GeneralizingAstVisitor.visitNamedType
  package:analysis_server/src/domains/analysis/occurrences_dart.dart 282:11  DartUnitOccurrencesComputerVisitor.visitNamedType
Change-Id: I2b06026dad093187c74b4e1b6c7371aaf648a480
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/456121
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analysis_server/lib/src/domains/analysis/occurrences_dart.dart b/pkg/analysis_server/lib/src/domains/analysis/occurrences_dart.dart
index 99d83c7..0e47149 100644
--- a/pkg/analysis_server/lib/src/domains/analysis/occurrences_dart.dart
+++ b/pkg/analysis_server/lib/src/domains/analysis/occurrences_dart.dart
@@ -250,7 +250,9 @@
 
   @override
   void visitImportPrefixReference(ImportPrefixReference node) {
-    _addOccurrence(node.element!, node.name);
+    if (node.element case var element?) {
+      _addOccurrence(element, node.name);
+    }
 
     super.visitImportPrefixReference(node);
   }
diff --git a/pkg/analysis_server/test/analysis/notification_occurrences_test.dart b/pkg/analysis_server/test/analysis/notification_occurrences_test.dart
index 43d8347..4652d6b 100644
--- a/pkg/analysis_server/test/analysis/notification_occurrences_test.dart
+++ b/pkg/analysis_server/test/analysis/notification_occurrences_test.dart
@@ -646,6 +646,15 @@
 ''');
   }
 
+  Future<void> test_prefix_null() async {
+    // Note, we use `core` just to have some prefix.
+    // The actual check is no crash on unresolved `prefix`.
+    await assertOccurrences(kind: ElementKind.PREFIX, '''
+import 'dart:core' as /*[0*/core/*0]*/;
+void f(prefix.A? _, /*[1*/core.int/*1]*/ _) {}
+''');
+  }
+
   Future<void> test_prefix_wildcard() async {
     // Ensure no crash.
     await assertOccurrences(kind: ElementKind.PREFIX, '''