@Override public void visitTypeDef(TypeDef typeDef) { super.visitTypeDef(typeDef); List<Declarator> declaratorsToRemove = null; for (Declarator d : typeDef.getDeclarators()) { String n = d.resolveName(); if (forcedTypeDefs.contains(n) && !seenOnce.add(n)) { if (declaratorsToRemove == null) { declaratorsToRemove = new ArrayList<Declarator>(); } declaratorsToRemove.add(d); } } if (declaratorsToRemove != null) { for (Declarator d : declaratorsToRemove) { d.replaceBy(null); } } } });
@Override public void visitTypeDef(TypeDef typeDef) { super.visitTypeDef(typeDef); List<Declarator> declaratorsToRemove = null; for (Declarator d : typeDef.getDeclarators()) { String n = d.resolveName(); if (forcedTypeDefs.contains(n) && !seenOnce.add(n)) { if (declaratorsToRemove == null) { declaratorsToRemove = new ArrayList<Declarator>(); } declaratorsToRemove.add(d); } } if (declaratorsToRemove != null) { for (Declarator d : declaratorsToRemove) { d.replaceBy(null); } } } });
@Test public void addSibling() { VariablesDeclaration d = new VariablesDeclaration(); Declarator s1 = new Declarator.DirectDeclarator(), s2 = new Declarator.DirectDeclarator(); d.setDeclarators(Arrays.asList(s1)); s1.insertSibling(s2, false); List<Declarator> list = d.getDeclarators(); assertEquals("Failed to add after", 2, list.size()); assertSame("Added, but not after", s1, list.get(0)); assertSame(s2, list.get(1)); s2.replaceBy(null); list = d.getDeclarators(); assertEquals("Failed to remove added element", 1, list.size()); assertSame("Removed bad element", s1, list.get(0)); d.setDeclarators(Arrays.asList(s1)); s1.insertSibling(s2, true); list = d.getDeclarators(); assertEquals("Failed to add before", 2, list.size()); assertSame("Added, but not before", s2, list.get(0)); assertSame(s1, list.get(1)); s2.replaceBy(null); list = d.getDeclarators(); assertEquals("Failed to remove added element", 1, list.size()); assertSame("Removed bad element", s1, list.get(0)); } }
if (vs instanceof DirectDeclarator && name.equals(bestName) && ttr != null && origName != null) { DirectDeclarator rep = new DirectDeclarator(origName); vs.replaceBy(rep); ttr.setTag(ident(bestName)); vs = rep;
if (vs instanceof DirectDeclarator && name.equals(bestName) && ttr != null && origName != null) { DirectDeclarator rep = new DirectDeclarator(origName); vs.replaceBy(rep); ttr.setTag(ident(bestName)); vs = rep;