about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArtur Sinila <personal@logarithmus.dev>2022-07-17 20:35:34 +0300
committerArtur Sinila <personal@logarithmus.dev>2022-07-17 20:35:34 +0300
commitd9336a496c666a3b8976e5a475c769f34673aeed (patch)
treead94fbc7950855e2e6a2392b056c69861a78733d
parentdb6a85d3583e472645b03be93bb5763431035008 (diff)
downloadrust-d9336a496c666a3b8976e5a475c769f34673aeed.tar.gz
rust-d9336a496c666a3b8976e5a475c769f34673aeed.zip
fix: un-inline `ConstScalarOrPath::from_expr_opt`
-rw-r--r--crates/hir-def/src/type_ref.rs6
1 files changed, 2 insertions, 4 deletions
diff --git a/crates/hir-def/src/type_ref.rs b/crates/hir-def/src/type_ref.rs
index 867d82f45a7..6be78745f12 100644
--- a/crates/hir-def/src/type_ref.rs
+++ b/crates/hir-def/src/type_ref.rs
@@ -411,9 +411,7 @@ impl ConstScalarOrPath {
             }
             ast::Expr::PrefixExpr(prefix_expr) => match prefix_expr.op_kind() {
                 Some(ast::UnaryOp::Neg) => {
-                    let unsigned = prefix_expr
-                        .expr()
-                        .map_or(Self::Scalar(ConstScalar::Unknown), Self::from_expr);
+                    let unsigned = Self::from_expr_opt(prefix_expr.expr());
                     // Add sign
                     match unsigned {
                         Self::Scalar(ConstScalar::UInt(num)) => {
@@ -422,7 +420,7 @@ impl ConstScalarOrPath {
                         other => other,
                     }
                 }
-                _ => prefix_expr.expr().map_or(Self::Scalar(ConstScalar::Unknown), Self::from_expr),
+                _ => Self::from_expr_opt(prefix_expr.expr()),
             },
             ast::Expr::Literal(literal) => Self::Scalar(match literal.kind() {
                 ast::LiteralKind::IntNumber(num) => {