ISLE: add support for multi-extractors and multi-constructors. (#4908)
* ISLE: add support for multi-extractors and multi-constructors. This support allows for rules that process multiple matching values per extractor call on the left-hand side, and as a result, can produce multiple values from the constructor whose body they define. This is useful in situations where we are matching on an input data structure that can have multiple "nodes" for a given value or ID, for example in an e-graph. * Review feedback: all multi-ctors and multi-etors return iterators; no `Vec` case. * Add additional warning suppressions to generated-code toplevels to be consistent with new islec output.
This commit is contained in:
@@ -4,6 +4,6 @@
|
||||
// mod generated_code;` trick either.
|
||||
#![allow(dead_code, unreachable_code, unreachable_patterns)]
|
||||
#![allow(unused_imports, unused_variables, non_snake_case, unused_mut)]
|
||||
#![allow(irrefutable_let_patterns)]
|
||||
#![allow(irrefutable_let_patterns, unused_assignments, non_camel_case_types)]
|
||||
|
||||
include!(concat!(env!("ISLE_DIR"), "/isle_aarch64.rs"));
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
// mod generated_code;` trick either.
|
||||
#![allow(dead_code, unreachable_code, unreachable_patterns)]
|
||||
#![allow(unused_imports, unused_variables, non_snake_case, unused_mut)]
|
||||
#![allow(irrefutable_let_patterns)]
|
||||
#![allow(irrefutable_let_patterns, unused_assignments, non_camel_case_types)]
|
||||
|
||||
include!(concat!(env!("ISLE_DIR"), "/isle_s390x.rs"));
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
// mod generated_code;` trick either.
|
||||
#![allow(dead_code, unreachable_code, unreachable_patterns)]
|
||||
#![allow(unused_imports, unused_variables, non_snake_case, unused_mut)]
|
||||
#![allow(irrefutable_let_patterns)]
|
||||
#![allow(irrefutable_let_patterns, unused_assignments, non_camel_case_types)]
|
||||
|
||||
include!(concat!(env!("ISLE_DIR"), "/isle_x64.rs"));
|
||||
|
||||
Reference in New Issue
Block a user