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);
}
}