List<AttributeNameTest> results = new ArrayList<AttributeNameTest>();
boolean failed = false;
if (binary instanceof Union) {
for (int i = 0; i != 2; ++i) {
Component comp = i == 0 ? binary.getLeft() : binary.getRight();
comp = comp.collapse();
if (comp instanceof Union) {
results.addAll(extractAttributeNames((BinaryComponent)comp));
} else if (comp instanceof AttributeNameTest) {
results.add((AttributeNameTest)comp);
} else if (comp instanceof NameTest) {