-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
8265130: Make ConstantDesc class hierarchy sealed #4135
Conversation
/csr |
👋 Welcome back gbierman! A progress list of the required criteria for merging this PR into |
@GavinBierman this pull request will not be integrated until the CSR request JDK-8265131 for issue JDK-8265130 has been approved. |
@GavinBierman The following label will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command. |
Webrevs
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like constants.patch
is accidentally added in this commit. That should be removed.
@@ -56,7 +56,7 @@ | |||
* | |||
* @since 12 | |||
*/ | |||
public abstract class DynamicConstantDesc<T> | |||
non-sealed public abstract class DynamicConstantDesc<T> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you explain why DynamicConstantDesc
is non-sealed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a permitted subclass of ConstantDesc
, so it must be either final
, sealed
, or non-sealed
. Making it non-sealed
means it can still be extended.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I should have made it clear. I was expecting DynamicConstantDesc
should be sealed
. Do you expect non-JDK implementation class extending DynamicConstantDesc
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From the ConstantDesc Javadoc:
* <p>Non-platform classes should not implement {@linkplain ConstantDesc} directly.
* Instead, they should extend {@link DynamicConstantDesc} (as {@link EnumDesc}
* and {@link VarHandleDesc} do.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. I missed this javadoc.
* @see ConstantDescs | ||
* | ||
* @since 12 | ||
*/ | ||
public interface ClassDesc | ||
sealed public interface ClassDesc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should move sealed
behind public
per the blessed modifier order from JLS. https://docs.oracle.com/javase/specs/jls/se16/preview/specs/sealed-classes-jls.html#jls-8.1.1
Per http://openjdk.java.net/jeps/409 the finalized sealed classes have no difference from that in 16, so the order suggested there should be valid.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. Now changed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me.
Does this require a CSR as well? I see a CSR here for another change that seals a hierarchy: https://bugs.openjdk.java.net/browse/JDK-8267506 |
Ah, nvm, it's already indicated on the PR :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good to me
@GavinBierman This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 147 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@mlchung, @JornVernee, @vicente-romero-oracle) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
/integrate |
@GavinBierman |
/sponsor |
@vicente-romero-oracle @GavinBierman Since your change was applied there have been 151 commits pushed to the
Your commit was automatically rebased without conflicts. Pushed as commit 379376f. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Mailing list message from Brian Goetz on core-libs-dev: The motivation here is that we wanted to preserve the ability to On 5/20/2021 7:43 PM, Mandy Chung wrote: |
1 similar comment
Mailing list message from Brian Goetz on core-libs-dev: The motivation here is that we wanted to preserve the ability to On 5/20/2021 7:43 PM, Mandy Chung wrote: |
Hi all,
Please review this patch to make the ConstantDesc hierarchy
sealed
, as was promised in its Javadoc, now that sealed classes are finalising in JDK 17.Thanks,
Gavin
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/4135/head:pull/4135
$ git checkout pull/4135
Update a local copy of the PR:
$ git checkout pull/4135
$ git pull https://git.openjdk.java.net/jdk pull/4135/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 4135
View PR using the GUI difftool:
$ git pr show -t 4135
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/4135.diff