about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAli Bektas <bektasali@protonmail.com>2023-09-10 23:15:37 +0200
committerAli Bektas <bektasali@protonmail.com>2023-09-10 23:15:37 +0200
commit2fdf7e4b752c8ac50585879163a3aebccfa82d4f (patch)
treed470f2efe64db72649b8b070f092640888830b81
parenta66dbd11ed1501c0efbea265f76bc92147554ab7 (diff)
downloadrust-2fdf7e4b752c8ac50585879163a3aebccfa82d4f.tar.gz
rust-2fdf7e4b752c8ac50585879163a3aebccfa82d4f.zip
v3
-rw-r--r--crates/ide-assists/src/handlers/convert_comment_block.rs16
-rw-r--r--crates/ide-assists/src/handlers/desugar_doc_comment.rs6
2 files changed, 8 insertions, 14 deletions
diff --git a/crates/ide-assists/src/handlers/convert_comment_block.rs b/crates/ide-assists/src/handlers/convert_comment_block.rs
index a850d28e918..1f048ac10fa 100644
--- a/crates/ide-assists/src/handlers/convert_comment_block.rs
+++ b/crates/ide-assists/src/handlers/convert_comment_block.rs
@@ -25,9 +25,7 @@ pub(crate) fn convert_comment_block(acc: &mut Assists, ctx: &AssistContext<'_>)
     let comment = ctx.find_token_at_offset::<ast::Comment>()?;
     // Only allow comments which are alone on their line
     if let Some(prev) = comment.syntax().prev_token() {
-        if Whitespace::cast(prev).filter(|w| w.text().contains('\n')).is_none() {
-            return None;
-        }
+        Whitespace::cast(prev).filter(|w| w.text().contains('\n'))?;
     }
 
     match comment.kind().shape {
@@ -86,10 +84,8 @@ fn line_to_block(acc: &mut Assists, comment: ast::Comment) -> Option<()> {
     // contents of each line comment when they're put into the block comment.
     let indentation = IndentLevel::from_token(comment.syntax());
 
-    let cms = comments
-        .into_iter()
-        .map(|c| line_comment_text(indentation, c))
-        .collect::<Option<Vec<String>>>()?;
+    let cms =
+        comments.into_iter().map(|c| line_comment_text(indentation, c)).collect::<Vec<String>>();
 
     acc.add(
         AssistId("line_to_block", AssistKind::RefactorRewrite),
@@ -163,16 +159,16 @@ pub(crate) fn relevant_line_comments(comment: &ast::Comment) -> Vec<Comment> {
 //              */
 //
 // But since such comments aren't idiomatic we're okay with this.
-pub(crate) fn line_comment_text(indentation: IndentLevel, comm: ast::Comment) -> Option<String> {
+pub(crate) fn line_comment_text(indentation: IndentLevel, comm: ast::Comment) -> String {
     let text = comm.text();
     let contents_without_prefix = text.strip_prefix(comm.prefix()).unwrap_or(text);
     let contents = contents_without_prefix.strip_prefix(' ').unwrap_or(contents_without_prefix);
 
     // Don't add the indentation if the line is empty
     if contents.is_empty() {
-        Some(contents.to_owned())
+        contents.to_owned()
     } else {
-        Some(indentation.to_string() + contents)
+        indentation.to_string() + contents
     }
 }
 
diff --git a/crates/ide-assists/src/handlers/desugar_doc_comment.rs b/crates/ide-assists/src/handlers/desugar_doc_comment.rs
index 2f8cef1e4a7..b7919bd1502 100644
--- a/crates/ide-assists/src/handlers/desugar_doc_comment.rs
+++ b/crates/ide-assists/src/handlers/desugar_doc_comment.rs
@@ -33,9 +33,7 @@ pub(crate) fn desugar_doc_comment(acc: &mut Assists, ctx: &AssistContext<'_>) ->
 
     // Only allow comments which are alone on their line
     if let Some(prev) = comment.syntax().prev_token() {
-        if Whitespace::cast(prev).filter(|w| w.text().contains('\n')).is_none() {
-            return None;
-        }
+        Whitespace::cast(prev).filter(|w| w.text().contains('\n'))?;
     }
 
     let indentation = IndentLevel::from_token(comment.syntax()).to_string();
@@ -69,7 +67,7 @@ pub(crate) fn desugar_doc_comment(acc: &mut Assists, ctx: &AssistContext<'_>) ->
         Either::Right(comments) => comments
             .into_iter()
             .map(|cm| line_comment_text(IndentLevel(0), cm))
-            .collect::<Option<Vec<_>>>()?
+            .collect::<Vec<_>>()
             .join("\n"),
     };