Skip to content

Commit 2579dc6

Browse files
committed
Update inline_call assist doc example
1 parent 2bc4f9e commit 2579dc6

File tree

4 files changed

+33
-32
lines changed

4 files changed

+33
-32
lines changed

crates/ide_assists/src/handlers/inline_call.rs

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,18 @@ use crate::{
1717
// Inlines a function or method body.
1818
//
1919
// ```
20-
// fn align(a: u32, b: u32) -> u32 {
21-
// (a + b - 1) & !(b - 1)
22-
// }
23-
// fn main() {
24-
// let x = align$0(1, 2);
20+
// # //- minicore: option
21+
// fn foo(name: Option<&str>) {
22+
// let name = name.unwrap$0();
2523
// }
2624
// ```
2725
// ->
2826
// ```
29-
// fn align(a: u32, b: u32) -> u32 {
30-
// (a + b - 1) & !(b - 1)
31-
// }
32-
// fn main() {
33-
// let x = {
34-
// let b = 2;
35-
// (1 + b - 1) & !(b - 1)
36-
// };
27+
// fn foo(name: Option<&str>) {
28+
// let name = match name {
29+
// Some(val) => val,
30+
// None => panic!("called `Option::unwrap()` on a `None` value"),
31+
// };
3732
// }
3833
// ```
3934
pub(crate) fn inline_call(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {

crates/ide_assists/src/tests/generated.rs

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -923,22 +923,17 @@ fn doctest_inline_call() {
923923
check_doc_test(
924924
"inline_call",
925925
r#####"
926-
fn align(a: u32, b: u32) -> u32 {
927-
(a + b - 1) & !(b - 1)
928-
}
929-
fn main() {
930-
let x = align$0(1, 2);
926+
//- minicore: option
927+
fn foo(name: Option<&str>) {
928+
let name = name.unwrap$0();
931929
}
932930
"#####,
933931
r#####"
934-
fn align(a: u32, b: u32) -> u32 {
935-
(a + b - 1) & !(b - 1)
936-
}
937-
fn main() {
938-
let x = {
939-
let b = 2;
940-
(1 + b - 1) & !(b - 1)
941-
};
932+
fn foo(name: Option<&str>) {
933+
let name = match name {
934+
Some(val) => val,
935+
None => panic!("called `Option::unwrap()` on a `None` value"),
936+
};
942937
}
943938
"#####,
944939
)

crates/syntax/src/ted.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,14 @@ fn ws_before(position: &Position, new: &SyntaxElement) -> Option<SyntaxToken> {
161161
}
162162
}
163163

164+
if prev.kind() == T!['{'] && ast::Stmt::can_cast(new.kind()) {
165+
if let Some(block_expr) = prev.parent().and_then(ast::BlockExpr::cast) {
166+
let mut indent = IndentLevel::from_element(&block_expr.syntax().clone().into());
167+
indent.0 += 1;
168+
return Some(make::tokens::whitespace(&format!("\n{}", indent)));
169+
}
170+
}
171+
164172
ws_between(prev, new)
165173
}
166174
fn ws_after(position: &Position, new: &SyntaxElement) -> Option<SyntaxToken> {
@@ -187,12 +195,6 @@ fn ws_between(left: &SyntaxElement, right: &SyntaxElement) -> Option<SyntaxToken
187195
return None;
188196
}
189197

190-
if left.kind() == T!['{'] && right.kind() == SyntaxKind::LET_STMT {
191-
let mut indent = IndentLevel::from_element(left);
192-
indent.0 += 1;
193-
return Some(make::tokens::whitespace(&format!("\n{}", indent)));
194-
}
195-
196198
if right.kind() == SyntaxKind::USE {
197199
let mut indent = IndentLevel::from_element(left);
198200
if left.kind() == SyntaxKind::USE {

crates/test_utils/src/minicore.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,15 @@ pub mod option {
330330
#[lang = "Some"]
331331
Some(T),
332332
}
333+
334+
impl<T> Option<T> {
335+
pub const fn unwrap(self) -> T {
336+
match self {
337+
Some(val) => val,
338+
None => panic!("called `Option::unwrap()` on a `None` value"),
339+
}
340+
}
341+
}
333342
}
334343
// endregion:option
335344

0 commit comments

Comments
 (0)