about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Huss <eric@huss.org>2024-11-20 17:12:56 -0800
committerEric Huss <eric@huss.org>2024-11-20 17:28:47 -0800
commit993e084eb1eb8bc29eae0620bbbb2c3009cec6dd (patch)
treea7707931e8bdf0ce4bb35263aae12427327fe95b
parenta1838660c3820c74b987a1630c405ed5c575c70a (diff)
downloadrust-993e084eb1eb8bc29eae0620bbbb2c3009cec6dd.tar.gz
rust-993e084eb1eb8bc29eae0620bbbb2c3009cec6dd.zip
Use edition of `macro_rules` when compiling the macro
-rw-r--r--compiler/rustc_resolve/src/def_collector.rs2
-rw-r--r--tests/ui/proc-macro/macro_rules_edition_from_pm.edition2021.stderr11
-rw-r--r--tests/ui/proc-macro/macro_rules_edition_from_pm.edition2024.stderr0
-rw-r--r--tests/ui/proc-macro/macro_rules_edition_from_pm.rs5
-rw-r--r--tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.edition2024.stderr17
-rw-r--r--tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.rs3
6 files changed, 4 insertions, 34 deletions
diff --git a/compiler/rustc_resolve/src/def_collector.rs b/compiler/rustc_resolve/src/def_collector.rs
index bf27b767a49..7536869e2fe 100644
--- a/compiler/rustc_resolve/src/def_collector.rs
+++ b/compiler/rustc_resolve/src/def_collector.rs
@@ -191,7 +191,7 @@ impl<'a, 'ra, 'tcx> visit::Visitor<'a> for DefCollector<'a, 'ra, 'tcx> {
             ItemKind::Const(..) => DefKind::Const,
             ItemKind::Fn(..) | ItemKind::Delegation(..) => DefKind::Fn,
             ItemKind::MacroDef(def) => {
-                let edition = self.resolver.tcx.sess.edition();
+                let edition = i.span.edition();
                 let macro_data =
                     self.resolver.compile_macro(def, i.ident, &i.attrs, i.span, i.id, edition);
                 let macro_kind = macro_data.ext.macro_kind();
diff --git a/tests/ui/proc-macro/macro_rules_edition_from_pm.edition2021.stderr b/tests/ui/proc-macro/macro_rules_edition_from_pm.edition2021.stderr
deleted file mode 100644
index a783dac00cd..00000000000
--- a/tests/ui/proc-macro/macro_rules_edition_from_pm.edition2021.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0080]: evaluation of constant value failed
-  --> $DIR/macro_rules_edition_from_pm.rs:24:5
-   |
-LL |     assert!(edition_inner!(const {}) == 2024);
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'assertion failed: edition_inner!(const {}) == 2024', $DIR/macro_rules_edition_from_pm.rs:24:5
-   |
-   = note: this error originates in the macro `assert` (in Nightly builds, run with -Z macro-backtrace for more info)
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0080`.
diff --git a/tests/ui/proc-macro/macro_rules_edition_from_pm.edition2024.stderr b/tests/ui/proc-macro/macro_rules_edition_from_pm.edition2024.stderr
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/tests/ui/proc-macro/macro_rules_edition_from_pm.edition2024.stderr
+++ /dev/null
diff --git a/tests/ui/proc-macro/macro_rules_edition_from_pm.rs b/tests/ui/proc-macro/macro_rules_edition_from_pm.rs
index de614922d1f..3ba80f5177a 100644
--- a/tests/ui/proc-macro/macro_rules_edition_from_pm.rs
+++ b/tests/ui/proc-macro/macro_rules_edition_from_pm.rs
@@ -7,7 +7,7 @@
 //@[edition2021] edition:2021
 //@[edition2024] edition:2024
 //@[edition2024] compile-flags: -Zunstable-options
-//@[edition2024] check-pass
+//@ check-pass
 
 // This checks how the expr fragment specifier works.
 macro_rules_edition_pm::make_edition_macro!{}
@@ -21,8 +21,7 @@ macro_rules_edition_pm::make_nested_edition_macro!{}
 make_inner!{}
 
 const _: () = {
-    assert!(edition_inner!(const {}) == 2024);
-    //[edition2021]~^ ERROR evaluation of constant value failed
+    assert!(edition_inner!(const {}) == 2021);
 };
 
 fn main() {}
diff --git a/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.edition2024.stderr b/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.edition2024.stderr
deleted file mode 100644
index 4bdfe6153e7..00000000000
--- a/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.edition2024.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-error: unsafe attribute used without unsafe
-  --> $DIR/unsafe-attributes-from-pm.rs:13:1
-   |
-LL | unsafe_attributes_pm::macro_rules_missing_unsafe!();
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ usage of unsafe attribute
-...
-LL | make_fn!();
-   | ---------- in this macro invocation
-   |
-   = note: this error originates in the macro `make_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
-help: wrap the attribute in `unsafe(...)`
-   |
-LL | ununsafe(safe_attributes_pm::macro_rules_missing_unsafe!());
-   |   +++++++                                                +
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.rs b/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.rs
index fbe3ffaf0b8..782a3942236 100644
--- a/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.rs
+++ b/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.rs
@@ -2,7 +2,7 @@
 // See https://github.com/rust-lang/rust/issues/132906
 
 //@ revisions: edition2021 edition2024
-//@[edition2021] check-pass
+//@ check-pass
 //@[edition2021] edition:2021
 //@[edition2024] edition:2024
 //@[edition2024] compile-flags: -Zunstable-options
@@ -11,7 +11,6 @@
 unsafe_attributes_pm::missing_unsafe!();
 
 unsafe_attributes_pm::macro_rules_missing_unsafe!();
-//[edition2024]~^ ERROR unsafe attribute used without unsafe
 
 make_fn!();