Unnamed repository; edit this file 'description' to name the repository.
Address code review comments
unexge 2023-04-27
parent 734fe66 · commit a2ab7ee
-rw-r--r--crates/ide-assists/src/handlers/unwrap_result_return_type.rs15
1 files changed, 6 insertions, 9 deletions
diff --git a/crates/ide-assists/src/handlers/unwrap_result_return_type.rs b/crates/ide-assists/src/handlers/unwrap_result_return_type.rs
index 8b6c614219..26f3c19261 100644
--- a/crates/ide-assists/src/handlers/unwrap_result_return_type.rs
+++ b/crates/ide-assists/src/handlers/unwrap_result_return_type.rs
@@ -5,7 +5,7 @@ use ide_db::{
use itertools::Itertools;
use syntax::{
ast::{self, Expr},
- match_ast, AstNode, NodeOrToken, SyntaxKind, TextRange, TextSize,
+ match_ast, AstNode, NodeOrToken, SyntaxKind, TextRange,
};
use crate::{AssistContext, AssistId, AssistKind, Assists};
@@ -71,10 +71,7 @@ pub(crate) fn unwrap_result_return_type(acc: &mut Assists, ctx: &AssistContext<'
if let Some(NodeOrToken::Token(token)) = ret_type.syntax().next_sibling_or_token() {
if token.kind() == SyntaxKind::WHITESPACE {
- text_range = TextRange::new(
- text_range.start(),
- text_range.end() + TextSize::from(1u32),
- );
+ text_range = TextRange::new(text_range.start(), token.text_range().end());
}
}
@@ -134,11 +131,11 @@ fn tail_cb_impl(acc: &mut Vec<ast::Expr>, e: &ast::Expr) {
// Tries to extract `T` from `Result<T, E>`.
fn unwrap_result_type(ty: &ast::Type) -> Option<ast::Type> {
let ast::Type::PathType(path_ty) = ty else { return None; };
- let Some(path) = path_ty.path() else { return None; };
- let Some(segment) = path.first_segment() else { return None; };
- let Some(generic_arg_list) = segment.generic_arg_list() else { return None; };
+ let path = path_ty.path()?;
+ let segment = path.first_segment()?;
+ let generic_arg_list = segment.generic_arg_list()?;
let generic_args: Vec<_> = generic_arg_list.generic_args().collect();
- let Some(ast::GenericArg::TypeArg(ok_type)) = generic_args.first() else { return None; };
+ let ast::GenericArg::TypeArg(ok_type) = generic_args.first()? else { return None; };
ok_type.ty()
}