docs: public static void injectMethod(JavacNode typeNode, JCMethodDecl method, List<Type> paramTypes, Type returnType) {
  		JCClassDecl type = (JCClassDecl) typeNode.get();
  		
  		if (method.getName().contentEquals("<init>")) {
  			//Scan for default constructor, and remove it.
  			int idx = 0;
  			for (JCTree def : type.defs) {
  				if (def instanceof JCMethodDecl) {
  					if ((((JCMethodDecl) def).mods.flags & Flags.GENERATEDCONSTR) != 0) {
  						JavacNode tossMe = typeNode.getNodeFor(def);
  						if (tossMe != null) tossMe.up().removeChild(tossMe);
  						type.defs = addAllButOne(type.defs, idx);
  						ClassSymbolMembersField.remove(type.sym, ((JCMethodDecl) def).sym);
  						break;
  					}
  				}
  				idx++;
  			}
  		}
  		
  		addSuppressWarningsAll(method.mods, typeNode, method.pos, getGeneratedBy(method), typeNode.getContext());
  		addGenerated(method.mods, typeNode, method.pos, getGeneratedBy(method), typeNode.getContext());
  		type.defs = type.defs.append(method);
  		
  		fixMethodMirror(typeNode.getContext(), typeNode.getElement(), method.getModifiers().flags, method.getName(), paramTypes, returnType);
  		
  		typeNode.add(method, Kind.METHOD);
  	}