Collect HirDisplay impls to a single file

This commit is contained in:
oxalica 2021-03-14 17:36:04 +08:00
parent ef48d1ca3b
commit b9c172a977
No known key found for this signature in database
GPG key ID: CED392DE0C483D00
2 changed files with 27 additions and 20 deletions

View file

@ -29,6 +29,8 @@ mod has_source;
pub mod diagnostics;
pub mod db;
mod display;
use std::{iter, sync::Arc};
use arrayvec::ArrayVec;
@ -50,7 +52,6 @@ use hir_def::{
use hir_expand::{diagnostics::DiagnosticSink, name::name, MacroDefKind};
use hir_ty::{
autoderef,
display::{write_bounds_like_dyn_trait_with_prefix, HirDisplayError, HirFormatter},
method_resolution::{self, TyFingerprint},
to_assoc_type_id,
traits::{FnTrait, Solution, SolutionVariables},
@ -1412,19 +1413,6 @@ impl TypeParam {
}
}
impl HirDisplay for TypeParam {
fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> {
write!(f, "{}", self.name(f.db))?;
let bounds = f.db.generic_predicates_for_param(self.id);
let substs = Substs::type_params(f.db, self.id.parent);
let predicates = bounds.iter().cloned().map(|b| b.subst(&substs)).collect::<Vec<_>>();
if !(predicates.is_empty() || f.omit_verbose_types()) {
write_bounds_like_dyn_trait_with_prefix(":", &predicates, f)?;
}
Ok(())
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub struct LifetimeParam {
pub(crate) id: LifetimeParamId,
@ -2054,12 +2042,6 @@ impl Type {
}
}
impl HirDisplay for Type {
fn hir_fmt(&self, f: &mut HirFormatter) -> Result<(), HirDisplayError> {
self.ty.value.hir_fmt(f)
}
}
// FIXME: closures
#[derive(Debug)]
pub struct Callable {