Rollup merge of #109749 - compiler-errors:new-solver-float-var, r=lcnr
Canonicalize float var as float in new solver Typo in new canonicalizer -- we should be canonicalizing float vars as `CanonicalTyVarKind::Float`, not `CanonicalTyVarKind::Int`. Fixes compiler-errors/next-solver-hir-issues#9
This commit is contained in:
commit
e1f4ddfdd9
2 changed files with 9 additions and 1 deletions
|
@ -291,7 +291,7 @@ impl<'tcx> TypeFolder<TyCtxt<'tcx>> for Canonicalizer<'_, 'tcx> {
|
||||||
if nt != t {
|
if nt != t {
|
||||||
return self.fold_ty(nt);
|
return self.fold_ty(nt);
|
||||||
} else {
|
} else {
|
||||||
CanonicalVarKind::Ty(CanonicalTyVarKind::Int)
|
CanonicalVarKind::Ty(CanonicalTyVarKind::Float)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ty::Infer(ty::FreshTy(_) | ty::FreshIntTy(_) | ty::FreshFloatTy(_)) => {
|
ty::Infer(ty::FreshTy(_) | ty::FreshIntTy(_) | ty::FreshFloatTy(_)) => {
|
||||||
|
|
8
tests/ui/traits/new-solver/float-canonical.rs
Normal file
8
tests/ui/traits/new-solver/float-canonical.rs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
// compile-flags: -Ztrait-solver=next
|
||||||
|
// check-pass
|
||||||
|
|
||||||
|
fn foo(x: f64) {
|
||||||
|
let y = x + 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {}
|
Loading…
Add table
Add a link
Reference in a new issue