feat: support using attributes in predicate

This commit is contained in:
Shunsuke Shibayama 2024-02-24 13:23:02 +09:00
parent 47818e431e
commit 0bedeb51ab
6 changed files with 194 additions and 21 deletions

View file

@ -335,6 +335,10 @@ impl Generalizer {
}
Predicate::call(receiver, name, new_args)
}
Predicate::Attr { receiver, name } => {
let receiver = self.generalize_tp(receiver, uninit);
Predicate::attr(receiver, name)
}
Predicate::Value(_) => pred,
Predicate::GeneralEqual { lhs, rhs } => {
let lhs = self.generalize_pred(*lhs, uninit);