!636 !standard functions !L m { p { L tok = javaTok(loadMainJava()); for (L c : allClasses(tok)) { print("Double stuff remover: Processing class " + getClassDeclarationName(c)); new Set vars; new Set classes; for (L ic : innerClasses(c)) { S name = getClassDeclarationName(ic); print("Found inner class " + name); if (classes.contains(name)) { print("Removing duplicate inner class " + name); clearAllTokens(ic); ic.set(ic.size()-1, "\n"); // generous line break :) } else classes.add(name); } L c2 = javaTok(join(c)); // retokenize //print(join(c)); try { for (L v : allVariableDeclarations(c2)) { S name = getVarDeclarationName(v); print("Found var " + name); if (vars.contains(name)) { print("Removing duplicate variable " + name); clearAllTokens(v); v.set(v.size()-1, "\n"); // generous line break :) } else vars.add(name); } } catch (Exception e) { printStackTrace(e); } clearAllTokens(c); c.set(0, join(c2)); } print("done"); saveMainJava(join(tok)); } }