We discussed about it being the declared type vs the runtime type but this example seems to have settled it in favor of the declared type: {code} private Map<@NotNull String, @NotNull String> property = new MyMap(); {code}
Using the runtime type wouldn't allow to disambiguate the 2 constraints as we do not have any type argument to reference.
Note that currently, in the spec, for cascaded validation, we require the runtime type.
See this sentence {{For a container with the declared type `C` and the runtime type `C'` whose element type is marked for cascaded validation}}. |
|