RFR: JDK-8273244: Improve diagnostic output related to ErroneousTree [v5]
Jonathan Gibbons
jjg at openjdk.java.net
Fri Oct 1 16:28:03 UTC 2021
On Fri, 1 Oct 2021 15:41:17 GMT, Jonathan Gibbons <jjg at openjdk.org> wrote:
>> src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DCTree.java line 225:
>>
>>> 223: }
>>> 224:
>>> 225: return Position.NOPOS;
>>
>> This method should return Diagnostic.NOPOS.
>>
>> I'm concerned with mixing com.sun.tools.javac.util.Position.NOPOS and javax.tools.Diagnostic.NOPOS. Although they currently have the same int value, they are of different types, used in different contexts, and not guaranteed to remain equal in the future. We might need to do something about it.
>
> Hmmm. I doubt this is the only place where the values are conflated. I'll check with other `javac` folk about defining `com.sun.tools.javac.util.Position.NOPOS` in terms of `javax.tools.Diagnostic.NOPOS`. The internal version predates the public value, but the two are intended to be the same.
I changed the line, but only to remove the redundant use of `Position.`
The two values, `Diagnostic.NOPOS` and `Position.NOPOS` are intended to be the same value, allowing for the difference in type. The difference in type for `NOPOS`, and all methods in `Trees` (and `DocTrees`) that return positions, was intended to allow other implementations of `javax.tools` to handle longer source files (!!!) even though `javac` only support `int`-sized files.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5510
More information about the compiler-dev
mailing list