Skip to content

Add a feature specification for the metaobject proposal #4301

New issue

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

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

Already on GitHub? # to your account

Merged
merged 17 commits into from
Jun 12, 2025

Conversation

eernstg
Copy link
Member

@eernstg eernstg commented Mar 24, 2025

This PR adds a feature specification for the metaobject proposal (formerly known as 'more capable Type objects'). For simplicity, it does not include the part about Type.reify (that will be specified separately).

@ghost

This comment was marked as off-topic.

@mraleph

This comment was marked as off-topic.

@ghost

This comment was marked as off-topic.

Copy link
Member Author

@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.

Lots of improvements, PTAL!

The change to a more abstract approach does get a little bit silly when we have to reinvent covariant along the way, but it does also make some other things simpler. I think it's a slight improvement on average.

However, it's a major point in the design of this feature that it does not introduce a lot of completely new from-scratch primitive semantics, it is simply a way to transform a type C<T1 .. Tk> to an object MetaC<T1 .. Tk>, and all the expressive power follows from that, based on well-established mechanisms like superinterfaces, overriding declarations, etcetc.

@eernstg
Copy link
Member Author

eernstg commented Jun 12, 2025

I'll land this now, and we can then take detailed discussions in separate language issues, as usual.

@eernstg eernstg merged commit 17313ed into main Jun 12, 2025
3 checks passed
@eernstg eernstg deleted the spec_metaobjects_mar25 branch June 12, 2025 09:31
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants