[GR-48191] Enable lambda reflection queries #11350
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Enables reachability metadata JSON files to register reflective queries on lambda classes. A lambda class is defined according to the following parameters:
Resolving a lambda can therefore yield multiple classes. This PR includes the necessary changes to the parsing code.
JSON format
The following format is used to specify a lambda class in a
reachability-metadata.json
file:The
"declaringMethod"
field is optional. When it is missing, lambda classes will be searched within every method declared in the specified class.Agent behavior
The Native Image agent now supports lambda classes like regular classes and proxies. It never emits the
"declaringMethod"
field, as it is not possible to recover this information at run-time from aClass
object. Trace files now encode types in the same way asConfigurationTypeDescriptor
, which makes them more flexible and easier to parse.Backwards compatibility
This change will be backported to all GraalVM LTS versions to enable them to read files containing lambda definitions created by GraalVM 25.0 and higher.