Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/hir-ty/src/infer.rs2
-rw-r--r--crates/hir-ty/src/infer/expr.rs5
-rw-r--r--crates/hir/src/semantics.rs8
-rw-r--r--crates/hir/src/source_analyzer.rs15
4 files changed, 0 insertions, 30 deletions
diff --git a/crates/hir-ty/src/infer.rs b/crates/hir-ty/src/infer.rs
index 05776e1921..31e56dec62 100644
--- a/crates/hir-ty/src/infer.rs
+++ b/crates/hir-ty/src/infer.rs
@@ -333,8 +333,6 @@ pub struct InferenceResult {
assoc_resolutions: FxHashMap<ExprOrPatId, AssocItemId>,
pub diagnostics: Vec<InferenceDiagnostic>,
pub type_of_expr: ArenaMap<ExprId, Ty>,
- /// For each match expr, record diverging arm's expr.
- pub diverging_arms: FxHashMap<ExprId, Vec<ExprId>>,
/// For each pattern record the type it resolves to.
///
/// **Note**: When a pattern type is resolved it may still contain
diff --git a/crates/hir-ty/src/infer/expr.rs b/crates/hir-ty/src/infer/expr.rs
index 3d2e091a0f..f56108b26c 100644
--- a/crates/hir-ty/src/infer/expr.rs
+++ b/crates/hir-ty/src/infer/expr.rs
@@ -375,7 +375,6 @@ impl<'a> InferenceContext<'a> {
let matchee_diverges = self.diverges;
let mut all_arms_diverge = Diverges::Always;
- let mut diverging_arms = Vec::new();
for arm in arms.iter() {
self.diverges = Diverges::Maybe;
@@ -388,15 +387,11 @@ impl<'a> InferenceContext<'a> {
}
let arm_ty = self.infer_expr_inner(arm.expr, &expected);
- if self.diverges.is_always() {
- diverging_arms.push(arm.expr);
- }
all_arms_diverge &= self.diverges;
coerce.coerce(self, Some(arm.expr), &arm_ty);
}
self.diverges = matchee_diverges | all_arms_diverge;
- self.result.diverging_arms.insert(tgt_expr, diverging_arms);
coerce.complete()
}
diff --git a/crates/hir/src/semantics.rs b/crates/hir/src/semantics.rs
index 2f835657d3..119ec3210e 100644
--- a/crates/hir/src/semantics.rs
+++ b/crates/hir/src/semantics.rs
@@ -481,10 +481,6 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> {
pub fn is_unsafe_ident_pat(&self, ident_pat: &ast::IdentPat) -> bool {
self.imp.is_unsafe_ident_pat(ident_pat)
}
-
- pub fn is_diverging_match_arm(&self, match_arm: &ast::MatchArm) -> Option<bool> {
- self.imp.is_diverging_match_arm(match_arm)
- }
}
impl<'db> SemanticsImpl<'db> {
@@ -1425,10 +1421,6 @@ impl<'db> SemanticsImpl<'db> {
.map(|ty| ty.original.is_packed(self.db))
.unwrap_or(false)
}
-
- fn is_diverging_match_arm(&self, match_arm: &ast::MatchArm) -> Option<bool> {
- self.analyze(match_arm.syntax())?.is_diverging_match_arm(self.db, match_arm)
- }
}
fn macro_call_to_macro_id(
diff --git a/crates/hir/src/source_analyzer.rs b/crates/hir/src/source_analyzer.rs
index 2e61946a73..f86c571005 100644
--- a/crates/hir/src/source_analyzer.rs
+++ b/crates/hir/src/source_analyzer.rs
@@ -782,21 +782,6 @@ impl SourceAnalyzer {
false
}
- pub(crate) fn is_diverging_match_arm(
- &self,
- db: &dyn HirDatabase,
- match_arm: &ast::MatchArm,
- ) -> Option<bool> {
- let infer = self.infer.as_ref()?;
- let match_expr = match_arm.syntax().ancestors().find_map(ast::MatchExpr::cast)?;
- let match_id = self.expr_id(db, &match_expr.into())?;
- let diverging_arms = infer.diverging_arms.get(&match_id)?;
- let match_arm_expr = match_arm.expr()?;
- let match_arm_expr_id = self.expr_id(db, &match_arm_expr)?;
-
- Some(diverging_arms.contains(&match_arm_expr_id))
- }
-
fn resolve_impl_method_or_trait_def(
&self,
db: &dyn HirDatabase,