Skip to content
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

Autoreferencing copy types #44763

Closed
nikomatsakis opened this issue Sep 21, 2017 · 15 comments
Closed

Autoreferencing copy types #44763

nikomatsakis opened this issue Sep 21, 2017 · 15 comments
Labels
C-feature-request Category: A feature request, i.e: not implemented / a PR. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@nikomatsakis
Copy link
Contributor

This is a specific issue to track the changes proposed by @cramertj in RFC 2111. We decided to roll this into a larger experiment around coercions, generics, and Copy type ergonomics and are therefore ready to implement (but not yet stabilize).

@nikomatsakis nikomatsakis added E-needs-mentor T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 21, 2017
@aidanhs aidanhs added the C-feature-request Category: A feature request, i.e: not implemented / a PR. label Sep 21, 2017
@emberian
Copy link
Member

I'd like to experiment with this.

@nikomatsakis
Copy link
Contributor Author

@cmr woot! Let me know if you'd like some kind of mentoring help.

@H2CO3
Copy link

H2CO3 commented Mar 26, 2018

Will it be at all possible to opt out of this if stabilized? I recently saw that this is planned in 1.27, and I'm sharing very strong concerns with arielb1, repax, and est31 about the loss of explicitness and readability.

@est31
Copy link
Member

est31 commented Mar 26, 2018

I recently saw that this is planned in 1.27

Where did you see that? That would be a pretty hasty addition.

The last I've heard was that this feature is going to be added on an experimental basis during the impl period. Now that the impl period is long over, I hope we can put this matter at rest now and close the issue.

@H2CO3
Copy link

H2CO3 commented Mar 26, 2018

@est31 page 17 in these slides: https://twitter.com/jdub/status/978253005198782464

@est31
Copy link
Member

est31 commented Mar 26, 2018

I hope there is a mistake or misunderstanding somewhere... I just can't believe that they have agreed onto doing this behind closed doors and are now pulling it through without asking the community or even an accepted RFC. It doesn't even seem to be implemented yet. New features always must go through one version as a nightly feature before they become stable.... And the 1.26 release is branched on beta or close to being branched. So the release where it is unstable must be the 1.27 one, with 1.28 the first release where it can be stable. This won't happen unless not just one, but multiple policies are violated. So I believe there is a mistake somewhere, I really hope.

@H2CO3
Copy link

H2CO3 commented Mar 26, 2018

Sure, I might have misunderstood the meaning of that spreadsheet — still, my comments hold regardless of when these features are intended to be rolled out.

@aturon
Copy link
Member

aturon commented Mar 26, 2018

@est31 You are correct not to believe that, since of course no such thing could or would happen.

We've recently been putting together a tracking spreadsheet for Rust 2018, which has a lot of moving parts, and trying to triage these things weekly. The entries on this sheet are aspirational; almost all of them involve some level of consensus process (around stabilization at least), and a couple still need RFC work. I'm not sure why 1.27 was listed as the aspirational release here, since (I agree) that's not really feasible at this point.

@H2CO3
Copy link

H2CO3 commented Mar 26, 2018

@aturon thanks for the clarification!

@nikomatsakis
Copy link
Contributor Author

Hello all! I'm the one who put 1.27 there. I believe what I had in mind was that this was when I hoped to some experimental impl available -- though tbh, I think I was quite confused, because I was really referring to #45683, the lint for undesirable copies, and not to the changes in this line.

@nikomatsakis
Copy link
Contributor Author

In any case, sorry for the confusion, I shouldn't have overloaded the field. =)

@H2CO3
Copy link

H2CO3 commented Mar 27, 2018

@nikomatsakis I guess it's OK as long as you include a discriminant field too 😉

@steveklabnik
Copy link
Member

So, visiting this for triage; none of this ended moving forward, right? What do we do about this ticket?

@pwnorbitals
Copy link

Triage again; @steveklabnik @nikomatsakis It looks like this issue is not going forward. A decision should be taken

@scottmcm
Copy link
Member

Given the op mentions rolling this into #44619 (comment), I'll close this based on the FCP close in that other issue.

If anyone else shows up here, lang is still potentially interested in experiments in this area, but since nothing's happening right now this issue being open doesn't help. Feel free to drop by zulip and chat about things!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-feature-request Category: A feature request, i.e: not implemented / a PR. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

9 participants