Open
Description
There is currently ambiguity and inconsistency in how null values are coerced and resolved as part of variable values, default values, and argument values. This inconsistency and ambiguity can allow for null values to appear at non-null arguments, which might result in unforseen null-pointer-errorrs.
Fix this coercion problem by handling each of the cases according to the issue.
The key new feature is that if you have a non-null input, with a default, then this is allowed and the field isn't "required" per se anymore. Another key feature is that if you have a $var : T
for some (nullable) type T
, then this can be used in a non-null context proviso that context supplies a default value. In short, default value handling is now more lenient.