aspect InlineMethod { public void MethodAccess.inline() { ASTNode n = inlineToAnonymousMethod().introduceOutParameter().open().inline(); if(n instanceof Block) ((Block)n).inline(); } public void MethodDecl.doInline(boolean delete) { TypeDecl host = hostType(); int idx = host.getBodyDeclList().getIndexOfChild(this); for(MethodAccess ma : this.polyUses()) ma.doInline(); if(delete) { MethodDecl md = (MethodDecl)host.getBodyDecl(idx); try { md.removeUnused(false); } catch(RefactoringException rfe) { } } } public void MethodAccess.doInline() { BodyDecl root = hostBodyDecl(); inline(); root.eliminate(WITH_STMT, FRESH_VARIABLES, LOCKED_NAMES); } }