Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(java): utility to perform unsafe cast #3730

Merged
merged 8 commits into from
Aug 30, 2022
Merged

Conversation

RomainMuller
Copy link
Contributor

Adds an UnsafeCast.unsafeCast method to the Jsii runtime for Java that
allows unsafely casting an instance to a managed interface of the user's
choice.

This can be useful when dealing with type unions composed of interfaces
or structs, as there is otherwise no way to convert the instance without
jumping through hoops.

Fixes #3726 (sort of)


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Adds an `UnsafeCast.unsafeCast` method to the Jsii runtime for Java that
allows unsafely casting an instance to a managed interface of the user's
choice.

This can be useful when dealing with type unions composed of interfaces
or structs, as there is otherwise no way to convert the instance without
jumping through hoops.

Fixes #3726 (sort of)
@RomainMuller RomainMuller requested a review from a team August 29, 2022 15:34
@RomainMuller RomainMuller self-assigned this Aug 29, 2022
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Aug 29, 2022
Copy link
Contributor

@iliapolo iliapolo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why no test?

}
}

private UnsafeCast(){
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leftovers?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why leftovers?

RomainMuller and others added 4 commits August 30, 2022 12:49
A missing condition in the code generator could have resulted
in attempting to read a property on undefined, resulting in
a crash.
A missing condition in the code generator could have resulted
in attempting to read a property on undefined, resulting in
a crash.
@mergify
Copy link
Contributor

mergify bot commented Aug 30, 2022

Thank you for contributing! ❤️ I will now look into making sure the PR is up-to-date, then proceed to try and merge it!

@mergify mergify bot added the pr/ready-to-merge This PR is ready to be merged. label Aug 30, 2022
@mergify
Copy link
Contributor

mergify bot commented Aug 30, 2022

Merging (with squash)...

@mergify mergify bot merged commit 4a52d4c into main Aug 30, 2022
@mergify mergify bot deleted the rmuller/java-unsafe-cast branch August 30, 2022 13:57
@mergify
Copy link
Contributor

mergify bot commented Aug 30, 2022

Merging (with squash)...

@mergify mergify bot removed the pr/ready-to-merge This PR is ready to be merged. label Aug 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution/core This is a PR that came from AWS.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

(java) anyof union incorrect $jsii.interfaces in JsiiObjectRef
2 participants