Skip to content

Better object support (in particular ~ and & objects) #8455

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

Closed

Conversation

nikomatsakis
Copy link
Contributor

Fix #5762 and various other aspects of object invocation.

r? @graydon

what amount a T* pointer must be adjusted to reach the contents
of the box. For `~T` types, this requires knowing the type `T`,
which is not known in the case of objects.
Note: some portions of this commit written by @Sodel-the-Vociferous
(Daniel Ralston)
Note: some portions of this commit written by @Sodel-the-Vociferous
(Daniel Ralston)
to favor inherent methods over extension methods.

The reason to favor inherent methods is that otherwise an impl
like

    impl Foo for @foo { fn method(&self) { self.method() } }

causes infinite recursion.  The current change to favor inherent methods is
rather hacky; the method resolution code is in need of a refactoring.
Also cleanup the treatment of mutability in mem_categorization, which still
included the concept of interior mutability. At some point, we should
refactor the types to exclude the possibility of interior mutability rather
than just ignoring the mutability value in those cases.
@graydon
Copy link
Contributor

graydon commented Aug 11, 2013

Wonderful, thanks!

bors added a commit that referenced this pull request Aug 11, 2013
…, r=graydon

Fix #5762 and various other aspects of object invocation.

r? @graydon
@bors bors closed this Aug 12, 2013
@nikomatsakis nikomatsakis deleted the issue-5762-objects-dralston-d branch March 30, 2016 16:15
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.

Object types should use adjustments, include mutability
3 participants