docs: final void defineSharedVarsForType(
        TypeElement type,
        ImmutableSet<ExecutableElement> methods,
        AutoValueOrOneOfTemplateVars vars) {
      vars.pkg = TypeSimplifier.packageNameOf(type);
      vars.origClass = TypeSimplifier.classNameOf(type);
      vars.simpleClassName = TypeSimplifier.simpleNameOf(vars.origClass);
      vars.generated =
          generatedAnnotation(elementUtils(), processingEnv.getSourceVersion())
              .map(annotation -> TypeEncoder.encode(annotation.asType()))
              .orElse("");
      vars.formalTypes = TypeEncoder.formalTypeParametersString(type);
      vars.actualTypes = TypeSimplifier.actualTypeParametersString(type);
      vars.wildcardTypes = wildcardTypeParametersString(type);
      vars.annotations = copiedClassAnnotations(type);
      Map<ObjectMethod, ExecutableElement> methodsToGenerate =
          determineObjectMethodsToGenerate(methods);
      vars.toString = methodsToGenerate.containsKey(ObjectMethod.TO_STRING);
      vars.equals = methodsToGenerate.containsKey(ObjectMethod.EQUALS);
      vars.hashCode = methodsToGenerate.containsKey(ObjectMethod.HASH_CODE);
      vars.equalsParameterType = equalsParameterType(methodsToGenerate);
    }