}
} else {
totalCount = argList.getList(element.getParent(), stream).size();
if (arg instanceof IBooleanExpression && argList instanceof BooleanListExpression) {
IBooleanExpression e = (IBooleanExpression) arg;
BooleanListExpression le = (BooleanListExpression) argList;
boolean v = e.getBooleanValue(element.getParent(), annotation, stream);
List<Boolean> l = new ArrayList<Boolean>(le.getList(element.getParent(), stream));
while (l.remove(v)) {
basicCount++;
}
} else if (arg instanceof INumberExpression && argList instanceof NumberListExpression) {
INumberExpression e = (INumberExpression) arg;
NumberListExpression le = (NumberListExpression) argList;
Number v = e.getDoubleValue(element.getParent(), annotation, stream);
List<Number> l = new ArrayList<Number>(le.getList(element.getParent(), stream));
while (l.remove(v)) {
basicCount++;
}
} else if (arg instanceof IStringExpression && argList instanceof StringListExpression) {
IStringExpression e = (IStringExpression) arg;
StringListExpression le = (StringListExpression) argList;
String v = e.getStringValue(element.getParent(), annotation, stream);
List<String> l = new ArrayList<String>(le.getList(element.getParent(), stream));
while (l.remove(v)) {
basicCount++;
}
} else if (arg instanceof TypeExpression && argList instanceof TypeListExpression) {
TypeExpression e = (TypeExpression) arg;
TypeListExpression le = (TypeListExpression) argList;
Type v = e.getType(element.getParent());
List<Type> l = new ArrayList<Type>(le.getList(element.getParent(), stream));
while (l.remove(v)) {
basicCount++;
}
}
anchorCount = basicCount;