diff --git a/src/ast.rs b/src/ast.rs index f12dfb6..63a7cf9 100644 --- a/src/ast.rs +++ b/src/ast.rs @@ -117,7 +117,8 @@ impl PredicateDeclaration let dependencies = match *dependencies { Some(ref dependencies) => dependencies, - None => unreachable!("all dependencies should have been collected at this point"), + // Input predicates don’t have completed definitions and no dependencies, so ignore them + None => return, }; for dependency in dependencies.iter() diff --git a/src/problem.rs b/src/problem.rs index e482272..e1f550c 100644 --- a/src/problem.rs +++ b/src/problem.rs @@ -69,6 +69,11 @@ impl Problem continue; } + if *predicate_declaration.is_input.borrow() + { + continue; + } + let matching_statement = |statement: &&Statement| match statement.kind {