[meta] Add new instruction predicates and the InstructionPredicateMap;

The latter helps deduplicating predicates during encodings and recipes
construction.
This commit is contained in:
Benjamin Bouvier
2019-06-24 16:56:00 +02:00
parent a3e459269e
commit 1e42aac41a
3 changed files with 349 additions and 20 deletions

View File

@@ -440,7 +440,7 @@ impl Apply {
format!("{}({})", self.inst.name, args)
}
fn inst_predicate(
pub fn inst_predicate(
&self,
format_registry: &FormatRegistry,
var_pool: &VarPool,
@@ -454,8 +454,8 @@ impl Apply {
// Ignore free variables for now.
continue;
}
pred = pred.and(InstructionPredicate::new_is_field_equal(
iform.name,
pred = pred.and(InstructionPredicate::new_is_field_equal_ast(
iform,
&format_field,
arg.to_rust_code(var_pool),
));