On Wed, 21 Aug 2024 21:17:14 GMT, Coleen Phillimore <cole...@openjdk.org> wrote:
>> Note that JVMS 4.1 requires `ACC_ABSTRACT` to be also set when >> `ACC_INTERFACE` is set. Also note that some classes capture class data to >> refer to hidden classes and method handles or lambda forms, so those fields' >> generation need to add `ACC_PUBLIC` flag to be usable in interfaces. > > I feel like making it ACC_INTERFACE might cause some error if there are no > public nonstatic methods, which is the case with this class. I don't know > what @liach your comment means, but this code got more complicated than it > was with the first version of this change. When I talked to @rose00 he > thought ACC_ABSTRACT would be okay for this. Yes, you are right that we currently don't add ACC_PUBLIC flags on methods, which will fail if we add ACC_INTERFACE. Same for the fields; these LambdaForm classes use fields to store class data that's usually stored as condy, because LambdaForm is the infrastructure that condy uses (like LambdaMetafacotry cannot use lambdas). Those fields are my concerns for the interface migration. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/19157#discussion_r1725777710