One walk over a feature's expressions (1/3, #876) (#902)

inputs_mut, inputs and expressions are now built on one exhaustive walk (walk_exprs / walk_exprs_mut) instead of two hand-written matches over FeatureKind. inputs() no longer clones the feature, plane chains are walked with the same nesting cap for inputs as for expressions, and a new variant without a walk arm does not compile. A golden record of every variant's expressions guards the walk.
This commit is contained in:
JIJINBEI authored and GitHub committed 2026-10-14 08:11:03 -04:00
1 parent 35e58d18ed
commit 3341e2d60b
6 files changed
+896 -486

No files matched your search

+2
View File
@@ -71,6 +71,8 @@ pub enum DocError {
pub type Result<T> = std::result::Result<T, DocError>;
#[cfg(test)]
mod feature_walk_tests;
#[cfg(test)]
mod named_projection_tests;
#[cfg(test)]