Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 0121cc1

Browse files
committed
make generated test pass and make tidy happy
1 parent bb62180 commit 0121cc1

File tree

2 files changed

+70
-26
lines changed

2 files changed

+70
-26
lines changed

crates/ide-assists/src/handlers/add_label_to_loop.rs

Lines changed: 47 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,27 @@ use crate::{AssistContext, AssistId, AssistKind, Assists};
88
// Adds a label to a loop.
99
//
1010
// ```
11-
// loop$0 {
12-
// break;
13-
// continue;
11+
// fn main() {
12+
// loop$0 {
13+
// break;
14+
// continue;
15+
// }
1416
// }
1517
// ```
1618
// ->
1719
// ```
18-
// 'loop: loop {
19-
// break 'loop;
20-
// continue 'loop;
20+
// fn main() {
21+
// 'loop: loop {
22+
// break 'loop;
23+
// continue 'loop;
24+
// }
2125
// }
2226
// ```
2327
pub(crate) fn add_label_to_loop(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
2428
let loop_expr = ctx.find_node_at_offset::<ast::LoopExpr>()?;
29+
if loop_expr.label().is_some() {
30+
return None;
31+
}
2532
let loop_body = loop_expr.loop_body().and_then(|it| it.stmt_list());
2633
let mut related_exprs = vec![];
2734
related_exprs.push(ast::Expr::LoopExpr(loop_expr.clone()));
@@ -53,7 +60,7 @@ pub(crate) fn add_label_to_loop(acc: &mut Assists, ctx: &AssistContext) -> Optio
5360
builder.insert(loop_token.text_range().start(), "'loop: ")
5461
}
5562
}
56-
_ => todo!(),
63+
_ => {}
5764
}
5865
}
5966
},
@@ -62,7 +69,7 @@ pub(crate) fn add_label_to_loop(acc: &mut Assists, ctx: &AssistContext) -> Optio
6269

6370
#[cfg(test)]
6471
mod tests {
65-
use crate::tests::check_assist;
72+
use crate::tests::{check_assist, check_assist_not_applicable};
6673

6774
use super::*;
6875

@@ -72,16 +79,16 @@ mod tests {
7279
add_label_to_loop,
7380
r#"
7481
fn main() {
75-
loop$0 {
76-
break;
77-
continue;
82+
loop$0 {
83+
break;
84+
continue;
7885
}
7986
}"#,
8087
r#"
8188
fn main() {
82-
'loop: loop {
83-
break 'loop;
84-
continue 'loop;
89+
'loop: loop {
90+
break 'loop;
91+
continue 'loop;
8592
}
8693
}"#,
8794
);
@@ -93,9 +100,9 @@ fn main() {
93100
add_label_to_loop,
94101
r#"
95102
fn main() {
96-
loop$0 {
97-
break;
98-
continue;
103+
loop$0 {
104+
break;
105+
continue;
99106
loop {
100107
break;
101108
continue;
@@ -104,9 +111,9 @@ fn main() {
104111
}"#,
105112
r#"
106113
fn main() {
107-
'loop: loop {
108-
break 'loop;
109-
continue 'loop;
114+
'loop: loop {
115+
break 'loop;
116+
continue 'loop;
110117
loop {
111118
break;
112119
continue;
@@ -122,9 +129,9 @@ fn main() {
122129
add_label_to_loop,
123130
r#"
124131
fn main() {
125-
loop {
126-
break;
127-
continue;
132+
loop {
133+
break;
134+
continue;
128135
loop$0 {
129136
break;
130137
continue;
@@ -133,14 +140,28 @@ fn main() {
133140
}"#,
134141
r#"
135142
fn main() {
136-
loop {
137-
break;
138-
continue;
143+
loop {
144+
break;
145+
continue;
139146
'loop: loop {
140147
break 'loop;
141148
continue 'loop;
142149
}
143150
}
151+
}"#,
152+
);
153+
}
154+
155+
#[test]
156+
fn do_not_add_label_if_exists() {
157+
check_assist_not_applicable(
158+
add_label_to_loop,
159+
r#"
160+
fn main() {
161+
'loop: loop$0 {
162+
break 'loop;
163+
continue 'loop;
164+
}
144165
}"#,
145166
);
146167
}

crates/ide-assists/src/tests/generated.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,29 @@ impl Trait<u32> for () {
102102
)
103103
}
104104

105+
#[test]
106+
fn doctest_add_label_to_loop() {
107+
check_doc_test(
108+
"add_label_to_loop",
109+
r#####"
110+
fn main() {
111+
loop$0 {
112+
break;
113+
continue;
114+
}
115+
}
116+
"#####,
117+
r#####"
118+
fn main() {
119+
'loop: loop {
120+
break 'loop;
121+
continue 'loop;
122+
}
123+
}
124+
"#####,
125+
)
126+
}
127+
105128
#[test]
106129
fn doctest_add_lifetime_to_type() {
107130
check_doc_test(

0 commit comments

Comments
 (0)