Stabilize param_attrs
in Rust 1.39.0
This commit is contained in:
parent
34e82a7b79
commit
299d696b91
23 changed files with 133 additions and 244 deletions
|
@ -1,27 +0,0 @@
|
||||||
# `param_attrs`
|
|
||||||
|
|
||||||
The tracking issue for this feature is: [#60406]
|
|
||||||
|
|
||||||
[#60406]: https://github.com/rust-lang/rust/issues/60406
|
|
||||||
|
|
||||||
Allow attributes in formal function parameter position so external tools and compiler internals can
|
|
||||||
take advantage of the additional information that the parameters provide.
|
|
||||||
|
|
||||||
Enables finer conditional compilation with `#[cfg(..)]` and linting control of variables. Moreover,
|
|
||||||
opens the path to richer DSLs created by users.
|
|
||||||
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
```rust
|
|
||||||
#![feature(param_attrs)]
|
|
||||||
|
|
||||||
fn len(
|
|
||||||
#[cfg(windows)] slice: &[u16],
|
|
||||||
#[cfg(not(windows))] slice: &[u8],
|
|
||||||
) -> usize
|
|
||||||
{
|
|
||||||
slice.len()
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -243,6 +243,8 @@ declare_features! (
|
||||||
(accepted, async_await, "1.39.0", Some(50547), None),
|
(accepted, async_await, "1.39.0", Some(50547), None),
|
||||||
/// Allows mixing bind-by-move in patterns and references to those identifiers in guards.
|
/// Allows mixing bind-by-move in patterns and references to those identifiers in guards.
|
||||||
(accepted, bind_by_move_pattern_guards, "1.39.0", Some(15287), None),
|
(accepted, bind_by_move_pattern_guards, "1.39.0", Some(15287), None),
|
||||||
|
/// Allows attributes in formal function parameters.
|
||||||
|
(accepted, param_attrs, "1.39.0", Some(60406), None),
|
||||||
|
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
// feature-group-end: accepted features
|
// feature-group-end: accepted features
|
||||||
|
|
|
@ -489,9 +489,6 @@ declare_features! (
|
||||||
/// Allows the user of associated type bounds.
|
/// Allows the user of associated type bounds.
|
||||||
(active, associated_type_bounds, "1.34.0", Some(52662), None),
|
(active, associated_type_bounds, "1.34.0", Some(52662), None),
|
||||||
|
|
||||||
/// Attributes on formal function params.
|
|
||||||
(active, param_attrs, "1.36.0", Some(60406), None),
|
|
||||||
|
|
||||||
/// Allows calling constructor functions in `const fn`.
|
/// Allows calling constructor functions in `const fn`.
|
||||||
(active, const_constructor, "1.37.0", Some(61456), None),
|
(active, const_constructor, "1.37.0", Some(61456), None),
|
||||||
|
|
||||||
|
|
|
@ -892,7 +892,6 @@ pub fn check_crate(krate: &ast::Crate,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gate_all!(param_attrs, "attributes on function parameters are unstable");
|
|
||||||
gate_all!(let_chains, "`let` expressions in this position are experimental");
|
gate_all!(let_chains, "`let` expressions in this position are experimental");
|
||||||
gate_all!(async_closure, "async closures are unstable");
|
gate_all!(async_closure, "async closures are unstable");
|
||||||
gate_all!(yields, generators, "yield syntax is experimental");
|
gate_all!(yields, generators, "yield syntax is experimental");
|
||||||
|
|
|
@ -19,13 +19,6 @@ const DEFAULT_UNEXPECTED_INNER_ATTR_ERR_MSG: &str = "an inner attribute is not \
|
||||||
permitted in this context";
|
permitted in this context";
|
||||||
|
|
||||||
impl<'a> Parser<'a> {
|
impl<'a> Parser<'a> {
|
||||||
crate fn parse_param_attributes(&mut self) -> PResult<'a, Vec<ast::Attribute>> {
|
|
||||||
let attrs = self.parse_outer_attributes()?;
|
|
||||||
self.sess.gated_spans.param_attrs.borrow_mut()
|
|
||||||
.extend(attrs.iter().map(|a| a.span));
|
|
||||||
Ok(attrs)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Parses attributes that appear before an item.
|
/// Parses attributes that appear before an item.
|
||||||
crate fn parse_outer_attributes(&mut self) -> PResult<'a, Vec<ast::Attribute>> {
|
crate fn parse_outer_attributes(&mut self) -> PResult<'a, Vec<ast::Attribute>> {
|
||||||
let mut attrs: Vec<ast::Attribute> = Vec::new();
|
let mut attrs: Vec<ast::Attribute> = Vec::new();
|
||||||
|
|
|
@ -42,8 +42,6 @@ pub type PResult<'a, T> = Result<T, DiagnosticBuilder<'a>>;
|
||||||
/// used and should be feature gated accordingly in `check_crate`.
|
/// used and should be feature gated accordingly in `check_crate`.
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
pub struct GatedSpans {
|
pub struct GatedSpans {
|
||||||
/// Spans collected for gating `param_attrs`, e.g. `fn foo(#[attr] x: u8) {}`.
|
|
||||||
pub param_attrs: Lock<Vec<Span>>,
|
|
||||||
/// Spans collected for gating `let_chains`, e.g. `if a && let b = c {}`.
|
/// Spans collected for gating `let_chains`, e.g. `if a && let b = c {}`.
|
||||||
pub let_chains: Lock<Vec<Span>>,
|
pub let_chains: Lock<Vec<Span>>,
|
||||||
/// Spans collected for gating `async_closure`, e.g. `async || ..`.
|
/// Spans collected for gating `async_closure`, e.g. `async || ..`.
|
||||||
|
|
|
@ -979,7 +979,7 @@ impl<'a> Parser<'a> {
|
||||||
is_name_required: impl Fn(&token::Token) -> bool,
|
is_name_required: impl Fn(&token::Token) -> bool,
|
||||||
) -> PResult<'a, Param> {
|
) -> PResult<'a, Param> {
|
||||||
let lo = self.token.span;
|
let lo = self.token.span;
|
||||||
let attrs = self.parse_param_attributes()?;
|
let attrs = self.parse_outer_attributes()?;
|
||||||
if let Some(mut param) = self.parse_self_param()? {
|
if let Some(mut param) = self.parse_self_param()? {
|
||||||
param.attrs = attrs.into();
|
param.attrs = attrs.into();
|
||||||
return self.recover_bad_self_param(param, is_trait_item);
|
return self.recover_bad_self_param(param, is_trait_item);
|
||||||
|
@ -1362,7 +1362,7 @@ impl<'a> Parser<'a> {
|
||||||
/// Returns the parsed optional self parameter with attributes and whether a self
|
/// Returns the parsed optional self parameter with attributes and whether a self
|
||||||
/// shortcut was used.
|
/// shortcut was used.
|
||||||
fn parse_self_parameter_with_attrs(&mut self) -> PResult<'a, Option<Param>> {
|
fn parse_self_parameter_with_attrs(&mut self) -> PResult<'a, Option<Param>> {
|
||||||
let attrs = self.parse_param_attributes()?;
|
let attrs = self.parse_outer_attributes()?;
|
||||||
let param_opt = self.parse_self_param()?;
|
let param_opt = self.parse_self_param()?;
|
||||||
Ok(param_opt.map(|mut param| {
|
Ok(param_opt.map(|mut param| {
|
||||||
param.attrs = attrs.into();
|
param.attrs = attrs.into();
|
||||||
|
|
|
@ -1176,7 +1176,7 @@ impl<'a> Parser<'a> {
|
||||||
/// Parses a parameter in a closure header (e.g., `|arg, arg|`).
|
/// Parses a parameter in a closure header (e.g., `|arg, arg|`).
|
||||||
fn parse_fn_block_param(&mut self) -> PResult<'a, Param> {
|
fn parse_fn_block_param(&mut self) -> PResult<'a, Param> {
|
||||||
let lo = self.token.span;
|
let lo = self.token.span;
|
||||||
let attrs = self.parse_param_attributes()?;
|
let attrs = self.parse_outer_attributes()?;
|
||||||
let pat = self.parse_pat(PARAM_EXPECTED)?;
|
let pat = self.parse_pat(PARAM_EXPECTED)?;
|
||||||
let t = if self.eat(&token::Colon) {
|
let t = if self.eat(&token::Colon) {
|
||||||
self.parse_ty()?
|
self.parse_ty()?
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
// Exercise the unused_mut attribute in some positive and negative cases
|
// Exercise the unused_mut attribute in some positive and negative cases
|
||||||
|
|
||||||
#![deny(unused_mut)]
|
#![deny(unused_mut)]
|
||||||
#![feature(async_closure, param_attrs)]
|
#![feature(async_closure)]
|
||||||
|
|
||||||
async fn baz_async(
|
async fn baz_async(
|
||||||
mut a: i32,
|
mut a: i32,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// compile-flags: --cfg something
|
// compile-flags: --cfg something
|
||||||
// edition:2018
|
// edition:2018
|
||||||
|
|
||||||
#![feature(async_closure, param_attrs)]
|
#![feature(async_closure)]
|
||||||
#![deny(unused_variables)]
|
#![deny(unused_variables)]
|
||||||
|
|
||||||
async fn foo_async(
|
async fn foo_async(
|
||||||
|
|
|
@ -2,14 +2,10 @@ pub fn f(
|
||||||
/// Comment
|
/// Comment
|
||||||
//~^ ERROR documentation comments cannot be applied to function parameters
|
//~^ ERROR documentation comments cannot be applied to function parameters
|
||||||
//~| NOTE doc comments are not allowed here
|
//~| NOTE doc comments are not allowed here
|
||||||
//~| ERROR attributes on function parameters are unstable
|
|
||||||
//~| NOTE https://github.com/rust-lang/rust/issues/60406
|
|
||||||
id: u8,
|
id: u8,
|
||||||
/// Other
|
/// Other
|
||||||
//~^ ERROR documentation comments cannot be applied to function parameters
|
//~^ ERROR documentation comments cannot be applied to function parameters
|
||||||
//~| NOTE doc comments are not allowed here
|
//~| NOTE doc comments are not allowed here
|
||||||
//~| ERROR attributes on function parameters are unstable
|
|
||||||
//~| NOTE https://github.com/rust-lang/rust/issues/60406
|
|
||||||
a: u8,
|
a: u8,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
error: attributes cannot be applied to a function parameter's type
|
error: attributes cannot be applied to a function parameter's type
|
||||||
--> $DIR/fn-arg-doc-comment.rs:16:12
|
--> $DIR/fn-arg-doc-comment.rs:12:12
|
||||||
|
|
|
|
||||||
LL | fn bar(id: #[allow(dead_code)] i32) {}
|
LL | fn bar(id: #[allow(dead_code)] i32) {}
|
||||||
| ^^^^^^^^^^^^^^^^^^^ attributes are not allowed here
|
| ^^^^^^^^^^^^^^^^^^^ attributes are not allowed here
|
||||||
|
@ -11,31 +11,13 @@ LL | /// Comment
|
||||||
| ^^^^^^^^^^^ doc comments are not allowed here
|
| ^^^^^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
error: documentation comments cannot be applied to function parameters
|
||||||
--> $DIR/fn-arg-doc-comment.rs:8:5
|
--> $DIR/fn-arg-doc-comment.rs:6:5
|
||||||
|
|
|
|
||||||
LL | /// Other
|
LL | /// Other
|
||||||
| ^^^^^^^^^ doc comments are not allowed here
|
| ^^^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
error[E0658]: attributes on function parameters are unstable
|
|
||||||
--> $DIR/fn-arg-doc-comment.rs:2:5
|
|
||||||
|
|
|
||||||
LL | /// Comment
|
|
||||||
| ^^^^^^^^^^^
|
|
||||||
|
|
|
||||||
= note: for more information, see https://github.com/rust-lang/rust/issues/60406
|
|
||||||
= help: add `#![feature(param_attrs)]` to the crate attributes to enable
|
|
||||||
|
|
||||||
error[E0658]: attributes on function parameters are unstable
|
|
||||||
--> $DIR/fn-arg-doc-comment.rs:8:5
|
|
||||||
|
|
|
||||||
LL | /// Other
|
|
||||||
| ^^^^^^^^^
|
|
||||||
|
|
|
||||||
= note: for more information, see https://github.com/rust-lang/rust/issues/60406
|
|
||||||
= help: add `#![feature(param_attrs)]` to the crate attributes to enable
|
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/fn-arg-doc-comment.rs:22:7
|
--> $DIR/fn-arg-doc-comment.rs:18:7
|
||||||
|
|
|
|
||||||
LL | f("", "");
|
LL | f("", "");
|
||||||
| ^^ expected u8, found reference
|
| ^^ expected u8, found reference
|
||||||
|
@ -44,7 +26,7 @@ LL | f("", "");
|
||||||
found type `&'static str`
|
found type `&'static str`
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/fn-arg-doc-comment.rs:22:11
|
--> $DIR/fn-arg-doc-comment.rs:18:11
|
||||||
|
|
|
|
||||||
LL | f("", "");
|
LL | f("", "");
|
||||||
| ^^ expected u8, found reference
|
| ^^ expected u8, found reference
|
||||||
|
@ -53,7 +35,7 @@ LL | f("", "");
|
||||||
found type `&'static str`
|
found type `&'static str`
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/fn-arg-doc-comment.rs:29:9
|
--> $DIR/fn-arg-doc-comment.rs:25:9
|
||||||
|
|
|
|
||||||
LL | bar("");
|
LL | bar("");
|
||||||
| ^^ expected i32, found reference
|
| ^^ expected i32, found reference
|
||||||
|
@ -61,7 +43,6 @@ LL | bar("");
|
||||||
= note: expected type `i32`
|
= note: expected type `i32`
|
||||||
found type `&'static str`
|
found type `&'static str`
|
||||||
|
|
||||||
error: aborting due to 8 previous errors
|
error: aborting due to 6 previous errors
|
||||||
|
|
||||||
Some errors have detailed explanations: E0308, E0658.
|
For more information about this error, try `rustc --explain E0308`.
|
||||||
For more information about an error, try `rustc --explain E0308`.
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
// edition:2018
|
// edition:2018
|
||||||
|
|
||||||
#![feature(param_attrs)]
|
|
||||||
|
|
||||||
trait Trait2015 { fn foo(#[allow(C)] i32); }
|
trait Trait2015 { fn foo(#[allow(C)] i32); }
|
||||||
//~^ ERROR expected one of `:`, `@`, or `|`, found `)`
|
//~^ ERROR expected one of `:`, `@`, or `|`, found `)`
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
error: expected one of `:`, `@`, or `|`, found `)`
|
error: expected one of `:`, `@`, or `|`, found `)`
|
||||||
--> $DIR/param-attrs-2018.rs:5:41
|
--> $DIR/param-attrs-2018.rs:3:41
|
||||||
|
|
|
|
||||||
LL | trait Trait2015 { fn foo(#[allow(C)] i32); }
|
LL | trait Trait2015 { fn foo(#[allow(C)] i32); }
|
||||||
| ^ expected one of `:`, `@`, or `|` here
|
| ^ expected one of `:`, `@`, or `|` here
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
// compile-flags: --cfg something
|
// compile-flags: --cfg something
|
||||||
|
|
||||||
#![deny(unused_mut)]
|
#![deny(unused_mut)]
|
||||||
#![feature(param_attrs)]
|
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
fn ffi(
|
fn ffi(
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
#![feature(param_attrs)]
|
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
fn ffi(
|
fn ffi(
|
||||||
/// Foo
|
/// Foo
|
||||||
|
|
|
@ -1,311 +1,311 @@
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:7:9
|
|
||||||
|
|
|
||||||
LL | #[test] a: i32,
|
|
||||||
| ^^^^^^^
|
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:23:5
|
|
||||||
|
|
|
||||||
LL | #[test] a: u32,
|
|
||||||
| ^^^^^^^
|
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:38:5
|
|
||||||
|
|
|
||||||
LL | #[test] a: u32,
|
|
||||||
| ^^^^^^^
|
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:58:9
|
|
||||||
|
|
|
||||||
LL | #[test] a: i32,
|
|
||||||
| ^^^^^^^
|
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:79:9
|
|
||||||
|
|
|
||||||
LL | #[test] a: i32,
|
|
||||||
| ^^^^^^^
|
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:98:9
|
|
||||||
|
|
|
||||||
LL | #[test] a: i32,
|
|
||||||
| ^^^^^^^
|
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:117:9
|
|
||||||
|
|
|
||||||
LL | #[test] a: i32,
|
|
||||||
| ^^^^^^^
|
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:134:9
|
|
||||||
|
|
|
||||||
LL | #[test] a: u32,
|
|
||||||
| ^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:5:9
|
--> $DIR/param-attrs-builtin-attrs.rs:5:9
|
||||||
|
|
|
|
||||||
LL | /// Foo
|
LL | #[test] a: i32,
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
| ^^^^^^^
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:9:9
|
|
||||||
|
|
|
||||||
LL | /// Bar
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:11:9
|
|
||||||
|
|
|
||||||
LL | #[must_use]
|
|
||||||
| ^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:13:9
|
|
||||||
|
|
|
||||||
LL | /// Baz
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:15:9
|
|
||||||
|
|
|
||||||
LL | #[no_mangle] b: i32,
|
|
||||||
| ^^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:21:5
|
--> $DIR/param-attrs-builtin-attrs.rs:21:5
|
||||||
|
|
|
|
||||||
LL | /// Foo
|
LL | #[test] a: u32,
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
| ^^^^^^^
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:25:5
|
|
||||||
|
|
|
||||||
LL | /// Bar
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:27:5
|
|
||||||
|
|
|
||||||
LL | #[must_use]
|
|
||||||
| ^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:29:5
|
|
||||||
|
|
|
||||||
LL | /// Baz
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:31:5
|
|
||||||
|
|
|
||||||
LL | #[no_mangle] b: i32,
|
|
||||||
| ^^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:36:5
|
--> $DIR/param-attrs-builtin-attrs.rs:36:5
|
||||||
|
|
|
|
||||||
LL | /// Foo
|
LL | #[test] a: u32,
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
| ^^^^^^^
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:40:5
|
|
||||||
|
|
|
||||||
LL | /// Bar
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:42:5
|
|
||||||
|
|
|
||||||
LL | #[must_use]
|
|
||||||
| ^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:44:5
|
|
||||||
|
|
|
||||||
LL | /// Baz
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:46:5
|
|
||||||
|
|
|
||||||
LL | #[no_mangle] b: i32,
|
|
||||||
| ^^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:53:9
|
|
||||||
|
|
|
||||||
LL | /// Foo
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:56:9
|
--> $DIR/param-attrs-builtin-attrs.rs:56:9
|
||||||
|
|
|
|
||||||
LL | /// Bar
|
LL | #[test] a: i32,
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
| ^^^^^^^
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:60:9
|
|
||||||
|
|
|
||||||
LL | /// Baz
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:62:9
|
|
||||||
|
|
|
||||||
LL | #[must_use]
|
|
||||||
| ^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:64:9
|
|
||||||
|
|
|
||||||
LL | /// Qux
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:66:9
|
|
||||||
|
|
|
||||||
LL | #[no_mangle] b: i32,
|
|
||||||
| ^^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:74:9
|
|
||||||
|
|
|
||||||
LL | /// Foo
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:77:9
|
--> $DIR/param-attrs-builtin-attrs.rs:77:9
|
||||||
|
|
|
|
||||||
LL | /// Bar
|
LL | #[test] a: i32,
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
| ^^^^^^^
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:81:9
|
|
||||||
|
|
|
||||||
LL | /// Baz
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:83:9
|
|
||||||
|
|
|
||||||
LL | #[must_use]
|
|
||||||
| ^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:85:9
|
|
||||||
|
|
|
||||||
LL | /// Qux
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:87:9
|
|
||||||
|
|
|
||||||
LL | #[no_mangle] b: i32,
|
|
||||||
| ^^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:93:9
|
|
||||||
|
|
|
||||||
LL | /// Foo
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:96:9
|
--> $DIR/param-attrs-builtin-attrs.rs:96:9
|
||||||
|
|
|
|
||||||
LL | /// Bar
|
LL | #[test] a: i32,
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
| ^^^^^^^
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:100:9
|
|
||||||
|
|
|
||||||
LL | /// Baz
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:102:9
|
|
||||||
|
|
|
||||||
LL | #[must_use]
|
|
||||||
| ^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:104:9
|
|
||||||
|
|
|
||||||
LL | /// Qux
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:106:9
|
|
||||||
|
|
|
||||||
LL | #[no_mangle] b: i32,
|
|
||||||
| ^^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:112:9
|
|
||||||
|
|
|
||||||
LL | /// Foo
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:115:9
|
--> $DIR/param-attrs-builtin-attrs.rs:115:9
|
||||||
|
|
|
|
||||||
LL | /// Bar
|
LL | #[test] a: i32,
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
| ^^^^^^^
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:119:9
|
|
||||||
|
|
|
||||||
LL | /// Baz
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:121:9
|
|
||||||
|
|
|
||||||
LL | #[must_use]
|
|
||||||
| ^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:123:9
|
|
||||||
|
|
|
||||||
LL | /// Qux
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:125:9
|
|
||||||
|
|
|
||||||
LL | #[no_mangle] b: i32,
|
|
||||||
| ^^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:132:9
|
--> $DIR/param-attrs-builtin-attrs.rs:132:9
|
||||||
|
|
|
|
||||||
|
LL | #[test] a: u32,
|
||||||
|
| ^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:3:9
|
||||||
|
|
|
||||||
LL | /// Foo
|
LL | /// Foo
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
error: documentation comments cannot be applied to function parameters
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:136:9
|
--> $DIR/param-attrs-builtin-attrs.rs:7:9
|
||||||
|
|
|
|
||||||
LL | /// Bar
|
LL | /// Bar
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:138:9
|
--> $DIR/param-attrs-builtin-attrs.rs:9:9
|
||||||
|
|
|
|
||||||
LL | #[must_use]
|
LL | #[must_use]
|
||||||
| ^^^^^^^^^^^
|
| ^^^^^^^^^^^
|
||||||
|
|
||||||
error: documentation comments cannot be applied to function parameters
|
error: documentation comments cannot be applied to function parameters
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:140:9
|
--> $DIR/param-attrs-builtin-attrs.rs:11:9
|
||||||
|
|
|
|
||||||
LL | /// Baz
|
LL | /// Baz
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
--> $DIR/param-attrs-builtin-attrs.rs:142:9
|
--> $DIR/param-attrs-builtin-attrs.rs:13:9
|
||||||
|
|
|
||||||
|
LL | #[no_mangle] b: i32,
|
||||||
|
| ^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:19:5
|
||||||
|
|
|
||||||
|
LL | /// Foo
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:23:5
|
||||||
|
|
|
||||||
|
LL | /// Bar
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:25:5
|
||||||
|
|
|
||||||
|
LL | #[must_use]
|
||||||
|
| ^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:27:5
|
||||||
|
|
|
||||||
|
LL | /// Baz
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:29:5
|
||||||
|
|
|
||||||
|
LL | #[no_mangle] b: i32,
|
||||||
|
| ^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:34:5
|
||||||
|
|
|
||||||
|
LL | /// Foo
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:38:5
|
||||||
|
|
|
||||||
|
LL | /// Bar
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:40:5
|
||||||
|
|
|
||||||
|
LL | #[must_use]
|
||||||
|
| ^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:42:5
|
||||||
|
|
|
||||||
|
LL | /// Baz
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:44:5
|
||||||
|
|
|
||||||
|
LL | #[no_mangle] b: i32,
|
||||||
|
| ^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:51:9
|
||||||
|
|
|
||||||
|
LL | /// Foo
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:54:9
|
||||||
|
|
|
||||||
|
LL | /// Bar
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:58:9
|
||||||
|
|
|
||||||
|
LL | /// Baz
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:60:9
|
||||||
|
|
|
||||||
|
LL | #[must_use]
|
||||||
|
| ^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:62:9
|
||||||
|
|
|
||||||
|
LL | /// Qux
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:64:9
|
||||||
|
|
|
||||||
|
LL | #[no_mangle] b: i32,
|
||||||
|
| ^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:72:9
|
||||||
|
|
|
||||||
|
LL | /// Foo
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:75:9
|
||||||
|
|
|
||||||
|
LL | /// Bar
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:79:9
|
||||||
|
|
|
||||||
|
LL | /// Baz
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:81:9
|
||||||
|
|
|
||||||
|
LL | #[must_use]
|
||||||
|
| ^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:83:9
|
||||||
|
|
|
||||||
|
LL | /// Qux
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:85:9
|
||||||
|
|
|
||||||
|
LL | #[no_mangle] b: i32,
|
||||||
|
| ^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:91:9
|
||||||
|
|
|
||||||
|
LL | /// Foo
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:94:9
|
||||||
|
|
|
||||||
|
LL | /// Bar
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:98:9
|
||||||
|
|
|
||||||
|
LL | /// Baz
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:100:9
|
||||||
|
|
|
||||||
|
LL | #[must_use]
|
||||||
|
| ^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:102:9
|
||||||
|
|
|
||||||
|
LL | /// Qux
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:104:9
|
||||||
|
|
|
||||||
|
LL | #[no_mangle] b: i32,
|
||||||
|
| ^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:110:9
|
||||||
|
|
|
||||||
|
LL | /// Foo
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:113:9
|
||||||
|
|
|
||||||
|
LL | /// Bar
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:117:9
|
||||||
|
|
|
||||||
|
LL | /// Baz
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:119:9
|
||||||
|
|
|
||||||
|
LL | #[must_use]
|
||||||
|
| ^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:121:9
|
||||||
|
|
|
||||||
|
LL | /// Qux
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:123:9
|
||||||
|
|
|
||||||
|
LL | #[no_mangle] b: i32,
|
||||||
|
| ^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:130:9
|
||||||
|
|
|
||||||
|
LL | /// Foo
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:134:9
|
||||||
|
|
|
||||||
|
LL | /// Bar
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:136:9
|
||||||
|
|
|
||||||
|
LL | #[must_use]
|
||||||
|
| ^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: documentation comments cannot be applied to function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:138:9
|
||||||
|
|
|
||||||
|
LL | /// Baz
|
||||||
|
| ^^^^^^^ doc comments are not allowed here
|
||||||
|
|
||||||
|
error: allow, cfg, cfg_attr, deny, forbid, and warn are the only allowed built-in attributes in function parameters
|
||||||
|
--> $DIR/param-attrs-builtin-attrs.rs:140:9
|
||||||
|
|
|
|
||||||
LL | #[no_mangle] b: i32
|
LL | #[no_mangle] b: i32
|
||||||
| ^^^^^^^^^^^^
|
| ^^^^^^^^^^^^
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// compile-flags: --cfg something
|
// compile-flags: --cfg something
|
||||||
// edition:2018
|
// edition:2018
|
||||||
|
|
||||||
#![feature(async_closure, param_attrs)]
|
#![feature(async_closure)]
|
||||||
#![deny(unused_variables)]
|
#![deny(unused_variables)]
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
// gate-test-param_attrs
|
|
||||||
|
|
||||||
#![deny(unused_variables)]
|
|
||||||
|
|
||||||
fn foo(
|
|
||||||
/// Foo
|
|
||||||
//~^ ERROR documentation comments cannot be applied to function parameters
|
|
||||||
//~| NOTE doc comments are not allowed here
|
|
||||||
//~| ERROR attributes on function parameters are unstable
|
|
||||||
//~| NOTE https://github.com/rust-lang/rust/issues/60406
|
|
||||||
#[allow(unused_variables)] a: u8
|
|
||||||
//~^ ERROR attributes on function parameters are unstable
|
|
||||||
//~| NOTE https://github.com/rust-lang/rust/issues/60406
|
|
||||||
) {}
|
|
||||||
|
|
||||||
fn main() {}
|
|
|
@ -1,27 +0,0 @@
|
||||||
error: documentation comments cannot be applied to function parameters
|
|
||||||
--> $DIR/param-attrs-feature-gate.rs:6:5
|
|
||||||
|
|
|
||||||
LL | /// Foo
|
|
||||||
| ^^^^^^^ doc comments are not allowed here
|
|
||||||
|
|
||||||
error[E0658]: attributes on function parameters are unstable
|
|
||||||
--> $DIR/param-attrs-feature-gate.rs:6:5
|
|
||||||
|
|
|
||||||
LL | /// Foo
|
|
||||||
| ^^^^^^^
|
|
||||||
|
|
|
||||||
= note: for more information, see https://github.com/rust-lang/rust/issues/60406
|
|
||||||
= help: add `#![feature(param_attrs)]` to the crate attributes to enable
|
|
||||||
|
|
||||||
error[E0658]: attributes on function parameters are unstable
|
|
||||||
--> $DIR/param-attrs-feature-gate.rs:11:5
|
|
||||||
|
|
|
||||||
LL | #[allow(unused_variables)] a: u8
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
|
||||||
= note: for more information, see https://github.com/rust-lang/rust/issues/60406
|
|
||||||
= help: add `#![feature(param_attrs)]` to the crate attributes to enable
|
|
||||||
|
|
||||||
error: aborting due to 3 previous errors
|
|
||||||
|
|
||||||
For more information about this error, try `rustc --explain E0658`.
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
// check-pass
|
// check-pass
|
||||||
|
|
||||||
#![feature(param_attrs)]
|
|
||||||
#![feature(c_variadic)]
|
#![feature(c_variadic)]
|
||||||
|
|
||||||
extern crate param_attrs;
|
extern crate param_attrs;
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
// aux-build:ident-mac.rs
|
// aux-build:ident-mac.rs
|
||||||
|
|
||||||
#![feature(param_attrs)]
|
|
||||||
#![feature(c_variadic)]
|
#![feature(c_variadic)]
|
||||||
|
|
||||||
extern crate ident_mac;
|
extern crate ident_mac;
|
||||||
|
|
|
@ -1,149 +1,149 @@
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:11:21
|
--> $DIR/proc-macro-cannot-be-used.rs:10:21
|
||||||
|
|
|
|
||||||
LL | extern "C" { fn ffi(#[id] arg1: i32, #[id] ...); }
|
LL | extern "C" { fn ffi(#[id] arg1: i32, #[id] ...); }
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:11:38
|
--> $DIR/proc-macro-cannot-be-used.rs:10:38
|
||||||
|
|
|
|
||||||
LL | extern "C" { fn ffi(#[id] arg1: i32, #[id] ...); }
|
LL | extern "C" { fn ffi(#[id] arg1: i32, #[id] ...); }
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:15:38
|
--> $DIR/proc-macro-cannot-be-used.rs:14:38
|
||||||
|
|
|
|
||||||
LL | unsafe extern "C" fn cvar(arg1: i32, #[id] mut args: ...) {}
|
LL | unsafe extern "C" fn cvar(arg1: i32, #[id] mut args: ...) {}
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:18:28
|
--> $DIR/proc-macro-cannot-be-used.rs:17:28
|
||||||
|
|
|
|
||||||
LL | type Alias = extern "C" fn(#[id] u8, #[id] ...);
|
LL | type Alias = extern "C" fn(#[id] u8, #[id] ...);
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:18:38
|
--> $DIR/proc-macro-cannot-be-used.rs:17:38
|
||||||
|
|
|
|
||||||
LL | type Alias = extern "C" fn(#[id] u8, #[id] ...);
|
LL | type Alias = extern "C" fn(#[id] u8, #[id] ...);
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:22:9
|
--> $DIR/proc-macro-cannot-be-used.rs:21:9
|
||||||
|
|
|
|
||||||
LL | fn free(#[id] arg1: u8) {
|
LL | fn free(#[id] arg1: u8) {
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:24:16
|
--> $DIR/proc-macro-cannot-be-used.rs:23:16
|
||||||
|
|
|
|
||||||
LL | let lam = |#[id] W(x), #[id] y| ();
|
LL | let lam = |#[id] W(x), #[id] y| ();
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:24:28
|
--> $DIR/proc-macro-cannot-be-used.rs:23:28
|
||||||
|
|
|
|
||||||
LL | let lam = |#[id] W(x), #[id] y| ();
|
LL | let lam = |#[id] W(x), #[id] y| ();
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:30:18
|
--> $DIR/proc-macro-cannot-be-used.rs:29:18
|
||||||
|
|
|
|
||||||
LL | fn inherent1(#[id] self, #[id] arg1: u8) {}
|
LL | fn inherent1(#[id] self, #[id] arg1: u8) {}
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:30:30
|
--> $DIR/proc-macro-cannot-be-used.rs:29:30
|
||||||
|
|
|
|
||||||
LL | fn inherent1(#[id] self, #[id] arg1: u8) {}
|
LL | fn inherent1(#[id] self, #[id] arg1: u8) {}
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:33:18
|
--> $DIR/proc-macro-cannot-be-used.rs:32:18
|
||||||
|
|
|
|
||||||
LL | fn inherent2(#[id] &self, #[id] arg1: u8) {}
|
LL | fn inherent2(#[id] &self, #[id] arg1: u8) {}
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:33:31
|
--> $DIR/proc-macro-cannot-be-used.rs:32:31
|
||||||
|
|
|
|
||||||
LL | fn inherent2(#[id] &self, #[id] arg1: u8) {}
|
LL | fn inherent2(#[id] &self, #[id] arg1: u8) {}
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:36:22
|
--> $DIR/proc-macro-cannot-be-used.rs:35:22
|
||||||
|
|
|
|
||||||
LL | fn inherent3<'a>(#[id] &'a mut self, #[id] arg1: u8) {}
|
LL | fn inherent3<'a>(#[id] &'a mut self, #[id] arg1: u8) {}
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:36:42
|
--> $DIR/proc-macro-cannot-be-used.rs:35:42
|
||||||
|
|
|
|
||||||
LL | fn inherent3<'a>(#[id] &'a mut self, #[id] arg1: u8) {}
|
LL | fn inherent3<'a>(#[id] &'a mut self, #[id] arg1: u8) {}
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:39:22
|
--> $DIR/proc-macro-cannot-be-used.rs:38:22
|
||||||
|
|
|
|
||||||
LL | fn inherent4<'a>(#[id] self: Box<Self>, #[id] arg1: u8) {}
|
LL | fn inherent4<'a>(#[id] self: Box<Self>, #[id] arg1: u8) {}
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:39:45
|
--> $DIR/proc-macro-cannot-be-used.rs:38:45
|
||||||
|
|
|
|
||||||
LL | fn inherent4<'a>(#[id] self: Box<Self>, #[id] arg1: u8) {}
|
LL | fn inherent4<'a>(#[id] self: Box<Self>, #[id] arg1: u8) {}
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:45:15
|
--> $DIR/proc-macro-cannot-be-used.rs:44:15
|
||||||
|
|
|
|
||||||
LL | fn trait1(#[id] self, #[id] arg1: u8);
|
LL | fn trait1(#[id] self, #[id] arg1: u8);
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:45:27
|
--> $DIR/proc-macro-cannot-be-used.rs:44:27
|
||||||
|
|
|
|
||||||
LL | fn trait1(#[id] self, #[id] arg1: u8);
|
LL | fn trait1(#[id] self, #[id] arg1: u8);
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:48:15
|
--> $DIR/proc-macro-cannot-be-used.rs:47:15
|
||||||
|
|
|
|
||||||
LL | fn trait2(#[id] &self, #[id] arg1: u8);
|
LL | fn trait2(#[id] &self, #[id] arg1: u8);
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:48:28
|
--> $DIR/proc-macro-cannot-be-used.rs:47:28
|
||||||
|
|
|
|
||||||
LL | fn trait2(#[id] &self, #[id] arg1: u8);
|
LL | fn trait2(#[id] &self, #[id] arg1: u8);
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:51:19
|
--> $DIR/proc-macro-cannot-be-used.rs:50:19
|
||||||
|
|
|
|
||||||
LL | fn trait3<'a>(#[id] &'a mut self, #[id] arg1: u8);
|
LL | fn trait3<'a>(#[id] &'a mut self, #[id] arg1: u8);
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:51:39
|
--> $DIR/proc-macro-cannot-be-used.rs:50:39
|
||||||
|
|
|
|
||||||
LL | fn trait3<'a>(#[id] &'a mut self, #[id] arg1: u8);
|
LL | fn trait3<'a>(#[id] &'a mut self, #[id] arg1: u8);
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:54:19
|
--> $DIR/proc-macro-cannot-be-used.rs:53:19
|
||||||
|
|
|
|
||||||
LL | fn trait4<'a>(#[id] self: Box<Self>, #[id] arg1: u8, #[id] Vec<u8>);
|
LL | fn trait4<'a>(#[id] self: Box<Self>, #[id] arg1: u8, #[id] Vec<u8>);
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:54:42
|
--> $DIR/proc-macro-cannot-be-used.rs:53:42
|
||||||
|
|
|
|
||||||
LL | fn trait4<'a>(#[id] self: Box<Self>, #[id] arg1: u8, #[id] Vec<u8>);
|
LL | fn trait4<'a>(#[id] self: Box<Self>, #[id] arg1: u8, #[id] Vec<u8>);
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected an inert attribute, found an attribute macro
|
error: expected an inert attribute, found an attribute macro
|
||||||
--> $DIR/proc-macro-cannot-be-used.rs:54:58
|
--> $DIR/proc-macro-cannot-be-used.rs:53:58
|
||||||
|
|
|
|
||||||
LL | fn trait4<'a>(#[id] self: Box<Self>, #[id] arg1: u8, #[id] Vec<u8>);
|
LL | fn trait4<'a>(#[id] self: Box<Self>, #[id] arg1: u8, #[id] Vec<u8>);
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue