Rollup merge of #122843 - WaffleLapkin:semicolon-vs-the-never, r=compiler-errors
Add a never type option to make diverging blocks `()` More experiments for ~~the blood god~~ T-lang! Usage example: ```rust #![allow(internal_features)] #![feature(never_type, rustc_attrs)] #![rustc_never_type_options(diverging_block_default = "unit")] fn main() { let _: u8 = { //~ error: expected `u8`, found `()` return; }; } ``` r? compiler-errors I'm not sure how I feel about parsing the attribute every time we create `FnCtxt`. There must be a better way to do this, right?
This commit is contained in:
commit
b469a6dd9b
5 changed files with 111 additions and 41 deletions
|
@ -691,6 +691,7 @@ symbols! {
|
|||
dispatch_from_dyn,
|
||||
div,
|
||||
div_assign,
|
||||
diverging_block_default,
|
||||
do_not_recommend,
|
||||
doc,
|
||||
doc_alias,
|
||||
|
@ -816,9 +817,7 @@ symbols! {
|
|||
fadd_algebraic,
|
||||
fadd_fast,
|
||||
fake_variadic,
|
||||
fallback_to_never,
|
||||
fallback_to_niko,
|
||||
fallback_to_unit,
|
||||
fallback,
|
||||
fdiv_algebraic,
|
||||
fdiv_fast,
|
||||
feature,
|
||||
|
@ -1230,6 +1229,7 @@ symbols! {
|
|||
new_v1,
|
||||
new_v1_formatted,
|
||||
next,
|
||||
niko,
|
||||
nll,
|
||||
no,
|
||||
no_builtins,
|
||||
|
@ -1238,7 +1238,6 @@ symbols! {
|
|||
no_crate_inject,
|
||||
no_debug,
|
||||
no_default_passes,
|
||||
no_fallback,
|
||||
no_implicit_prelude,
|
||||
no_inline,
|
||||
no_link,
|
||||
|
@ -1556,7 +1555,7 @@ symbols! {
|
|||
rustc_mir,
|
||||
rustc_must_implement_one_of,
|
||||
rustc_never_returns_null_ptr,
|
||||
rustc_never_type_mode,
|
||||
rustc_never_type_options,
|
||||
rustc_no_mir_inline,
|
||||
rustc_nonnull_optimization_guaranteed,
|
||||
rustc_nounwind,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue