From 0b7908c550a2db5358a6d82a5bbc93a5fff4cec5 Mon Sep 17 00:00:00 2001 From: A C Date: Mon, 16 Sep 2019 21:45:13 +0100 Subject: [PATCH] Add a UI test for correct parsing --- .../ui/parser/stmt_expr_attrs_placement.rs | 22 +++++++++++++++++++ .../parser/stmt_expr_attrs_placement.stderr | 10 +++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/test/ui/parser/stmt_expr_attrs_placement.rs create mode 100644 src/test/ui/parser/stmt_expr_attrs_placement.stderr diff --git a/src/test/ui/parser/stmt_expr_attrs_placement.rs b/src/test/ui/parser/stmt_expr_attrs_placement.rs new file mode 100644 index 00000000000..b8a794f4b92 --- /dev/null +++ b/src/test/ui/parser/stmt_expr_attrs_placement.rs @@ -0,0 +1,22 @@ +#![feature(stmt_expr_attributes)] + +// Test that various placements of the inner attribute are parsed correctly, +// or not. + +fn main() { + let a = #![allow(warnings)] (1, 2); + //~^ ERROR an inner attribute is not permitted in this context + + let b = (#![allow(warnings)] 1, 2); + + let c = { + #![allow(warnings)] + (#![allow(warnings)] 1, 2) + }; + + let d = { + #![allow(warnings)] + let e = (#![allow(warnings)] 1, 2); + e + }; +} diff --git a/src/test/ui/parser/stmt_expr_attrs_placement.stderr b/src/test/ui/parser/stmt_expr_attrs_placement.stderr new file mode 100644 index 00000000000..1886a0f9ba0 --- /dev/null +++ b/src/test/ui/parser/stmt_expr_attrs_placement.stderr @@ -0,0 +1,10 @@ +error: an inner attribute is not permitted in this context + --> $DIR/stmt_expr_attrs_placement.rs:7:13 + | +LL | let a = #![allow(warnings)] (1, 2); + | ^^^^^^^^^^^^^^^^^^^ + | + = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them. + +error: aborting due to previous error + -- 2.44.0