Skip to content

Support for reify* form #550

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 14 commits into from
May 26, 2020
Merged

Support for reify* form #550

merged 14 commits into from
May 26, 2020

Conversation

chrisrink10
Copy link
Member

@chrisrink10 chrisrink10 commented May 24, 2020

Add the reify* special form and the basilisp.core/reify macro for constructing reified objects. reify* allows callers to create objects of anonymous class types satisfying 0 or more Python interfaces (and Basilisp protocols when #460 merges). This was able to use most of the same code as the original deftype* implementation, which was convenient. It's worth noting that reify* does not currently support classmethods (since the constructor is auto-generated and only accepts one argument - meta - anyway) or staticmethods (since the generated type is not directly exposed to users). Methods and Python properties are supported, however.

Partially addresses #425

@chrisrink10 chrisrink10 added the wip PR is work-in-progress label May 24, 2020
@chrisrink10 chrisrink10 removed the wip PR is work-in-progress label May 26, 2020
@chrisrink10 chrisrink10 marked this pull request as ready for review May 26, 2020 12:49
@chrisrink10 chrisrink10 merged commit 5773d9c into master May 26, 2020
@chrisrink10 chrisrink10 deleted the feature/reify-form branch May 26, 2020 22:41
@chrisrink10 chrisrink10 mentioned this pull request May 26, 2020
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.

1 participant