Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/diagnostics.rs')
-rw-r--r--crates/hir/src/diagnostics.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/crates/hir/src/diagnostics.rs b/crates/hir/src/diagnostics.rs
index b921a5eef1..422b37c67a 100644
--- a/crates/hir/src/diagnostics.rs
+++ b/crates/hir/src/diagnostics.rs
@@ -847,7 +847,7 @@ impl<'db> AnyDiagnostic<'db> {
let span_syntax = |span| Self::span_syntax(span, source_map);
Some(match d {
&InferenceDiagnostic::NoSuchField { field: expr, private, variant } => {
- let expr_or_pat = match expr {
+ let expr_or_pat = match expr.unpack() {
ExprOrPatId::ExprId(expr) => {
source_map.field_syntax(expr).map(AstPtr::wrap_left)
}
@@ -877,7 +877,7 @@ impl<'db> AnyDiagnostic<'db> {
InvalidRangePatType { pat }.into()
}
&InferenceDiagnostic::DuplicateField { field: expr, variant } => {
- let expr_or_pat = match expr {
+ let expr_or_pat = match expr.unpack() {
ExprOrPatId::ExprId(expr) => {
source_map.field_syntax(expr).map(AstPtr::wrap_left)
}
@@ -894,7 +894,7 @@ impl<'db> AnyDiagnostic<'db> {
PrivateField { expr, field }.into()
}
&InferenceDiagnostic::PrivateAssocItem { id, item } => {
- let expr_or_pat = expr_or_pat_syntax(id)?;
+ let expr_or_pat = expr_or_pat_syntax(id.unpack())?;
let item = item.into();
PrivateAssocItem { expr_or_pat, item }.into()
}
@@ -937,11 +937,11 @@ impl<'db> AnyDiagnostic<'db> {
.into()
}
&InferenceDiagnostic::UnresolvedAssocItem { id } => {
- let expr_or_pat = expr_or_pat_syntax(id)?;
+ let expr_or_pat = expr_or_pat_syntax(id.unpack())?;
UnresolvedAssocItem { expr_or_pat }.into()
}
&InferenceDiagnostic::UnresolvedIdent { id } => {
- let node = match id {
+ let node = match id.unpack() {
ExprOrPatId::ExprId(id) => match source_map.expr_syntax(id) {
Ok(syntax) => syntax.map(|it| (it, None)),
Err(SyntheticSyntax) => source_map
@@ -1019,7 +1019,7 @@ impl<'db> AnyDiagnostic<'db> {
Self::ty_diagnostic(diag, source_map, db)?
}
InferenceDiagnostic::PathDiagnostic { node, diag } => {
- let source = expr_or_pat_syntax(*node)?;
+ let source = expr_or_pat_syntax(node.unpack())?;
let syntax = source.value.to_node(&source.file_id.parse_or_expand(db));
let path = match_ast! {
match (syntax.syntax()) {
@@ -1100,7 +1100,7 @@ impl<'db> AnyDiagnostic<'db> {
UnionExprMustHaveExactlyOneField { expr }.into()
}
InferenceDiagnostic::TypeMismatch { node, expected, found } => {
- let expr_or_pat = expr_or_pat_syntax(*node)?;
+ let expr_or_pat = expr_or_pat_syntax(node.unpack())?;
TypeMismatch {
expr_or_pat,
expected: Type { owner: type_owner, ty: EarlyBinder::bind(expected.as_ref()) },
@@ -1120,7 +1120,7 @@ impl<'db> AnyDiagnostic<'db> {
Either::Left(expr)
}
ExplicitDropMethodUseKind::Path(path_expr_id) => {
- let syntax = expr_or_pat_syntax(*path_expr_id)?;
+ let syntax = expr_or_pat_syntax(path_expr_id.unpack())?;
let file_id = syntax.file_id;
let syntax =
syntax.with_value(syntax.value.cast::<ast::PathExpr>()?).to_node(db);