manifold-systems / manifold

Manifold is a Java compiler plugin, its features include Metaprogramming, Properties, Extension Methods, Operator Overloading, Templates, a Preprocessor, and more.
http://manifold.systems/
Apache License 2.0
2.43k stars 125 forks source link

Abstract enum methods are not supported with manifold-ext #478

Closed rsmckinney closed 1 year ago

rsmckinney commented 1 year ago

Abstract enum methods are not supported with manifold-ext.

enum AbstractEnum {
  C1 {
    void say() { . . . }
  },
  C2 {
    void say() { . . . }
  };
  abstract void say();
}

Although the compiler's symbol for AbstractEnum has modifier ABSTRACT, its bytecode isn't really be generated that way. The extension class enum must follow suit and withhold the modifier in both the class and the methods.

rsmckinney commented 1 year ago

Fix available with release 2023.1.18