diff --git a/lib/pddlparse/src/pddlparse/detail/normalization/Precondition.cpp b/lib/pddlparse/src/pddlparse/detail/normalization/Precondition.cpp index 87a3be2..5e4d406 100644 --- a/lib/pddlparse/src/pddlparse/detail/normalization/Precondition.cpp +++ b/lib/pddlparse/src/pddlparse/detail/normalization/Precondition.cpp @@ -104,7 +104,11 @@ normalizedAST::Literal normalizeNested(ast::ExistsPointer &ex auto derivedPredicate = addDerivedPredicate(parameters, derivedPredicates); derivedPredicate->declaration->existentialParameters = std::move(exists->parameters); - derivedPredicate->declaration->precondition = exists->argument.match([&](auto &x){return normalizeNested(x, derivedPredicates);}); + derivedPredicate->declaration->precondition = exists->argument.match( + [&](auto &x) -> normalizedAST::DerivedPredicatePrecondition + { + return normalizeTopLevel(x, derivedPredicates); + }); // TODO: investigate, could be a compiler bug return std::move(derivedPredicate);