Record not-supplied named parameters in the nullability graph

Change-Id: Ie9656b6de3e1545f9021e7d1d8d6747c51f1e342
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102400
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/lib/src/nullability/constraint_gatherer.dart b/pkg/analysis_server/lib/src/nullability/constraint_gatherer.dart
index c96c5b9..e2f24d9 100644
--- a/pkg/analysis_server/lib/src/nullability/constraint_gatherer.dart
+++ b/pkg/analysis_server/lib/src/nullability/constraint_gatherer.dart
@@ -360,7 +360,8 @@
     // Any parameters not supplied must be optional.
     for (var entry in calleeType.namedParameters.entries) {
       if (suppliedNamedParameters.contains(entry.key)) continue;
-      entry.value.node.recordNamedParameterNotSupplied(_constraints, _guards);
+      entry.value.node
+          .recordNamedParameterNotSupplied(_constraints, _guards, _graph);
     }
     return calleeType.returnType;
   }
diff --git a/pkg/analysis_server/lib/src/nullability/nullability_node.dart b/pkg/analysis_server/lib/src/nullability/nullability_node.dart
index 235ef5f..dbfaceb 100644
--- a/pkg/analysis_server/lib/src/nullability/nullability_node.dart
+++ b/pkg/analysis_server/lib/src/nullability/nullability_node.dart
@@ -119,10 +119,11 @@
   /// Records the fact that an invocation was made to a function with named
   /// parameters, and the named parameter associated with this node was not
   /// supplied.
-  void recordNamedParameterNotSupplied(
-      Constraints constraints, List<NullabilityNode> guards) {
+  void recordNamedParameterNotSupplied(Constraints constraints,
+      List<NullabilityNode> guards, NullabilityGraph graph) {
     if (isPossiblyOptional) {
       _recordConstraints(constraints, guards, const [], _nullable);
+      graph.connect(NullabilityNode.always, this, guards: guards);
     }
   }