diff options
| author | bors <bors@rust-lang.org> | 2016-07-11 22:09:44 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-07-11 22:09:44 -0700 |
| commit | 2539c15b49530e882a3e8803b3f53a7914d367be (patch) | |
| tree | d41d07cdbf6b0bb0fb045d831170ee202a5f6d1e /src/libsyntax | |
| parent | 3265bd54b5b3f32d038273afec7554f007a5ce1d (diff) | |
| parent | b777f145e6f71b3d4b9a7140bb8e039e1dd64a9a (diff) | |
| download | rust-2539c15b49530e882a3e8803b3f53a7914d367be.tar.gz rust-2539c15b49530e882a3e8803b3f53a7914d367be.zip | |
Auto merge of #34637 - GuillaumeGomez:syntax_codes, r=jonathandturner
Syntax codes r? @jonathandturner cc @steveklabnik This is a first big shot. I'll do the second one later in the week once this one is merged.
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/attr.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/diagnostic_list.rs | 149 |
2 files changed, 143 insertions, 10 deletions
diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs index e01bd2a93aa..67f73d4dd4f 100644 --- a/src/libsyntax/attr.rs +++ b/src/libsyntax/attr.rs @@ -324,7 +324,7 @@ pub fn find_export_name_attr(diag: &Handler, attrs: &[Attribute]) -> Option<Inte if let s@Some(_) = attr.value_str() { s } else { - struct_span_err!(diag, attr.span, E0533, + struct_span_err!(diag, attr.span, E0558, "export_name attribute has invalid format") .help("use #[export_name=\"*\"]") .emit(); @@ -373,7 +373,7 @@ pub fn find_inline_attr(diagnostic: Option<&Handler>, attrs: &[Attribute]) -> In InlineAttr::None } } - _ => ia + _ => ia, } }) } diff --git a/src/libsyntax/diagnostic_list.rs b/src/libsyntax/diagnostic_list.rs index eb30657bd56..010b1d638e6 100644 --- a/src/libsyntax/diagnostic_list.rs +++ b/src/libsyntax/diagnostic_list.rs @@ -1,4 +1,4 @@ -// Copyright 2014 The Rust Project Developers. See the COPYRIGHT +// Copyright 2016 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // @@ -15,9 +15,146 @@ // In vim you can `:set tw=80` and use `gq` to wrap paragraphs. Use `:set tw=0` to disable. register_long_diagnostics! { -E0533: r##" -```compile_fail,E0533 -#[export_name] +E0534: r##" +The `inline` attribute was malformed. + +Erroneous code example: + +```compile_fail,E0534 +#[inline()] // error: expected one argument +pub fn something() {} + +fn main() {} +``` + +The parenthesized `inline` attribute requires the parameter to be specified: + +```ignore +#[inline(always)] +fn something() {} + +// or: + +#[inline(never)] +fn something() {} +``` + +Alternatively, a paren-less version of the attribute may be used to hint the +compiler about inlining opportunity: + +``` +#[inline] +fn something() {} +``` + +For more information about the inline attribute, read: +https://doc.rust-lang.org/reference.html#inline-attributes +"##, + +E0535: r##" +An unknown argument was given to the `inline` attribute. + +Erroneous code example: + +```compile_fail,E0535 +#[inline(unknown)] // error: invalid argument +pub fn something() {} + +fn main() {} +``` + +The `inline` attribute only supports two arguments: + + * always + * never + +All other arguments given to the `inline` attribute will return this error. +Example: + +``` +#[inline(never)] // ok! +pub fn something() {} + +fn main() {} +``` + +For more information about the inline attribute, https: +read://doc.rust-lang.org/reference.html#inline-attributes +"##, + +E0536: r##" +The `not` cfg-predicate was malformed. + +Erroneous code example: + +```compile_fail,E0536 +#[cfg(not())] // error: expected 1 cfg-pattern +pub fn something() {} + +pub fn main() {} +``` + +The `not` predicate expects one cfg-pattern. Example: + +``` +#[cfg(not(target_os = "linux"))] // ok! +pub fn something() {} + +pub fn main() {} +``` + +For more information about the cfg attribute, read: +https://doc.rust-lang.org/reference.html#conditional-compilation +"##, + +E0537: r##" +An unknown predicate was used inside the `cfg` attribute. + +Erroneous code example: + +```compile_fail,E0537 +#[cfg(unknown())] // error: invalid predicate `unknown` +pub fn something() {} + +pub fn main() {} +``` + +The `cfg` attribute supports only three kinds of predicates: + + * any + * all + * not + +Example: + +``` +#[cfg(not(target_os = "linux"))] // ok! +pub fn something() {} + +pub fn main() {} +``` + +For more information about the cfg attribute, read: +https://doc.rust-lang.org/reference.html#conditional-compilation +"##, + +E0558: r##" +The `export_name` attribute was malformed. + +Erroneous code example: + +```compile_fail,E0558 +#[export_name] // error: export_name attribute has invalid format +pub fn something() {} + +fn main() {} +``` + +The `export_name` attribute expects a string in order to determine the name of +the exported symbol. Example: + +``` +#[export_name = "some_function"] // ok! pub fn something() {} fn main() {} @@ -27,10 +164,6 @@ fn main() {} } register_diagnostics! { - E0534, // expected one argument - E0535, // invalid argument - E0536, // expected 1 cfg-pattern - E0537, // invalid predicate E0538, // multiple [same] items E0539, // incorrect meta item E0540, // multiple rustc_deprecated attributes |
