diff --git a/src/librustc/middle/dead.rs b/src/librustc/middle/dead.rs index ba04842ac7c0a1bcda1021f2682ca354eadbbceb..30701654f299de3e1a5419070a6071c7edeea3d5 100644 --- a/src/librustc/middle/dead.rs +++ b/src/librustc/middle/dead.rs @@ -293,7 +293,9 @@ fn has_allow_dead_code_or_lang_attr(tcx: TyCtxt, } // (To be) stable attribute for #[lang = "panic_impl"] - if attr::contains_name(attrs, "panic_implementation") { + if attr::contains_name(attrs, "panic_implementation") || + attr::contains_name(attrs, "panic_handler") + { return true; } diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs index 8c300a0aba0ecc5cf57fb21946e3da9b5f0ba63b..d92f856fa4dbff90445e78b1276bd011d5255b9b 100644 --- a/src/librustc/middle/lang_items.rs +++ b/src/librustc/middle/lang_items.rs @@ -185,7 +185,9 @@ pub fn extract(attrs: &[ast::Attribute]) -> Option<(Symbol, Span)> { if let Some(value) = attribute.value_str() { return Some((value, attribute.span)); } - } else if attribute.check_name("panic_implementation") { + } else if attribute.check_name("panic_implementation") || + attribute.check_name("panic_handler") + { return Some((Symbol::intern("panic_impl"), attribute.span)) } else if attribute.check_name("alloc_error_handler") { return Some((Symbol::intern("oom"), attribute.span)) diff --git a/src/librustc/middle/weak_lang_items.rs b/src/librustc/middle/weak_lang_items.rs index e8431ce3e109b4d9505fd0d96acd225d0c29fb2b..bfc27e3b5806c95f31d34e28033065f724cedd5f 100644 --- a/src/librustc/middle/weak_lang_items.rs +++ b/src/librustc/middle/weak_lang_items.rs @@ -113,7 +113,7 @@ fn verify<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, !whitelisted(tcx, lang_items::$item) && items.$name().is_none() { if lang_items::$item == lang_items::PanicImplLangItem { - tcx.sess.err(&format!("`#[panic_implementation]` function required, \ + tcx.sess.err(&format!("`#[panic_handler]` function required, \ but not found")); } else if lang_items::$item == lang_items::OomLangItem { tcx.sess.err(&format!("`#[alloc_error_handler]` function required, \ diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index db4dda0da5b4e88100b3a2f8e2955de6aee7bfaa..4fe0212ce366b40d03b639924040be7fb0575f05 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -1171,8 +1171,7 @@ fn check_fn<'a, 'gcx, 'tcx>(inherited: &'a Inherited<'a, 'gcx, 'tcx>, if !generics.params.is_empty() { fcx.tcx.sess.span_err( span, - "`#[panic_implementation]` function should have no type \ - parameters", + "should have no type parameters", ); } } diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index ade297219d221e73867a081517beff74175fafd6..b20c51d823e9a14ab1d6e02a23d12e2e77f97b9b 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -310,7 +310,8 @@ #![feature(doc_alias)] #![feature(doc_keyword)] #![feature(panic_info_message)] -#![feature(panic_implementation)] +#![cfg_attr(stage0, feature(panic_implementation))] +#![cfg_attr(not(stage0), feature(panic_handler))] #![feature(non_exhaustive)] #![default_lib_allocator] diff --git a/src/libstd/panicking.rs b/src/libstd/panicking.rs index 862f0fd71b0a3d18056eec43111ef88476d53973..6eb2db8e63bfed7567ad11a842c4d13fde6292fa 100644 --- a/src/libstd/panicking.rs +++ b/src/libstd/panicking.rs @@ -319,7 +319,8 @@ pub fn panicking() -> bool { /// Entry point of panic from the libcore crate. #[cfg(not(test))] -#[panic_implementation] +#[cfg_attr(stage0, panic_implementation)] +#[cfg_attr(not(stage0), panic_handler)] #[unwind(allowed)] pub fn rust_begin_panic(info: &PanicInfo) -> ! { continue_panic_fmt(&info) diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index 1ffb6e55f06e3f249c36d9c187ac60a324be9487..04066f687fc7b222c6eaa2d6b849c650bd4f20d4 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -472,8 +472,9 @@ pub fn walk_feature_fields(&self, mut f: F) // Integer match exhaustiveness checking (active, exhaustive_integer_patterns, "1.30.0", Some(50907), None), - // #[panic_implementation] + // RFC 2070: #[panic_implementation] / #[panic_handler] (active, panic_implementation, "1.28.0", Some(44489), None), + (active, panic_handler, "1.30.0", Some(44489), None), // #[doc(keyword = "...")] (active, doc_keyword, "1.28.0", Some(51315), None), @@ -1104,11 +1105,18 @@ pub fn is_builtin_attr(attr: &ast::Attribute) -> bool { "infer 'static lifetime requirements", cfg_fn!(infer_static_outlives_requirements))), + // RFC 2070 (deprecated attribute name) + ("panic_implementation", + Normal, Gated(Stability::Deprecated("https://github.com/rust-lang/rust/issues/44489#issuecomment-415140224"), + "panic_implementation", + "This attribute was renamed to `panic_handler`", + cfg_fn!(panic_implementation))), + // RFC 2070 - ("panic_implementation", Normal, Gated(Stability::Unstable, - "panic_implementation", - "#[panic_implementation] is an unstable feature", - cfg_fn!(panic_implementation))), + ("panic_handler", Normal, Gated(Stability::Unstable, + "panic_handler", + "#[panic_handler] is an unstable feature", + cfg_fn!(panic_handler))), ("alloc_error_handler", Normal, Gated(Stability::Unstable, "alloc_error_handler", diff --git a/src/test/compile-fail/auxiliary/some-panic-impl.rs b/src/test/compile-fail/auxiliary/some-panic-impl.rs index db16ac325ac595c8d93335623d8e90c67a3859b8..e3b4fba176e3c2be517e4ac7672dbf62a7f36df1 100644 --- a/src/test/compile-fail/auxiliary/some-panic-impl.rs +++ b/src/test/compile-fail/auxiliary/some-panic-impl.rs @@ -11,12 +11,12 @@ // no-prefer-dynamic #![crate_type = "rlib"] -#![feature(panic_implementation)] +#![feature(panic_handler)] #![no_std] use core::panic::PanicInfo; -#[panic_implementation] +#[panic_handler] fn panic(info: &PanicInfo) -> ! { loop {} } diff --git a/src/test/compile-fail/panic-implementation-missing.rs b/src/test/compile-fail/panic-handler-missing.rs similarity index 87% rename from src/test/compile-fail/panic-implementation-missing.rs rename to src/test/compile-fail/panic-handler-missing.rs index b11081a3e3bbe40773162e9fb4fcca69d2e68519..d17c19b4c1308b5253b33dcfc1c94ff35018875c 100644 --- a/src/test/compile-fail/panic-implementation-missing.rs +++ b/src/test/compile-fail/panic-handler-missing.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// error-pattern: `#[panic_implementation]` function required, but not found +// error-pattern: `#[panic_handler]` function required, but not found #![feature(lang_items)] #![no_main] diff --git a/src/test/compile-fail/panic-implementation-twice.rs b/src/test/compile-fail/panic-handler-twice.rs similarity index 92% rename from src/test/compile-fail/panic-implementation-twice.rs rename to src/test/compile-fail/panic-handler-twice.rs index 78dc545c036f889b27420d8c4caf8c35ebcaff41..6c9515ca909942bc602b6d15fcd5d03392bfbed9 100644 --- a/src/test/compile-fail/panic-implementation-twice.rs +++ b/src/test/compile-fail/panic-handler-twice.rs @@ -10,7 +10,7 @@ // aux-build:some-panic-impl.rs -#![feature(panic_implementation)] +#![feature(panic_handler)] #![feature(lang_items)] #![no_std] #![no_main] @@ -19,7 +19,7 @@ use core::panic::PanicInfo; -#[panic_implementation] +#[panic_handler] fn panic(info: &PanicInfo) -> ! { //~^ error duplicate lang item found: `panic_impl` loop {} diff --git a/src/test/compile-fail/weak-lang-item.rs b/src/test/compile-fail/weak-lang-item.rs index 42972c40674b68e31e67d93f9fa24c83f59e6ad1..493c708018177e7f9ffb4dfe88f6d04e49eb42a1 100644 --- a/src/test/compile-fail/weak-lang-item.rs +++ b/src/test/compile-fail/weak-lang-item.rs @@ -9,7 +9,7 @@ // except according to those terms. // aux-build:weak-lang-items.rs -// error-pattern: `#[panic_implementation]` function required, but not found +// error-pattern: `#[panic_handler]` function required, but not found // error-pattern: language item required, but not found: `eh_personality` // ignore-wasm32-bare compiled with panic=abort, personality not required diff --git a/src/test/run-make-fulldeps/issue-51671/app.rs b/src/test/run-make-fulldeps/issue-51671/app.rs index 453602b800b5e546d7cecb9d7e4069885a04a8dd..e980b12039e96d35ba674b0a437b8469570b37b6 100644 --- a/src/test/run-make-fulldeps/issue-51671/app.rs +++ b/src/test/run-make-fulldeps/issue-51671/app.rs @@ -10,14 +10,14 @@ #![crate_type = "bin"] #![feature(lang_items)] -#![feature(panic_implementation)] +#![feature(panic_handler)] #![no_main] #![no_std] use core::alloc::Layout; use core::panic::PanicInfo; -#[panic_implementation] +#[panic_handler] fn panic(_: &PanicInfo) -> ! { loop {} } diff --git a/src/test/run-make-fulldeps/panic-impl-transitive/panic-impl-provider.rs b/src/test/run-make-fulldeps/panic-impl-transitive/panic-impl-provider.rs index 46cdf2e2fa55e5397fb4d60ccdc436acebbbec8d..065b2b6bf18faf70de11bf0123470bc092718492 100644 --- a/src/test/run-make-fulldeps/panic-impl-transitive/panic-impl-provider.rs +++ b/src/test/run-make-fulldeps/panic-impl-transitive/panic-impl-provider.rs @@ -9,12 +9,12 @@ // except according to those terms. #![crate_type = "rlib"] -#![feature(panic_implementation)] +#![feature(panic_handler)] #![no_std] use core::panic::PanicInfo; -#[panic_implementation] +#[panic_handler] fn panic(info: &PanicInfo) -> ! { loop {} } diff --git a/src/test/run-make/wasm-symbols-not-exported/bar.rs b/src/test/run-make/wasm-symbols-not-exported/bar.rs index 979ec44b040776407dd955a1b5a5cf4ade1e057c..061280779b0cf633fc2584527bc8a496033aaec7 100644 --- a/src/test/run-make/wasm-symbols-not-exported/bar.rs +++ b/src/test/run-make/wasm-symbols-not-exported/bar.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(panic_implementation, alloc_error_handler)] +#![feature(panic_handler, alloc_error_handler)] #![crate_type = "cdylib"] #![no_std] @@ -39,7 +39,7 @@ fn a(_: core::alloc::Layout) -> ! { loop {} } -#[panic_implementation] +#[panic_handler] fn b(_: &core::panic::PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/alloc-error/alloc-error-handler-bad-signature-1.rs b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-1.rs index e398f16a065bd186c4b46a2ac3c5777d14e05114..0a54ae8341bbf70440c17b90400337e91935e465 100644 --- a/src/test/ui/alloc-error/alloc-error-handler-bad-signature-1.rs +++ b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-1.rs @@ -10,7 +10,7 @@ // compile-flags:-C panic=abort -#![feature(alloc_error_handler, panic_implementation)] +#![feature(alloc_error_handler, panic_handler)] #![no_std] #![no_main] @@ -24,5 +24,5 @@ fn oom( loop {} } -#[panic_implementation] +#[panic_handler] fn panic(_: &core::panic::PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/alloc-error/alloc-error-handler-bad-signature-2.rs b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-2.rs index 4fee9d27e51759275aea4dcbdd5cd77216413fae..b33d82cd55008ede367ce912ef4ceb7e1dc17d50 100644 --- a/src/test/ui/alloc-error/alloc-error-handler-bad-signature-2.rs +++ b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-2.rs @@ -10,7 +10,7 @@ // compile-flags:-C panic=abort -#![feature(alloc_error_handler, panic_implementation)] +#![feature(alloc_error_handler, panic_handler)] #![no_std] #![no_main] @@ -23,5 +23,5 @@ fn oom( loop {} } -#[panic_implementation] +#[panic_handler] fn panic(_: &core::panic::PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/alloc-error/alloc-error-handler-bad-signature-3.rs b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-3.rs index 828a78055d5f2ca21edae22a5db2c7d1117d0bc0..0e102dd08ea5de6212be85f8ea879e31fcebc444 100644 --- a/src/test/ui/alloc-error/alloc-error-handler-bad-signature-3.rs +++ b/src/test/ui/alloc-error/alloc-error-handler-bad-signature-3.rs @@ -10,7 +10,7 @@ // compile-flags:-C panic=abort -#![feature(alloc_error_handler, panic_implementation)] +#![feature(alloc_error_handler, panic_handler)] #![no_std] #![no_main] @@ -21,5 +21,5 @@ fn oom() -> ! { //~ ERROR function should have one argument loop {} } -#[panic_implementation] +#[panic_handler] fn panic(_: &core::panic::PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/feature-gates/feature-gate-panic-implementation.rs b/src/test/ui/feature-gates/feature-gate-panic-handler.rs similarity index 85% rename from src/test/ui/feature-gates/feature-gate-panic-implementation.rs rename to src/test/ui/feature-gates/feature-gate-panic-handler.rs index ae9fbc7b13bd53db338dfc94f6e316e40194f767..fd16268ef8b4e8ffc3dc8523fae5db034c6d1183 100644 --- a/src/test/ui/feature-gates/feature-gate-panic-implementation.rs +++ b/src/test/ui/feature-gates/feature-gate-panic-handler.rs @@ -15,7 +15,7 @@ use core::panic::PanicInfo; -#[panic_implementation] //~ ERROR #[panic_implementation] is an unstable feature (see issue #44489) +#[panic_handler] //~ ERROR #[panic_handler] is an unstable feature (see issue #44489) fn panic(info: &PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/feature-gates/feature-gate-panic-handler.stderr b/src/test/ui/feature-gates/feature-gate-panic-handler.stderr new file mode 100644 index 0000000000000000000000000000000000000000..9680a240a992590648d6205c741604d1b358e449 --- /dev/null +++ b/src/test/ui/feature-gates/feature-gate-panic-handler.stderr @@ -0,0 +1,11 @@ +error[E0658]: #[panic_handler] is an unstable feature (see issue #44489) + --> $DIR/feature-gate-panic-handler.rs:18:1 + | +LL | #[panic_handler] //~ ERROR #[panic_handler] is an unstable feature (see issue #44489) + | ^^^^^^^^^^^^^^^^ + | + = help: add #![feature(panic_handler)] to the crate attributes to enable + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/feature-gates/feature-gate-panic-implementation.stderr b/src/test/ui/feature-gates/feature-gate-panic-implementation.stderr deleted file mode 100644 index f99228bef1d623b4d4993f2af8308a448f413a0f..0000000000000000000000000000000000000000 --- a/src/test/ui/feature-gates/feature-gate-panic-implementation.stderr +++ /dev/null @@ -1,11 +0,0 @@ -error[E0658]: #[panic_implementation] is an unstable feature (see issue #44489) - --> $DIR/feature-gate-panic-implementation.rs:18:1 - | -LL | #[panic_implementation] //~ ERROR #[panic_implementation] is an unstable feature (see issue #44489) - | ^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: add #![feature(panic_implementation)] to the crate attributes to enable - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/missing/missing-alloc_error_handler.rs b/src/test/ui/missing/missing-alloc_error_handler.rs index 3842d48f8fab110a759979429c8963adbf8e3435..1096027c8dc0becb64d663398e9773072a9edfa6 100644 --- a/src/test/ui/missing/missing-alloc_error_handler.rs +++ b/src/test/ui/missing/missing-alloc_error_handler.rs @@ -13,9 +13,9 @@ #![no_std] #![crate_type = "staticlib"] -#![feature(panic_implementation, alloc_error_handler, alloc)] +#![feature(panic_handler, alloc_error_handler, alloc)] -#[panic_implementation] +#[panic_handler] fn panic(_: &core::panic::PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/missing/missing-allocator.rs b/src/test/ui/missing/missing-allocator.rs index c949dcb635aad5ccbc0bf998cb06531515e109b1..f4331c4b99480cc2f2dd5b38afe0106c1e83513e 100644 --- a/src/test/ui/missing/missing-allocator.rs +++ b/src/test/ui/missing/missing-allocator.rs @@ -13,9 +13,9 @@ #![no_std] #![crate_type = "staticlib"] -#![feature(panic_implementation, alloc_error_handler, alloc)] +#![feature(panic_handler, alloc_error_handler, alloc)] -#[panic_implementation] +#[panic_handler] fn panic(_: &core::panic::PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/panic-implementation/auxiliary/some-panic-impl.rs b/src/test/ui/panic-handler/auxiliary/some-panic-impl.rs similarity index 91% rename from src/test/ui/panic-implementation/auxiliary/some-panic-impl.rs rename to src/test/ui/panic-handler/auxiliary/some-panic-impl.rs index db16ac325ac595c8d93335623d8e90c67a3859b8..e3b4fba176e3c2be517e4ac7672dbf62a7f36df1 100644 --- a/src/test/ui/panic-implementation/auxiliary/some-panic-impl.rs +++ b/src/test/ui/panic-handler/auxiliary/some-panic-impl.rs @@ -11,12 +11,12 @@ // no-prefer-dynamic #![crate_type = "rlib"] -#![feature(panic_implementation)] +#![feature(panic_handler)] #![no_std] use core::panic::PanicInfo; -#[panic_implementation] +#[panic_handler] fn panic(info: &PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/panic-implementation/panic-implementation-bad-signature-1.rs b/src/test/ui/panic-handler/panic-handler-bad-signature-1.rs similarity index 92% rename from src/test/ui/panic-implementation/panic-implementation-bad-signature-1.rs rename to src/test/ui/panic-handler/panic-handler-bad-signature-1.rs index fec11fdbd7ba13c247029efd2e81bbacffe88cb1..cc7e337fc9e657a7b9599643396445c0a2a47d51 100644 --- a/src/test/ui/panic-implementation/panic-implementation-bad-signature-1.rs +++ b/src/test/ui/panic-handler/panic-handler-bad-signature-1.rs @@ -10,13 +10,13 @@ // compile-flags:-C panic=abort -#![feature(panic_implementation)] +#![feature(panic_handler)] #![no_std] #![no_main] use core::panic::PanicInfo; -#[panic_implementation] +#[panic_handler] fn panic( info: PanicInfo, //~ ERROR argument should be `&PanicInfo` ) -> () //~ ERROR return type should be `!` diff --git a/src/test/ui/panic-implementation/panic-implementation-bad-signature-1.stderr b/src/test/ui/panic-handler/panic-handler-bad-signature-1.stderr similarity index 71% rename from src/test/ui/panic-implementation/panic-implementation-bad-signature-1.stderr rename to src/test/ui/panic-handler/panic-handler-bad-signature-1.stderr index 0e020fbc78b81baa938a1452e99abcec73f75459..5771f4277b46d895d627341b59bed5d7000c1fb2 100644 --- a/src/test/ui/panic-implementation/panic-implementation-bad-signature-1.stderr +++ b/src/test/ui/panic-handler/panic-handler-bad-signature-1.stderr @@ -1,11 +1,11 @@ error: return type should be `!` - --> $DIR/panic-implementation-bad-signature-1.rs:22:6 + --> $DIR/panic-handler-bad-signature-1.rs:22:6 | LL | ) -> () //~ ERROR return type should be `!` | ^^ error: argument should be `&PanicInfo` - --> $DIR/panic-implementation-bad-signature-1.rs:21:11 + --> $DIR/panic-handler-bad-signature-1.rs:21:11 | LL | info: PanicInfo, //~ ERROR argument should be `&PanicInfo` | ^^^^^^^^^ diff --git a/src/test/ui/panic-implementation/panic-implementation-bad-signature-2.rs b/src/test/ui/panic-handler/panic-handler-bad-signature-2.rs similarity index 91% rename from src/test/ui/panic-implementation/panic-implementation-bad-signature-2.rs rename to src/test/ui/panic-handler/panic-handler-bad-signature-2.rs index 2a628c05699cc57cd4fea776f700686dccc0e9b4..ec698903c846e517dfb6463bac2e73f7a9c9fefb 100644 --- a/src/test/ui/panic-implementation/panic-implementation-bad-signature-2.rs +++ b/src/test/ui/panic-handler/panic-handler-bad-signature-2.rs @@ -10,13 +10,13 @@ // compile-flags:-C panic=abort -#![feature(panic_implementation)] +#![feature(panic_handler)] #![no_std] #![no_main] use core::panic::PanicInfo; -#[panic_implementation] +#[panic_handler] fn panic( info: &'static PanicInfo, //~ ERROR argument should be `&PanicInfo` ) -> ! diff --git a/src/test/ui/panic-implementation/panic-implementation-bad-signature-2.stderr b/src/test/ui/panic-handler/panic-handler-bad-signature-2.stderr similarity index 77% rename from src/test/ui/panic-implementation/panic-implementation-bad-signature-2.stderr rename to src/test/ui/panic-handler/panic-handler-bad-signature-2.stderr index 71ed1efdcf2b8b2eb1917e8dc07563cbc1d510c8..4823f8a2781b004bfd8267f94af2700527511d75 100644 --- a/src/test/ui/panic-implementation/panic-implementation-bad-signature-2.stderr +++ b/src/test/ui/panic-handler/panic-handler-bad-signature-2.stderr @@ -1,5 +1,5 @@ error: argument should be `&PanicInfo` - --> $DIR/panic-implementation-bad-signature-2.rs:21:11 + --> $DIR/panic-handler-bad-signature-2.rs:21:11 | LL | info: &'static PanicInfo, //~ ERROR argument should be `&PanicInfo` | ^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/panic-implementation/panic-implementation-bad-signature-3.rs b/src/test/ui/panic-handler/panic-handler-bad-signature-3.rs similarity index 91% rename from src/test/ui/panic-implementation/panic-implementation-bad-signature-3.rs rename to src/test/ui/panic-handler/panic-handler-bad-signature-3.rs index 29337025b707667924b002781b83114bc558031b..585716c7c756906400e0922c6a303a92053df06c 100644 --- a/src/test/ui/panic-implementation/panic-implementation-bad-signature-3.rs +++ b/src/test/ui/panic-handler/panic-handler-bad-signature-3.rs @@ -10,13 +10,13 @@ // compile-flags:-C panic=abort -#![feature(panic_implementation)] +#![feature(panic_handler)] #![no_std] #![no_main] use core::panic::PanicInfo; -#[panic_implementation] +#[panic_handler] fn panic() -> ! { //~ ERROR function should have one argument loop {} } diff --git a/src/test/ui/panic-implementation/panic-implementation-bad-signature-3.stderr b/src/test/ui/panic-handler/panic-handler-bad-signature-3.stderr similarity index 77% rename from src/test/ui/panic-implementation/panic-implementation-bad-signature-3.stderr rename to src/test/ui/panic-handler/panic-handler-bad-signature-3.stderr index 3fd29bcd3e998c26064267b5297d1432475805c1..0eb0d4e10004b9a783afc0acf42dade3f24900b1 100644 --- a/src/test/ui/panic-implementation/panic-implementation-bad-signature-3.stderr +++ b/src/test/ui/panic-handler/panic-handler-bad-signature-3.stderr @@ -1,5 +1,5 @@ error: function should have one argument - --> $DIR/panic-implementation-bad-signature-3.rs:20:1 + --> $DIR/panic-handler-bad-signature-3.rs:20:1 | LL | / fn panic() -> ! { //~ ERROR function should have one argument LL | | loop {} diff --git a/src/test/ui/panic-implementation/panic-implementation-bad-signature-4.rs b/src/test/ui/panic-handler/panic-handler-bad-signature-4.rs similarity index 81% rename from src/test/ui/panic-implementation/panic-implementation-bad-signature-4.rs rename to src/test/ui/panic-handler/panic-handler-bad-signature-4.rs index d5f942ba2d62fc29b760d805042dd990c33abb70..9cda37f27b332ffea2f09a17b8a0ee488670b5f2 100644 --- a/src/test/ui/panic-implementation/panic-implementation-bad-signature-4.rs +++ b/src/test/ui/panic-handler/panic-handler-bad-signature-4.rs @@ -10,14 +10,14 @@ // compile-flags:-C panic=abort -#![feature(panic_implementation)] +#![feature(panic_handler)] #![no_std] #![no_main] use core::panic::PanicInfo; -#[panic_implementation] +#[panic_handler] fn panic(pi: &PanicInfo) -> ! { - //~^ ERROR `#[panic_implementation]` function should have no type parameters + //~^ ERROR should have no type parameters loop {} } diff --git a/src/test/ui/panic-handler/panic-handler-bad-signature-4.stderr b/src/test/ui/panic-handler/panic-handler-bad-signature-4.stderr new file mode 100644 index 0000000000000000000000000000000000000000..a61b9b3743c7da9a1cbd6708e0c3dfe684d4dab5 --- /dev/null +++ b/src/test/ui/panic-handler/panic-handler-bad-signature-4.stderr @@ -0,0 +1,11 @@ +error: should have no type parameters + --> $DIR/panic-handler-bad-signature-4.rs:20:1 + | +LL | / fn panic(pi: &PanicInfo) -> ! { +LL | | //~^ ERROR should have no type parameters +LL | | loop {} +LL | | } + | |_^ + +error: aborting due to previous error + diff --git a/src/test/ui/panic-implementation/panic-implementation-duplicate.rs b/src/test/ui/panic-handler/panic-handler-duplicate.rs similarity index 92% rename from src/test/ui/panic-implementation/panic-implementation-duplicate.rs rename to src/test/ui/panic-handler/panic-handler-duplicate.rs index 017113af409bb2870e798d8bd9c94bbce3a46a72..7d7fe251869f19aff992868917b09f8d028ac375 100644 --- a/src/test/ui/panic-implementation/panic-implementation-duplicate.rs +++ b/src/test/ui/panic-handler/panic-handler-duplicate.rs @@ -11,13 +11,13 @@ // compile-flags:-C panic=abort #![feature(lang_items)] -#![feature(panic_implementation)] +#![feature(panic_handler)] #![no_std] #![no_main] use core::panic::PanicInfo; -#[panic_implementation] +#[panic_handler] fn panic(info: &PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/panic-implementation/panic-implementation-duplicate.stderr b/src/test/ui/panic-handler/panic-handler-duplicate.stderr similarity index 80% rename from src/test/ui/panic-implementation/panic-implementation-duplicate.stderr rename to src/test/ui/panic-handler/panic-handler-duplicate.stderr index d553c02379c37a1684a4f8250ddc73654ba53419..d8afaa27e26624330f76884c1a00d2515d1e7e53 100644 --- a/src/test/ui/panic-implementation/panic-implementation-duplicate.stderr +++ b/src/test/ui/panic-handler/panic-handler-duplicate.stderr @@ -1,5 +1,5 @@ error[E0152]: duplicate lang item found: `panic_impl`. - --> $DIR/panic-implementation-duplicate.rs:26:1 + --> $DIR/panic-handler-duplicate.rs:26:1 | LL | / fn panic2(info: &PanicInfo) -> ! { //~ ERROR duplicate lang item found: `panic_impl`. LL | | loop {} @@ -7,7 +7,7 @@ LL | | } | |_^ | note: first defined here. - --> $DIR/panic-implementation-duplicate.rs:21:1 + --> $DIR/panic-handler-duplicate.rs:21:1 | LL | / fn panic(info: &PanicInfo) -> ! { LL | | loop {} diff --git a/src/test/ui/panic-implementation/panic-implementation-requires-panic-info.rs b/src/test/ui/panic-handler/panic-handler-requires-panic-info.rs similarity index 92% rename from src/test/ui/panic-implementation/panic-implementation-requires-panic-info.rs rename to src/test/ui/panic-handler/panic-handler-requires-panic-info.rs index 597f44d98326dc6e441cb4ea81bcd76462f44cf4..ec68a414f54d5605433b568e66fba51352c8d911 100644 --- a/src/test/ui/panic-implementation/panic-implementation-requires-panic-info.rs +++ b/src/test/ui/panic-handler/panic-handler-requires-panic-info.rs @@ -13,11 +13,11 @@ #![feature(lang_items)] #![feature(no_core)] -#![feature(panic_implementation)] +#![feature(panic_handler)] #![no_core] #![no_main] -#[panic_implementation] +#[panic_handler] fn panic() -> ! { loop {} } diff --git a/src/test/ui/panic-implementation/panic-implementation-requires-panic-info.stderr b/src/test/ui/panic-handler/panic-handler-requires-panic-info.stderr similarity index 100% rename from src/test/ui/panic-implementation/panic-implementation-requires-panic-info.stderr rename to src/test/ui/panic-handler/panic-handler-requires-panic-info.stderr diff --git a/src/test/ui/panic-implementation/panic-implementation-std.rs b/src/test/ui/panic-handler/panic-handler-std.rs similarity index 91% rename from src/test/ui/panic-implementation/panic-implementation-std.rs rename to src/test/ui/panic-handler/panic-handler-std.rs index f25cd3605c1dd00450651b1a9d06cf1cfaeee375..7cbe0a35baed87eda155e2780b27090385be1172 100644 --- a/src/test/ui/panic-implementation/panic-implementation-std.rs +++ b/src/test/ui/panic-handler/panic-handler-std.rs @@ -10,11 +10,11 @@ // error-pattern: duplicate lang item found: `panic_impl`. -#![feature(panic_implementation)] +#![feature(panic_handler)] use std::panic::PanicInfo; -#[panic_implementation] +#[panic_handler] fn panic(info: PanicInfo) -> ! { loop {} } diff --git a/src/test/ui/panic-implementation/panic-implementation-std.stderr b/src/test/ui/panic-handler/panic-handler-std.stderr similarity index 86% rename from src/test/ui/panic-implementation/panic-implementation-std.stderr rename to src/test/ui/panic-handler/panic-handler-std.stderr index 5016d502cee31008d9f5ba5eca06cca0f7f60f19..c34a993e2c5e389d4e535b099bf942bea5e6efd0 100644 --- a/src/test/ui/panic-implementation/panic-implementation-std.stderr +++ b/src/test/ui/panic-handler/panic-handler-std.stderr @@ -1,5 +1,5 @@ error[E0152]: duplicate lang item found: `panic_impl`. - --> $DIR/panic-implementation-std.rs:18:1 + --> $DIR/panic-handler-std.rs:18:1 | LL | / fn panic(info: PanicInfo) -> ! { LL | | loop {} diff --git a/src/test/ui/panic-implementation/panic-implementation-bad-signature-4.stderr b/src/test/ui/panic-implementation/panic-implementation-bad-signature-4.stderr deleted file mode 100644 index 362be2fc3b91e86590fa862ca100c430be2efcc6..0000000000000000000000000000000000000000 --- a/src/test/ui/panic-implementation/panic-implementation-bad-signature-4.stderr +++ /dev/null @@ -1,11 +0,0 @@ -error: `#[panic_implementation]` function should have no type parameters - --> $DIR/panic-implementation-bad-signature-4.rs:20:1 - | -LL | / fn panic(pi: &PanicInfo) -> ! { -LL | | //~^ ERROR `#[panic_implementation]` function should have no type parameters -LL | | loop {} -LL | | } - | |_^ - -error: aborting due to previous error - diff --git a/src/test/ui/panic-implementation/panic-implementation-deprecated.rs b/src/test/ui/panic-implementation/panic-implementation-deprecated.rs new file mode 100644 index 0000000000000000000000000000000000000000..c4bec01f6af61a59ef0ec990b4906c19e7ea41bf --- /dev/null +++ b/src/test/ui/panic-implementation/panic-implementation-deprecated.rs @@ -0,0 +1,24 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// compile-flags:-C panic=abort + +#![deny(deprecated)] +#![feature(panic_implementation)] +#![no_std] + +use core::panic::PanicInfo; + +#[panic_implementation] +fn panic(info: &PanicInfo) -> ! { + loop {} +} + +fn main() {} diff --git a/src/test/ui/panic-implementation/panic-implementation-deprecated.stderr b/src/test/ui/panic-implementation/panic-implementation-deprecated.stderr new file mode 100644 index 0000000000000000000000000000000000000000..43f51447ac46e05647cf73b39558053088ef9998 --- /dev/null +++ b/src/test/ui/panic-implementation/panic-implementation-deprecated.stderr @@ -0,0 +1,14 @@ +error: use of deprecated attribute `panic_implementation`: This attribute was renamed to `panic_handler`. See https://github.com/rust-lang/rust/issues/44489#issuecomment-415140224 + --> $DIR/panic-implementation-deprecated.rs:19:1 + | +LL | #[panic_implementation] + | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove this attribute + | +note: lint level defined here + --> $DIR/panic-implementation-deprecated.rs:13:9 + | +LL | #![deny(deprecated)] + | ^^^^^^^^^^ + +error: aborting due to previous error + diff --git a/src/test/ui/panic_implementation-closures.rs b/src/test/ui/panic_implementation-closures.rs index 4fa9a639928f98f41ca54f3d9ddfe19f694819fa..6642db6ee76bf25a73a8258866428d2a55735e99 100644 --- a/src/test/ui/panic_implementation-closures.rs +++ b/src/test/ui/panic_implementation-closures.rs @@ -12,9 +12,9 @@ #![crate_type = "rlib"] #![no_std] -#![feature(panic_implementation)] +#![feature(panic_handler)] -#[panic_implementation] +#[panic_handler] pub fn panic_fmt(_: &::core::panic::PanicInfo) -> ! { |x: u8| x; loop {}