small optimization: no need to infer null->? contract for @NotNull param