Improve binary operation inference, still not great
This commit is contained in:
parent
469ce3ce77
commit
a680064b0f
@ -285,8 +285,8 @@ impl Block {
|
||||
let rhs_ref = state.ok(rhs_infer, rhs.1);
|
||||
|
||||
// Try to narrow the lhs with rhs
|
||||
if let (Some(mut lhs_ref), Some(rhs_ref)) = (lhs_ref, rhs_ref) {
|
||||
lhs_ref.narrow(&rhs_ref);
|
||||
if let (Some(mut lhs_ref), Some(mut rhs_ref)) = (lhs_ref, rhs_ref) {
|
||||
rhs_ref.narrow(&lhs_ref);
|
||||
}
|
||||
}
|
||||
StmtKind::Import(_) => panic!(),
|
||||
|
@ -366,7 +366,11 @@ impl<'outer> ScopeTypeRefs<'outer> {
|
||||
*idx.borrow_mut() = *hint1.0.borrow();
|
||||
}
|
||||
}
|
||||
(TypeRefKind::Direct(_), TypeRefKind::BinOp(..)) => {}
|
||||
(TypeRefKind::Direct(_), TypeRefKind::BinOp(..)) => {
|
||||
if *idx == hint1.0 && idx != &hint2.0 {
|
||||
*idx.borrow_mut() = *hint2.0.borrow();
|
||||
}
|
||||
}
|
||||
(TypeRefKind::BinOp(..), TypeRefKind::Direct(..)) => {
|
||||
// TODO may not be good ?
|
||||
// if *idx == hint2.0 && idx != &hint1.0 {
|
||||
|
Loading…
Reference in New Issue
Block a user