Follow-up from #1716: it should be possible to externally add libraries with @Owning / @NotOwning in suitable locations.
I will try to blend this into the existing support for .eea files.
eea for null analysis uses this encoding:
0 = @Nullable
1 = @NonNull
Without modifying the general format, we still have the digits 2-9 for encoding more annotations. While there is no intuitive mapping like 0/1, I think using 8/9 is a pragmatically valid option, that still leaves us with the option to use 2 for another null related annotation etc. (Should we ever run out of digits, we can still change the format to let digits start a multi char encoding etc. - but not for now).
Technically we need to check if the existing integration via TypeAnnotationWalker can suitably "simulate" owning annotations in declaration positions. Let's see whether having @Owning specify TYPE_USE as one of its targets works for or against this strategy.
Follow-up from #1716: it should be possible to externally add libraries with
@Owning/@NotOwningin suitable locations.I will try to blend this into the existing support for .eea files.
eea for null analysis uses this encoding:
0=@Nullable1=@NonNullWithout modifying the general format, we still have the digits 2-9 for encoding more annotations. While there is no intuitive mapping like 0/1, I think using 8/9 is a pragmatically valid option, that still leaves us with the option to use
2for another null related annotation etc. (Should we ever run out of digits, we can still change the format to let digits start a multi char encoding etc. - but not for now).Technically we need to check if the existing integration via
TypeAnnotationWalkercan suitably "simulate" owning annotations in declaration positions. Let's see whether having@OwningspecifyTYPE_USEas one of its targets works for or against this strategy.