aspect JSR308NonNullInference { refine NonNullInference eq MethodDecl.inferedRawThis() { if(getReceiverModifiers().isRawObjectType()) return true; return NonNullInference.MethodDecl.inferedRawThis(); } public void MethodDecl.emit(PrintWriter p, Input input) throws java.io.IOException { // emit source until the method start int line = getLine(getStart()); int column = getColumn(getStart()); if(line != 0 && column != 0) { input.emitUntil(line, column, p); // emit annotations if(addNonNull()) p.write(options().nonNullAnnotation()); if(addNullable()) p.write(options().nullableAnnotation()); if(inferedRaw() && !getModifiers().isRawObjectType()) p.write(options().rawAnnotation()); // emit upto parameter list inclusive for(int i = 0; i <= 2; i++) { getChild(i).emit(p, input); } int l = getLine(getChild(2).getEnd()); int c = getColumn(getChild(2).getEnd()); input.emitUntil(l, c, p); input.emitUntil(')', p); if(inferedRawThis() && !getReceiverModifiers().isRawObjectType() && !getModifiers().isRawThisObjectType()) p.write(" " + options().rawAnnotation()); } for(int i = 3; i < getNumChild(); i++) { getChild(i).emit(p, input); } } }