Javac not trying to recover unresolved parameterized types
Vicente Romero
vicente.romero at oracle.com
Tue Aug 20 14:03:51 UTC 2024
Hi,
I think this is probably more a feature request than a bug but in any
case please file an issue and assign it to myself,
Thanks,
Vicente
On 8/19/24 12:02, Mickael Istria wrote:
> Hi all,
>
> As part of our work to allow Eclipse JDT to use Javac as backend, we
> noticed that in case of unresolved parameterized types, the compiler
> doesn't generate a nice recovered TypeSymbol with interesting data
> (such as the name) that can be used later.
> For example, my latest issue is that code like
> ```
> class K {
> Regular reg;
> Parameterized<Object> par;
> }
> ```
> where neither Regular nor Parameterized exist, make Javac produce a
> "recovered" symbol for `Regular` (at least the ErrorTypr stores the
> "Regular" name) when asking for the tsym of `reg` VarSymbol, while it
> doesn't produce anything useful for `Parameterized` when asking for
> the tsym of `par` VarSymbol. In this later case, the symbol points to
> `noType` which isn't usable by the IDE to generate a minimal DOM object.
>
> In comparison, ECJ generates a recovered type binding for
> `Parameterized`, which can be later used by some refactorings as if
> the type were existing. Such refactorings that work with ECJ backend
> cannot work with the Javac backend because of the symbol being unusable.
>
> We're currently adding a bunch of workarounds in many places to handle
> this case, but we'd obviously rather prefer if Javac can come with
> such smartness out of the box.
>
> So this behavior in Javac seems to me like a small issue or limitation
> in Javac. What do you think? Is this "problem" already known? Should
> this be reported as a bug? Does it make sense to expect Javac to
> provide such recovery for parameterized types to? Should we try to fix
> it?...
>
> Thanks in advance for you guidance
> --
> Mickael Istria
> Eclipse IDE <https://www.eclipse.org/eclipseide> developer, for Red
> Hat <https://developers.redhat.com/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/compiler-dev/attachments/20240820/caa67a8c/attachment-0001.htm>
More information about the compiler-dev
mailing list