8000 test: Add a test for id on any Title · Muscraft/annotate-snippets-rs@5cee9d3 · GitHub
[go: up one dir, main page]

Skip to content

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)
0