Remove unwanted detection rule
This piece of code was responsible for propagating the domain of predicate parameters to argument variables. However, this approach doesn’t seem to be correct, which is why this commit removes it.
This commit is contained in:
@@ -537,34 +537,9 @@ struct DetectIntegerVariablesVisitor
|
|||||||
return operationResult;
|
return operationResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
static OperationResult visit(ast::Predicate &predicate, ast::Formula &, VariableDomainMap &)
|
static OperationResult visit(ast::Predicate &, ast::Formula &, VariableDomainMap &)
|
||||||
{
|
{
|
||||||
auto operationResult = OperationResult::Unchanged;
|
return OperationResult::Unchanged;
|
||||||
|
|
||||||
assert(predicate.arguments.size() == predicate.declaration->arity());
|
|
||||||
|
|
||||||
// Propagate integer domains from predicates to variables
|
|
||||||
for (size_t i = 0; i < predicate.arguments.size(); i++)
|
|
||||||
{
|
|
||||||
auto &variableArgument = predicate.arguments[i];
|
|
||||||
auto ¶meter = predicate.declaration->parameters[i];
|
|
||||||
|
|
||||||
if (parameter.domain != ast::Domain::Integer)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!variableArgument.is<ast::Variable>())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
auto &variable = variableArgument.get<ast::Variable>();
|
|
||||||
|
|
||||||
if (variable.declaration->domain == ast::Domain::Integer)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
operationResult = OperationResult::Changed;
|
|
||||||
variable.declaration->domain = ast::Domain::Integer;
|
|
||||||
}
|
|
||||||
|
|
||||||
return operationResult;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user