additionalNodes.add(prevNode);
}
computeTypesSpecial(node, false, additionalNodes, false, initialNode);
type = typeCalculated(initialNode);
if (type == null) {
<BUG>if (node.isRoot()) {
computeTypes(node,true, true, Collections.<SNode>emptyList(), true, initialNode);
type = getType(initialNode);</BUG>
if (type == null && node != initialNode && myTypeChecker.isGenerationMode()) {
LOG.error("No typesystem rule for " + initialNode.getDebugText() + " in root " + initialNode.getContainingRoot() + ": type calculation took " + (System.currentTimeMillis() - start) + " ms", new Throwable(), new SNodePointer(initialNode));

additionalNodes.add(prevNode);
}
computeTypesSpecial(node, false, additionalNodes, false, initialNode);
type = typeCalculated(initialNode);
if (type == null) {
if (node.isRoot()) {
if (myState.getInequalitySystem() == null) {
computeTypes(node,true, true, Collections.<SNode>emptyList(), true, initialNode);
}
type = getType(initialNode);
if (type == null && node != initialNode && myTypeChecker.isGenerationMode()) {
LOG.error("No typesystem rule for " + initialNode.getDebugText() + " in root " + initialNode.getContainingRoot() + ": type calculation took " + (System.currentTimeMillis() - start) + " ms", new Throwable(), new SNodePointer(initialNode));
