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)]
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,
--- /dev/null
+// compile-flags: --edition 2018
+#![feature(label_break_value, try_blocks)]
+
+// run-pass
+fn main() {
+ let _: Result<(), ()> = try {
+ 'foo: {
+ Err(())?;
+ break 'foo;
+ }
+ };
+}