-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Rollup of 9 pull requests #64658
Rollup of 9 pull requests #64658
Commits on Sep 11, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 299d696 - Browse repository at this point
Copy the full SHA 299d696View commit details
Commits on Sep 12, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 144b845 - Browse repository at this point
Copy the full SHA 144b845View commit details -
Configuration menu - View commit details
-
Copy full SHA for cf6a1fe - Browse repository at this point
Copy the full SHA cf6a1feView commit details
Commits on Sep 16, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 194d357 - Browse repository at this point
Copy the full SHA 194d357View commit details
Commits on Sep 19, 2019
-
factor out pluralisation remains after rust-lang#64280
gaolei committedSep 19, 2019 Configuration menu - View commit details
-
Copy full SHA for 1ab5593 - Browse repository at this point
Copy the full SHA 1ab5593View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3db2c13 - Browse repository at this point
Copy the full SHA 3db2c13View commit details
Commits on Sep 20, 2019
-
Merge pull request rust-lang#23 from rust-lang/master
Sync to rust-lang/rust branch master
Configuration menu - View commit details
-
Copy full SHA for 66b1649 - Browse repository at this point
Copy the full SHA 66b1649View commit details -
remove the extra comma after the match arm
This would follow the same coding style as all the other match arms in this file.
guanqun authoredSep 20, 2019 Configuration menu - View commit details
-
Copy full SHA for c3140ba - Browse repository at this point
Copy the full SHA c3140baView commit details -
Configuration menu - View commit details
-
Copy full SHA for 491a0c6 - Browse repository at this point
Copy the full SHA 491a0c6View commit details -
Merge pull request rust-lang#24 from Wind-River/home_directory
No home directory on vxWorks
Configuration menu - View commit details
-
Copy full SHA for fbf9fa4 - Browse repository at this point
Copy the full SHA fbf9fa4View commit details -
Exempt extern "Rust" from improper_ctypes
It should be fine for Rust ABIs to involve any Rust type.
Configuration menu - View commit details
-
Copy full SHA for 9f374da - Browse repository at this point
Copy the full SHA 9f374daView commit details -
Configuration menu - View commit details
-
Copy full SHA for b956ae3 - Browse repository at this point
Copy the full SHA b956ae3View commit details -
Fix the span used to suggest avoiding for-loop moves
It was using the snippet from the "use" span, which often renders the same, but with closures that snippet is on the start of the closure where the value is captured. We should be using the snippet from the span where it was moved into the `for` loop, which is `move_span`.
Configuration menu - View commit details
-
Copy full SHA for c3f72d1 - Browse repository at this point
Copy the full SHA c3f72d1View commit details -
Merge pull request rust-lang#25 from Wind-River/stat
rust stat should call libc stat
Configuration menu - View commit details
-
Copy full SHA for 494d83c - Browse repository at this point
Copy the full SHA 494d83cView commit details
Commits on Sep 21, 2019
-
Rollup merge of rust-lang#64010 - c410-f3r:stabilize-attrs-fn, r=Centril
Stabilize `param_attrs` in Rust 1.39.0 # Stabilization proposal I propose that we stabilize `#![feature(param_attrs)]`. Tracking issue: rust-lang#60406 Version: 1.39 (2019-09-26 => beta, 2019-11-07 => stable). ## What is stabilized It is now possible to add outer attributes like `#[cfg(..)]` on formal parameters of functions, closures, and function pointer types. For example: ```rust fn len( #[cfg(windows)] slice: &[u16], #[cfg(not(windows))] slice: &[u8], ) -> usize { slice.len() } ``` ## What isn't stabilized * Documentation comments like `/// Doc` on parameters. * Code expansion of a user-defined `#[proc_macro_attribute]` macro used on parameters. * Built-in attributes other than `cfg`, `cfg_attr`, `allow`, `warn`, `deny`, and `forbid`. Currently, only the lints `unused_variables` and `unused_mut` have effect and may be controlled on parameters. ## Motivation The chief motivations for stabilizing `param_attrs` include: * Finer conditional compilation with `#[cfg(..)]` and linting control of variables. * Richer macro DSLs created by users. * External tools and compiler internals can take advantage of the additional information that the parameters provide. For more examples, see the [RFC][rfc motivation]. ## Reference guide In the grammar of function and function pointer, the grammar of variadic tails (`...`) and parameters are changed respectively from: ```rust FnParam = { pat:Pat ":" }? ty:Type; VaradicTail = "..."; ``` into: ```rust FnParam = OuterAttr* { pat:Pat ":" }? ty:Type; VaradicTail = OuterAttr* "..."; ``` The grammar of a closure parameter is changed from: ```rust ClosureParam = pat:Pat { ":" ty:Type }?; ``` into: ```rust ClosureParam = OuterAttr* pat:Pat { ":" ty:Type }?; ``` More generally, where there's a list of formal (value) parameters separated or terminated by `,` and delimited by `(` and `)`. Each parameter in that list may optionally be prefixed by `OuterAttr+`. Note that in all cases, `OuterAttr*` applies to the whole parameter and not just the pattern. This distinction matters in pretty printing and in turn for macros. ## History * On 2018-10-15, @Robbepop proposes [RFC 2565][rfc], "Attributes in formal function parameter position". * On 2019-04-30, [RFC 2565][rfc] is merged and the tracking issue is made. * On 2019-06-12, a partial implementation was completed. The implementation was done in [rust-lang#60669][60669] by @c410-f3r and the PR was reviewed by @petrochenkov and @Centril. * On 2019-07-29, [rust-lang#61238][61238] was fixed in [rust-lang#61856][61856]. The issue fixed was that lint attributes on function args had no effect. The PR was written by @c410-f3r and reviewed by @matthewjasper, @petrochenkov, and @oli-obk. * On 2019-08-02, a bug [rust-lang#63210][63210] was filed wherein the attributes on formal parameters would not be passed to macros. The issue was about forgetting to call the relevant method in `fn print_arg` in the pretty printer. In [rust-lang#63212][63212], written by @Centril on 2019-08-02 and reviewed by @davidtwco, the issue aforementioned was fixed. * This PR stabilizes `param_attrs`. ## Tests * [On Rust 2018, attributes aren't permitted on function parameters without a pattern in trait definitions.](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2565-param-attrs/param-attrs-2018.rs) * [All attributes that should be allowed. This includes `cfg`, `cfg_attr`, and lints check attributes.](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2565-param-attrs/param-attrs-allowed.rs) * [Built-in attributes, which should be forbidden, e.g., `#[test]`, are.](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2565-param-attrs/param-attrs-builtin-attrs.rs) * [`cfg` and `cfg_attr` are properly evaluated.](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2565-param-attrs/param-attrs-cfg.rs) * [`unused_mut`](https://github.com/rust-lang/rust/blob/46f405ec4d7c6bf16fc2eaafe7541019f1da2996/src/test/ui/rfc-2565-param-attrs/param-attrs-cfg.rs) and [`unused_variables`](https://github.com/rust-lang/rust/blob/master/src/test/ui/lint/lint-unused-variables.rs) are correctly applied to parameter patterns. * [Pretty printing takes formal parameter attributes into account.](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2565-param-attrs/param-attrs-pretty.rs) ## Possible future work * Custom attributes inside function parameters aren't currently supported but it is something being worked on internally. * Since documentation comments are syntactic sugar for `#[doc(...)]`, it is possible to allow literal `/// Foo` comments on function parameters. [rfc motivation]: https://github.com/rust-lang/rfcs/blob/master/text/2565-formal-function-parameter-attributes.md#motivation [rfc]: rust-lang/rfcs#2565 [60669]: rust-lang#60669 [61856]: rust-lang#61856 [63210]: rust-lang#63210 [61238]: rust-lang#61238 [63212]: rust-lang#63212 This report is a collaborative work with @Centril.
Configuration menu - View commit details
-
Copy full SHA for 8646c81 - Browse repository at this point
Copy the full SHA 8646c81View commit details -
Rollup merge of rust-lang#64136 - crgl:doc-from-parser-lhs, r=Centril
Document From trait for LhsExpr in parser Add doc for From trait for converting P<Expr> and Option<ThinVec<Attribute>> to LhsExpr As part of issue rust-lang#51430 (cc @skade). Both of these should just be moving an address and setting a discriminant in an enum. The main thing I'm not sure about is whether it's worth documenting the branch in the From<Option<ThinVec<Attribute>>. As far as I can tell it doesn't seem like it is optimized away (although if the discriminant happened to work out you could just copy the pointer and the discriminant which might be cheaper, but that's not guaranteed). So it seems like if it's being called often, it's doubling the number of possible branch mispredictions on this Option, which could be a significant cost. Let me know if there's anything that needs fixing and I'll get to it as soon as possible!
Configuration menu - View commit details
-
Copy full SHA for d7e511a - Browse repository at this point
Copy the full SHA d7e511aView commit details -
Rollup merge of rust-lang#64342 - glorv:master, r=varkor
factor out pluralisation remains after rust-lang#64280 there are two case that doesn't not match the original macro pattern at [here](https://github.com/rust-lang/rust/blob/master/src/librustc_lint/unused.rs#L146) and [here](https://github.com/rust-lang/rust/blob/master/src/libsyntax/parse/diagnostics.rs#L539) as the provided param is already a bool or the check condition is not `x != 1`, so I change the macro accept a boolean expr instead of number to fit all the cases. @Centril please review Fixes rust-lang#64238.
Configuration menu - View commit details
-
Copy full SHA for d021dba - Browse repository at this point
Copy the full SHA d021dbaView commit details -
Rollup merge of rust-lang#64347 - GuillaumeGomez:E0312, r=oli-obk
Add long error explanation for E0312 Part of rust-lang#61137.
Configuration menu - View commit details
-
Copy full SHA for a93c0da - Browse repository at this point
Copy the full SHA a93c0daView commit details -
Rollup merge of rust-lang#64621 - XAMPPRocky:relnotes, r=Mark-Simulacrum
Add Compatibility Notes to RELEASES.md for 1.38.0 ### [Rendered](https://github.com/XAMPPRocky/rust/blob/relnotes/RELEASES.md) r? @Mark-Simulacrum
Configuration menu - View commit details
-
Copy full SHA for 6da43dd - Browse repository at this point
Copy the full SHA 6da43ddView commit details -
Rollup merge of rust-lang#64632 - guanqun:patch-1, r=jonas-schievink
remove the extra comma after the match arm This would follow the same coding style as all the other match arms in this file.
Configuration menu - View commit details
-
Copy full SHA for 176e216 - Browse repository at this point
Copy the full SHA 176e216View commit details -
Rollup merge of rust-lang#64640 - Wind-River:master, r=alexcrichton
No home directory on vxWorks r? @alexcrichton
Configuration menu - View commit details
-
Copy full SHA for 6254d7a - Browse repository at this point
Copy the full SHA 6254d7aView commit details -
Rollup merge of rust-lang#64641 - cuviper:extern-rust-ctypes, r=estebank
Exempt extern "Rust" from improper_ctypes It should be fine for Rust ABIs to involve any Rust type. Fixes rust-lang#64593.
Configuration menu - View commit details
-
Copy full SHA for 1486b7f - Browse repository at this point
Copy the full SHA 1486b7fView commit details -
Rollup merge of rust-lang#64642 - cuviper:move-for-loop-snippet, r=va…
…rkor Fix the span used to suggest avoiding for-loop moves It was using the snippet from the "use" span, which often renders the same, but with closures that snippet is on the start of the closure where the value is captured. We should be using the snippet from the span where it was moved into the `for` loop, which is `move_span`. Fixes rust-lang#64559.
Configuration menu - View commit details
-
Copy full SHA for 97ca073 - Browse repository at this point
Copy the full SHA 97ca073View commit details