Fix tests by importing core::ops::Deref

This commit is contained in:
Teddy_Wang 2021-09-11 11:40:16 -04:00
parent 67a9c457e6
commit 1d4d9a1e1a

View file

@ -243,7 +243,9 @@ fn hover_ranged(
})?; })?;
let res = match &expr_or_pat { let res = match &expr_or_pat {
Either::Left(ast::Expr::TryExpr(try_expr)) => hover_try_expr(sema, config, try_expr), Either::Left(ast::Expr::TryExpr(try_expr)) => hover_try_expr(sema, config, try_expr),
Either::Left(ast::Expr::PrefixExpr(prefix_expr)) if prefix_expr.op_kind() == Some(ast::UnaryOp::Deref) => { Either::Left(ast::Expr::PrefixExpr(prefix_expr))
if prefix_expr.op_kind() == Some(ast::UnaryOp::Deref) =>
{
hover_deref_expr(sema, config, prefix_expr) hover_deref_expr(sema, config, prefix_expr)
} }
_ => None, _ => None,
@ -355,7 +357,8 @@ fn hover_deref_expr(
deref_expr: &ast::PrefixExpr, deref_expr: &ast::PrefixExpr,
) -> Option<HoverResult> { ) -> Option<HoverResult> {
let inner_ty = sema.type_of_expr(&deref_expr.expr()?)?.original; let inner_ty = sema.type_of_expr(&deref_expr.expr()?)?.original;
let TypeInfo { original, adjusted } = sema.type_of_expr(&ast::Expr::from(deref_expr.clone()))?; let TypeInfo { original, adjusted } =
sema.type_of_expr(&ast::Expr::from(deref_expr.clone()))?;
let mut res = HoverResult::default(); let mut res = HoverResult::default();
let mut targets: Vec<hir::ModuleDef> = Vec::new(); let mut targets: Vec<hir::ModuleDef> = Vec::new();
@ -375,7 +378,9 @@ fn hover_deref_expr(
let type_len = "Type: ".len(); let type_len = "Type: ".len();
let coerced_len = "Coerced to: ".len(); let coerced_len = "Coerced to: ".len();
let deref_len = "Derefenced from: ".len(); let deref_len = "Derefenced from: ".len();
let max_len = (original.len() + type_len).max(adjusted.len() + coerced_len).max(inner.len() + deref_len); let max_len = (original.len() + type_len)
.max(adjusted.len() + coerced_len)
.max(inner.len() + deref_len);
format!( format!(
"{bt_start}Type: {:>apad$}\nCoerced to: {:>opad$}\nDerefenced from: {:>ipad$}\n{bt_end}", "{bt_start}Type: {:>apad$}\nCoerced to: {:>opad$}\nDerefenced from: {:>ipad$}\n{bt_end}",
original, original,
@ -4511,12 +4516,13 @@ fn foo() -> Option<()> {
); );
} }
#[test] #[test]
fn hover_deref_expr() { fn hover_deref_expr() {
check_hover_range( check_hover_range(
r#" r#"
//- minicore: deref //- minicore: deref
use core::ops::Deref;
struct DerefExample<T> { struct DerefExample<T> {
value: T value: T
} }
@ -4548,6 +4554,8 @@ fn foo() {
check_hover_range( check_hover_range(
r#" r#"
//- minicore: deref //- minicore: deref
use core::ops::Deref;
struct DerefExample<T> { struct DerefExample<T> {
value: T value: T
} }