summaryrefslogtreecommitdiffstats
path: root/tests/ui/dyn-keyword/dyn-2015-edition-keyword-ident-lint.fixed
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/dyn-keyword/dyn-2015-edition-keyword-ident-lint.fixed')
-rw-r--r--tests/ui/dyn-keyword/dyn-2015-edition-keyword-ident-lint.fixed82
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/ui/dyn-keyword/dyn-2015-edition-keyword-ident-lint.fixed b/tests/ui/dyn-keyword/dyn-2015-edition-keyword-ident-lint.fixed
new file mode 100644
index 000000000..c815080fc
--- /dev/null
+++ b/tests/ui/dyn-keyword/dyn-2015-edition-keyword-ident-lint.fixed
@@ -0,0 +1,82 @@
+// Under the 2015 edition with the keyword_idents lint, `dyn` is not
+// entirely acceptable as an identifier. We currently do not attempt
+// to detect or fix uses of `dyn` under a macro. Since we are testing
+// this file via `rustfix`, we want the rustfix output to be
+// compilable; so the macros here carefully use `dyn` "correctly."
+//
+// edition:2015
+// run-rustfix
+
+#![allow(non_camel_case_types)]
+#![deny(keyword_idents)]
+
+mod outer_mod {
+ pub mod r#dyn {
+//~^ ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+ pub struct r#dyn;
+//~^ ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+ }
+}
+use outer_mod::r#dyn::r#dyn;
+//~^ ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+//~| ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+
+fn main() {
+ match r#dyn { r#dyn => {} }
+//~^ ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+//~| ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+ macro_defn::r#dyn();
+//~^ ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+
+ macro_defn::boxed();
+}
+
+mod macro_defn {
+ use super::Trait;
+
+ macro_rules! r#dyn {
+//~^ ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+
+ // Note that we do not lint nor fix occurrences under macros
+ ($dyn:tt) => { (Box<dyn Trait>, Box<$dyn Trait>) }
+ }
+
+ pub fn r#dyn() -> ::outer_mod::r#dyn::r#dyn {
+//~^ ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+//~| ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+//~| ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+ ::outer_mod::r#dyn::r#dyn
+//~^ ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+//~| ERROR `dyn` is a keyword
+//~| WARN this is accepted in the current edition
+ }
+
+
+
+ pub fn boxed() -> r#dyn!(
+ //~^ ERROR `dyn` is a keyword
+ //~| WARN this is accepted in the current edition
+
+ // Note that we do not lint nor fix occurrences under macros
+ dyn
+ )
+ {
+ (Box::new(1), Box::new(2))
+ }
+}
+
+pub trait Trait { }
+
+impl Trait for u32 { }