Skip to content

Conversation

Ladicek
Copy link
Contributor

@Ladicek Ladicek commented Apr 25, 2025

  • add more factory methods to {Class,Interface}MethodDesc
  • add validation of interface method invocation
  • track creation of all creators and improve exception message for code fallthrough
  • improve exception message when LocalVar was not allocated

Ladicek added 4 commits April 25, 2025 16:44
It is often required to create a method descriptor for a dynamically created
class, but the method name and type are statically known. The new overloads
are easier to use in that case.
If the user attempts to emit `invokeinterface`, they must pass
an `InterfaceMethodDesc`. If they don't, we now throw an exception
with an explanation.
… fallthrough

If an `ExecutableCreator` body falls through, the exception message contains
(when tracking is enabled) the creation site of the corresponging creator.
If a `LocalVar` was not allocated, the exception message contains (when
tracking is enabled) its creation site, and it always contains the name
of the variable and a hint to check the declaring `BlockCreator`.

Further, this commit adds missing `checkSlot()` call to a few places.
@Ladicek Ladicek added the 2.x Issue applies to Gizmo 2.x label Apr 25, 2025
@dmlloyd dmlloyd merged commit cd83282 into quarkusio:main Apr 25, 2025
1 check passed
@Ladicek Ladicek deleted the improvements branch April 28, 2025 06:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.x Issue applies to Gizmo 2.x
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants