private void collectUnknownTypes(TypeDeclaration declaration, Map<Declaration, Declaration> visited) {
if(visited.put(declaration, declaration) != null)
return;
if(declaration instanceof UnknownType){
UnknownType ut = (UnknownType) declaration;
ut.reportErrors();
// don't report it twice
ut.setErrorReporter(null);
}else if(declaration instanceof UnionType){
for(ProducedType t : declaration.getCaseTypes()){
collectUnknownTypesResolved(t, visited);
}
}else if(declaration instanceof IntersectionType){