}
@Test
public void testRemoveOverloadedMethod() throws Exception {
CompilerAssert<File, File> helper = incrementalCompiler("metamodel.controller");
JavaFile file = helper.assertJavaSource("metamodel.controller.A");
ClassOrInterfaceDeclaration a = file.assertDeclaration();
MethodDeclaration index = new MethodDeclaration(Modifier.PUBLIC, ASTHelper.VOID_TYPE, "index");
ASTHelper.addParameter(index, ASTHelper.createParameter(new ClassOrInterfaceType(String.class.getName()), "s"));
index.setAnnotations(Collections.<AnnotationExpr>singletonList(new NormalAnnotationExpr(ASTHelper.createNameExpr(View.class.getName()), Collections.<MemberValuePair>emptyList())));
index.setBody(new BlockStmt());
a.getMembers().add(index);
file.assertSave();
helper.assertCompile();
//
File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser");
MetaModelState unserialize = Tools.unserialize(MetaModelState.class, ser);
ModuleMetaModel mm = (ModuleMetaModel)unserialize.metaModel;
mm.getQueue().clear();
Tools.serialize(unserialize, ser);
//
assertTrue(a.getMembers().remove(index));
file.assertSave();
//
helper.assertCompile();
mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel;