[foreign] RFR duplicates in named layouts have to be reported as error

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Mon May 28 08:37:54 UTC 2018



On 28/05/18 07:39, Sundararajan Athijegannathan wrote:
> Isolated Structs will work if there are no name definitions or 
> references in its layout. If there are Unresolved name references in 
> its layout, then there has to be a 'context' in which the names are 
> defined/resolved. The context cannot be entire Java process as it 
> currently is! Two issues with the current code: 
I agree with all you say. The only thing I'm disagreeing with is the 
fact that the context has to be the @NativeHeader annotation, as that 
suggests an header-centric nature that was never intended to be part of 
the design.

Other, more explicit ways to define the context include an explicit 
annotation which list all the classes where dependent layout can be 
found. I think I'd like something like this better. Example (names TBD):

@NativeStruct("[$(b)](a)")
@Friends(B.class)
interface A {
     B b();
}

@NativeStruct("[$(a)](b)")
@Friends(A.class)
interface B {
     A a();
}


Maurizio





More information about the panama-dev mailing list