Allow unlabeled breaks from desugared ?
in labeled blocks
This commit is contained in:
parent
ff991d6034
commit
91dcbbbf50
@ -9,6 +9,7 @@ use rustc_middle::hir::map::Map;
|
||||
use rustc_middle::ty::query::Providers;
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
use rustc_session::Session;
|
||||
use rustc_span::hygiene::DesugaringKind;
|
||||
use rustc_span::Span;
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq)]
|
||||
@ -203,7 +204,7 @@ impl<'a, 'hir> CheckLoopVisitor<'a, 'hir> {
|
||||
label: &Destination,
|
||||
cf_type: &str,
|
||||
) -> bool {
|
||||
if self.cx == LabeledBlock {
|
||||
if !span.is_desugaring(DesugaringKind::QuestionMark) && self.cx == LabeledBlock {
|
||||
if label.label.is_none() {
|
||||
struct_span_err!(
|
||||
self.sess,
|
||||
|
12
src/test/ui/label/label_break_value_desugared_break.rs
Normal file
12
src/test/ui/label/label_break_value_desugared_break.rs
Normal file
@ -0,0 +1,12 @@
|
||||
// compile-flags: --edition 2018
|
||||
#![feature(label_break_value, try_blocks)]
|
||||
|
||||
// run-pass
|
||||
fn main() {
|
||||
let _: Result<(), ()> = try {
|
||||
'foo: {
|
||||
Err(())?;
|
||||
break 'foo;
|
||||
}
|
||||
};
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user