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

stabilise ?, attributes on stmts, deprecate Reflect #36995

Merged
merged 4 commits into from
Oct 13, 2016
Merged

Conversation

nrc
Copy link
Member

@nrc nrc commented Oct 6, 2016

Copy link
Member

@Manishearth Manishearth left a comment

Choose a reason for hiding this comment

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

lgtm, not sure if libs/lang team folks need to sign off. r=me otherwise

found enum `core::result::Result`) [E0308]
```

`try!` returns a `Result<T, E>`, and so the function must. But `main()` has
Copy link
Member

Choose a reason for hiding this comment

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

doesn't this text apply to ? as well?

Copy link
Member

Choose a reason for hiding this comment

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

Maybe he removed it because its not accurate anymore: #36988

Copy link
Member Author

Choose a reason for hiding this comment

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

No, annoyingly you get an error message about the Carrier trait

@@ -255,6 +255,9 @@ macro_rules! debug_assert_ne {
/// Helper macro for reducing boilerplate code for matching `Result` together
/// with converting downstream errors.
///
/// Prefer using `?` syntax to `try!`. `?` is built in to the language and is
/// more succinct than `try!`, it is the standard method for error propogation.
Copy link
Contributor

Choose a reason for hiding this comment

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

propogation -> propagation

Copy link
Member

Choose a reason for hiding this comment

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

? is built in to the language and is more succinct than try!, it is the standard method for error propogation.

These are two separate sentences and probably shouldn't be separated by a comma.

@frewsxcv
Copy link
Member

frewsxcv commented Oct 6, 2016

For the sake of cross-linking, here's the link to the tracking issue: #31436

@nrc
Copy link
Member Author

nrc commented Oct 6, 2016

Also cc #15701, #27749

@nrc nrc added beta-nominated Nominated for backporting to the compiler in the beta channel. beta-accepted Accepted for backporting to the compiler in the beta channel. labels Oct 6, 2016
@bors
Copy link
Contributor

bors commented Oct 7, 2016

☔ The latest upstream changes (presumably #36945) made this pull request unmergeable. Please resolve the merge conflicts.

@nikomatsakis
Copy link
Contributor

This looks good to me, though I do think we ought to try and address #36988.

@nikomatsakis
Copy link
Contributor

@bors r+

@bors
Copy link
Contributor

bors commented Oct 11, 2016

📌 Commit adb4e2f has been approved by nikomatsakis

@bluss
Copy link
Member

bluss commented Oct 11, 2016

What's the type inference situation? It used to be that replacing try!(x) with x? would not infer as often.

Has this been cratered to look for such issues?

@nrc
Copy link
Member Author

nrc commented Oct 11, 2016

@bluss good point, I had mis-remembered this issue. We have indeed done a bunch of Crater runs, but to test whether ? is forwards compatible with the Carrier trait, which requires some backwards incompatibility between try! and ?. I don't think we can ever replace the implementation of try! in a backwards compatible way and that shouldn't be in this PR.

@bors: r-

cc [`?` tracking issue](rust-lang#31436)
Note that attributes on expressions are still unstable and are behind the `stmt_expr_attributes` flag.

cc [Tracking issue](rust-lang#15701)
@nrc
Copy link
Member Author

nrc commented Oct 11, 2016

@bors: r=@nikomatsakis

@bors
Copy link
Contributor

bors commented Oct 11, 2016

📌 Commit 79b5177 has been approved by @nikomatsakis

alexcrichton added a commit to alexcrichton/rust that referenced this pull request Oct 12, 2016
stabilise ?, attributes on stmts, deprecate Reflect

r? @nikomatsakis
bors added a commit that referenced this pull request Oct 12, 2016
@nikomatsakis
Copy link
Contributor

@nrc

I don't think we can ever replace the implementation of try! in a backwards compatible way and that shouldn't be in this PR.

argh, I missed that this change was even in the PR! good catch @bluss

@bors bors merged commit 79b5177 into rust-lang:master Oct 13, 2016
@nrc nrc mentioned this pull request Oct 18, 2016
@brson brson mentioned this pull request Oct 19, 2016
@alexcrichton alexcrichton removed the beta-nominated Nominated for backporting to the compiler in the beta channel. label Oct 19, 2016
@brson brson mentioned this pull request Nov 7, 2016
dtolnay added a commit to dtolnay/erased-serde that referenced this pull request Dec 24, 2016
Reflect is no longer required as of rust-lang/rust#36995.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beta-accepted Accepted for backporting to the compiler in the beta channel.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants