Compiler always says "local classes must not extend sealed classes" even if class is anonymous

Zheka Kozlov orionllmain at
Mon Jun 8 12:32:01 UTC 2020


Compiling this program

public class Main {
    public static void main(String[] args) {
        Shape shape = new Shape() {};

sealed interface Shape {

leads to an error:

error: local classes must not extend sealed classes
        Shape shape = new Shape() {};

But the class of `shape` is an anonymous class rather than a local class.
By definition, a local class must have a name (JLS 14.3). I think the error
message should say " anonymous classes must not extend sealed classes".

Bith best regards, Zheka.

More information about the amber-dev mailing list