rust/compiler/rustc_hir/src
bors 25b21a1d16 Auto merge of #93179 - Urgau:unreachable-2021, r=m-ou-se,oli-obk
Fix invalid special casing of the unreachable! macro

This pull-request fix an invalid special casing of the `unreachable!` macro in the same way the `panic!` macro was solved, by adding two new internal only macros `unreachable_2015` and `unreachable_2021` edition dependent and turn `unreachable!` into a built-in macro that do dispatching. This logic is stolen from the `panic!` macro.

~~This pull-request also adds an internal feature `format_args_capture_non_literal` that allows capturing arguments from formatted string that expanded from macros. The original RFC #2795 mentioned this as a future possibility. This feature is [required](https://github.com/rust-lang/rust/issues/92137#issuecomment-1018630522) because of concatenation that needs to be done inside the macro:~~
```rust
$crate::concat!("internal error: entered unreachable code: ", $fmt)
```

**In summary** the new behavior for the `unreachable!` macro with this pr is:

Edition 2021:
```rust
let x = 5;
unreachable!("x is {x}");
```
```
internal error: entered unreachable code: x is 5
```

Edition <= 2018:
```rust
let x = 5;
unreachable!("x is {x}");
```
```
internal error: entered unreachable code: x is {x}
```

Also note that the change in this PR are **insta-stable** and **breaking changes** but this a considered as being a [bug](https://github.com/rust-lang/rust/issues/92137#issuecomment-998441613).
If someone could start a perf run and then a crater run this would be appreciated.

Fixes https://github.com/rust-lang/rust/issues/92137
2022-02-07 00:26:52 +00:00
..
arena.rs Remove deprecated LLVM-style inline assembly 2022-01-12 18:51:31 +01:00
def.rs Remove invalid doc links. 2021-12-13 20:40:17 +00:00
def_path_hash_map.rs Use on-disk-hash-table format for DefPathHashMap in hir::definitions. 2021-09-14 13:54:41 +02:00
definitions.rs Store def_id_to_hir_id as variant in hir_owner. 2022-01-27 10:46:40 -03:00
diagnostic_items.rs Introduce get_diagnostic_name 2021-10-06 08:40:28 -05:00
hir.rs Auto merge of #93285 - JulianKnodt:const_eq_2, r=oli-obk 2022-02-01 23:18:01 +00:00
hir_id.rs Store def_id_to_hir_id as variant in hir_owner. 2022-01-27 10:46:40 -03:00
intravisit.rs Remove a span from hir::ExprKind::MethodCall 2022-01-21 07:48:10 -06:00
itemlikevisit.rs Store ForeignItem in a side table. 2020-11-26 21:29:27 +01:00
lang_items.rs Take in account the unreachable! macro in the non_fmt_panic lint 2022-01-31 17:09:31 +01:00
lib.rs Replace NestedVisitorMap with NestedFilter 2022-01-16 16:02:36 -06:00
pat_util.rs Simplify for loop desugar 2021-11-21 08:15:21 -06:00
stable_hash_impls.rs Store hir_id_to_def_id in OwnerInfo. 2022-01-25 15:05:19 -03:00
target.rs Treat macros as HIR items 2021-08-28 00:16:34 -07:00
tests.rs Revert "Revert "Fix test"" 2021-07-06 11:28:06 +02:00
weak_lang_items.rs Clean up lang_items::extract 2022-01-09 13:41:04 -08:00