docs: protected void appendToStringFunctions(GenerationContext context, XtendTypeDeclaration source,
  			final JvmGenericType target) {
  		if (!isAppendToStringFunctionsEnable(context)) {
  			return;
  		}
  		// Create a list of the declared non-static fields.
  		final List<JvmField> declaredInstanceFields = new ArrayList<>();
  		for (final JvmField field : target.getDeclaredFields()) {
  			if (!field.isStatic()) {
  				declaredInstanceFields.add(field);
  			}
  		}
  
  		if (!declaredInstanceFields.isEmpty()) {
  			final JvmTypeReference voidType = this._typeReferenceBuilder.typeRef(Void.TYPE);
  			final JvmOperation op = SARLJvmModelInferrer.this.typeBuilder.toMethod(
  					source,
  					"toString", //$NON-NLS-1$
  					voidType, it2 -> {
  					it2.setVisibility(JvmVisibility.PROTECTED);
  					SARLJvmModelInferrer.this.typeBuilder.setDocumentation(it2,
  							MessageFormat.format(Messages.SARLJvmModelInferrer_2,
  									target.getSimpleName()));
  					final JvmFormalParameter param = this.typesFactory.createJvmFormalParameter();
  					param.setName("builder"); //$NON-NLS-1$
  					param.setParameterType(SARLJvmModelInferrer.this._typeReferenceBuilder.typeRef(ToStringBuilder.class));
  					it2.getParameters().add(param);
  					setBody(it2, it3 -> {
  						it3.append("super.toString(builder);"); //$NON-NLS-1$
  						for (final JvmField attr : declaredInstanceFields) {
  							it3.newLine();
  							it3.append("builder.add(\"" + attr.getSimpleName() //$NON-NLS-1$
  								+ "\", this." //$NON-NLS-1$
  								+ attr.getSimpleName() + ");"); //$NON-NLS-1$
  						}
  					});
  				});
  			if (op != null) {
  				appendGeneratedAnnotation(op, context);
  				if (context.getGeneratorConfig2().isGeneratePureAnnotation()) {
  					addAnnotationSafe(op, Pure.class);
  				}
  				target.getMembers().add(op);
  			}
  		}
  	}