From 870fdd048c1ebda57451265e49ff32ff2db346f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20L=C3=BChne?= Date: Thu, 28 May 2020 06:29:57 +0200 Subject: [PATCH] Handle input predicates correctly --- src/ast.rs | 3 ++- src/problem.rs | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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 {