}
public Object visitArgsCatNode(ArgsCatNode node) {
Vertex vertex = createEmptyVertex(node);
Vertex first = createVertex(node.getFirstNode());
SplatVertex second = new SplatVertex(node, createVertex(node.getSecondNode()));
RuntimeHelper.splatValue(this, second);
for (IRubyObject a : first.getTypeSet()) {
List<Vertex> elements = new ArrayList<Vertex>();
if (a instanceof Array) {
Array array = (Array) a;
if (array.getElements() != null) {
elements.addAll(Arrays.asList(array.getElements()));
}
} else {
elements.add(createFreeSingleTypeVertex(a));
}
for (IRubyObject b : second.getTypeSet()) {
if (b instanceof Array) {
Array array = (Array) b;
if (array.getElements() != null) {
elements.addAll(Arrays.asList(array.getElements()));
}