* @param visitor an ExpressionVisitor
*/
public void refineVariableType(
ItemType type, int cardinality, Value constantValue, int properties, ExpressionVisitor visitor) {
Executable exec = visitor.getExecutable();
if (exec == null) {
// happens during use-when evaluation
return;
}
TypeHierarchy th = exec.getConfiguration().getTypeHierarchy();
ItemType oldItemType = getItemType(th);
ItemType newItemType = oldItemType;
if (th.isSubType(type, oldItemType)) {
newItemType = type;
}