[lworld] RFR: 8264216: [lworld] unknown.Class.default gives misleading compilation error

Srikanth Adayapalam sadayapalam at openjdk.java.net
Wed Mar 31 09:42:24 UTC 2021


On Fri, 26 Mar 2021 07:49:37 GMT, Jesper Steen Møller <jespersm at openjdk.org> wrote:

> Make the compilation error for `somepkgname.UnknownClass.default` as informative as `UnknownClass.default`.

Please fix the issues mentioned. Also confirm whether you have run all the tests.

src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java line 41:

> 39: import com.sun.source.util.SimpleTreeVisitor;
> 40: import com.sun.tools.javac.code.*;
> 41: import com.sun.tools.javac.code.Kinds.KindName;

This import looks unused ??

src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java line 4902:

> 4900:                             Fragments.Location(Kinds.typeKindName(env.enclClass.type), env.enclClass.type, null)));
> 4901:                     yield syms.errSymbol;
> 4902:                 }

Looks ok, inventing a new error message altogether (such as default cannot be applied to a package) looks too heavy a hammer.

test/langtools/tools/javac/valhalla/lworld-values/UnknownTypeDefault.out line 3:

> 1: UnknownTypeDefault.java:11:30: compiler.err.cant.resolve.location: kindname.class, Y, null, null, (compiler.misc.location: kindname.class, UnknownTypeDefault, null)
> 2: UnknownTypeDefault.java:12:32: compiler.err.cant.resolve.location: kindname.class, y.Z, null, null, (compiler.misc.location: kindname.class, UnknownTypeDefault, null)
> 3: 2 errors

Are the co-ordinates of the error message correct ?? This test is failing for me as I see different column numbers than what you have mastered.

-------------

Changes requested by sadayapalam (Committer).

PR: https://git.openjdk.java.net/valhalla/pull/372


More information about the valhalla-dev mailing list