Skip to content

Proposal for "base", "interface" and "final" type modifiers. #2646

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

Merged
merged 4 commits into from
Nov 29, 2022

Conversation

munificent
Copy link
Member

@munificent munificent commented Nov 22, 2022

Here's a new proposal for a set of capability modifiers on types. It supersedes my earlier "closed" and "base" proposal (#2592), which I'll close. It's heavily based on @leafpetersen's proposal (#2595), incorporates a suggestion from @natebosch to use a metadata annotation for @reopen and Erik's discussion of invariants you get from removing capabilities (which I hope I captured OK here).

Let me know what you think!

@mit-mit @stereotype441 @jakemac53 @kallentu

Copy link
Member

@eernstg eernstg left a comment

Choose a reason for hiding this comment

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

This is great!

Added a handful of comments.

@munificent
Copy link
Member Author

I'm going to go ahead and land this, because it's just a proposal either way. I'd like to talk about moving it forward soon, though, since I think it will be valuable to have these modifiers at the same time that we introduce sealed.

@munificent munificent merged commit 9a9d958 into master Nov 29, 2022
@munificent munificent deleted the base-interface-final branch November 29, 2022 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants