Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5cee9d3

Browse files
committed
test: Add a test for id on any Title
1 parent e72952b commit 5cee9d3

File tree

1 file changed

+112
-0
lines changed

1 file changed

+112
-0
lines changed

‎tests/formatter.rs‎

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2587,3 +2587,115 @@ LL | let s: &str = include_bytes!("file.txt"); //~ ERROR mismatched types
25872587
let renderer = Renderer::plain().anonymized_line_numbers(true);
25882588
assert_data_eq!(renderer.render(input), expected);
25892589
}
2590+
2591+
#[test]
2592+
fn id_on_title() {
2593+
let source = r#"// Regression test for issue #114529
2594+
// Tests that we do not ICE during const eval for a
2595+
// break-with-value in contexts where it is illegal
2596+
2597+
#[allow(while_true)]
2598+
fn main() {
2599+
[(); {
2600+
while true {
2601+
break 9; //~ ERROR `break` with value from a `while` loop
2602+
};
2603+
51
2604+
}];
2605+
2606+
[(); {
2607+
while let Some(v) = Some(9) {
2608+
break v; //~ ERROR `break` with value from a `while` loop
2609+
};
2610+
51
2611+
}];
2612+
2613+
while true {
2614+
break (|| { //~ ERROR `break` with value from a `while` loop
2615+
let local = 9;
2616+
});
2617+
}
2618+
}
2619+
"#;
2620+
let input = Level::ERROR
2621+
.header("`break` with value from a `while` loop")
2622+
.id("E0571")
2623+
.group(
2624+
Group::new().element(
2625+
Snippet::source(source)
2626+
.line_start(1)
2627+
.path("$DIR/issue-114529-illegal-break-with-value.rs")
2628+
.fold(true)
2629+
.annotation(
2630+
AnnotationKind::Primary
2631+
.span(483..581)
2632+
.label("can only break with a value inside `loop` or breakable block"),
2633+
)
2634+
.annotation(
2635+
AnnotationKind::Context
2636+
.span(462..472)
2637+
.label("you can't `break` with a value in a `while` loop"),
2638+
),
2639+
),
2640+
)
2641+
.group(
2642+
Group::new()
2643+
.element(
2644+
Level::HELP
2645+
.text(Some("suggestion[S0123]"))
2646+
.title("use `break` on its own without a value inside this `while` loop"),
2647+
)
2648+
.element(
2649+
Snippet::source(source)
2650+
.line_start(1)
2651+
.path("$DIR/issue-114529-illegal-break-with-value.rs")
2652+
.fold(true)
2653+
.patch(Patch::new(483..581, "break")),
2654+
),
2655+
);
2656+
2657+
let expected_ascii = str![[r#"
2658+
error[E0571]: `break` with value from a `while` loop
2659+
--> $DIR/issue-114529-illegal-break-with-value.rs:22:9
2660+
|
2661+
LL | while true {
2662+
| ---------- you can't `break` with a value in a `while` loop
2663+
LL | / break (|| { //~ ERROR `break` with value from a `while` loop
2664+
LL | | let local = 9;
2665+
LL | | });
2666+
| |__________^ can only break with a value inside `loop` or breakable block
2667+
|
2668+
suggestion[S0123]: use `break` on its own without a value inside this `while` loop
2669+
|
2670+
LL - break (|| { //~ ERROR `break` with value from a `while` loop
2671+
LL - let local = 9;
2672+
LL - });
2673+
LL + break;
2674+
|
2675+
"#]];
2676+
2677+
let renderer_ascii = Renderer::plain().anonymized_line_numbers(true);
2678+
assert_data_eq!(renderer_ascii.render(input.clone()), expected_ascii);
2679+
2680+
let expected_unicode = str![[r#"
2681+
error[E0571]: `break` with value from a `while` loop
2682+
╭▸ $DIR/issue-114529-illegal-break-with-value.rs:22:9
2683+
2684+
LL │ while true {
2685+
│ ────────── you can't `break` with a value in a `while` loop
2686+
LL │ ┏ break (|| { //~ ERROR `break` with value from a `while` loop
2687+
LL │ ┃ let local = 9;
2688+
LL │ ┃ });
2689+
│ ┗━━━━━━━━━━┛ can only break with a value inside `loop` or breakable block
2690+
╰╴
2691+
suggestion[S0123]: use `break` on its own without a value inside this `while` loop
2692+
╭╴
2693+
LL - break (|| { //~ ERROR `break` with value from a `while` loop
2694+
LL - let local = 9;
2695+
LL - });
2696+
LL + break;
2697+
╰╴
2698+
"#]];
2699+
let renderer_unicode = renderer_ascii.theme(OutputTheme::Unicode);
2700+
assert_data_eq!(renderer_unicode.render(input), expected_unicode);
2701+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /