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

Reply via email to