Bump chalk

This commit is contained in:
Laurențiu Nicola 2021-12-04 15:08:43 +02:00
parent 89a1256f9a
commit 26aba38168
4 changed files with 34 additions and 24 deletions

View file

@ -3,8 +3,8 @@
use std::{fmt, mem, sync::Arc};
use chalk_ir::{
cast::Cast, fold::Fold, interner::HasInterner, zip::Zip, FloatTy, IntTy, TyVariableKind,
UniverseIndex,
cast::Cast, fold::Fold, interner::HasInterner, zip::Zip, FloatTy, IntTy, NoSolution,
TyVariableKind, UniverseIndex,
};
use chalk_solve::infer::ParameterEnaVariableExt;
use ena::unify::UnifyKey;
@ -412,7 +412,9 @@ impl<'a> InferenceTable<'a> {
highest_known_var: InferenceVar,
}
impl<'a, 'b> Folder<'static, Interner> for VarFudger<'a, 'b> {
fn as_dyn(&mut self) -> &mut dyn Folder<'static, Interner> {
type Error = NoSolution;
fn as_dyn(&mut self) -> &mut dyn Folder<'static, Interner, Error = Self::Error> {
self
}
@ -538,7 +540,7 @@ mod resolve {
use chalk_ir::{
cast::Cast,
fold::{Fold, Folder},
Fallible,
Fallible, NoSolution,
};
use hir_def::type_ref::ConstScalar;
@ -551,7 +553,9 @@ mod resolve {
where
F: Fn(InferenceVar, VariableKind, GenericArg, DebruijnIndex) -> GenericArg + 'i,
{
fn as_dyn(&mut self) -> &mut dyn Folder<'i, Interner> {
type Error = NoSolution;
fn as_dyn(&mut self) -> &mut dyn Folder<'i, Interner, Error = Self::Error> {
self
}

View file

@ -35,7 +35,7 @@ use std::sync::Arc;
use chalk_ir::{
fold::{Fold, Shift},
interner::HasInterner,
UintTy,
NoSolution, UintTy,
};
use hir_def::{
expr::ExprId,
@ -228,11 +228,11 @@ impl CallableSig {
impl Fold<Interner> for CallableSig {
type Result = CallableSig;
fn fold_with<'i>(
fn fold_with<'i, E>(
self,
folder: &mut dyn chalk_ir::fold::Folder<'i, Interner>,
folder: &mut dyn chalk_ir::fold::Folder<'i, Interner, Error = E>,
outer_binder: DebruijnIndex,
) -> chalk_ir::Fallible<Self::Result>
) -> Result<Self::Result, E>
where
Interner: 'i,
{
@ -282,7 +282,9 @@ pub(crate) fn fold_free_vars<T: HasInterner<Interner = Interner> + Fold<Interner
use chalk_ir::{fold::Folder, Fallible};
struct FreeVarFolder<F>(F);
impl<'i, F: FnMut(BoundVar, DebruijnIndex) -> Ty + 'i> Folder<'i, Interner> for FreeVarFolder<F> {
fn as_dyn(&mut self) -> &mut dyn Folder<'i, Interner> {
type Error = NoSolution;
fn as_dyn(&mut self) -> &mut dyn Folder<'i, Interner, Error = Self::Error> {
self
}
@ -312,7 +314,9 @@ pub(crate) fn fold_tys<T: HasInterner<Interner = Interner> + Fold<Interner>>(
};
struct TyFolder<F>(F);
impl<'i, F: FnMut(Ty, DebruijnIndex) -> Ty + 'i> Folder<'i, Interner> for TyFolder<F> {
fn as_dyn(&mut self) -> &mut dyn Folder<'i, Interner> {
type Error = NoSolution;
fn as_dyn(&mut self) -> &mut dyn Folder<'i, Interner, Error = Self::Error> {
self
}
@ -338,13 +342,15 @@ where
{
use chalk_ir::{
fold::{Folder, SuperFold},
Fallible, NoSolution,
Fallible,
};
struct ErrorReplacer {
vars: usize,
}
impl<'i> Folder<'i, Interner> for ErrorReplacer {
fn as_dyn(&mut self) -> &mut dyn Folder<'i, Interner> {
type Error = NoSolution;
fn as_dyn(&mut self) -> &mut dyn Folder<'i, Interner, Error = Self::Error> {
self
}