docs: private void checkInputObjectTypeExtensions(List<GraphQLError> errors, TypeDefinitionRegistry typeRegistry) {
          typeRegistry.inputObjectTypeExtensions()
                  .forEach((name, extensions) -> {
                      checkTypeExtensionHasCorrespondingType(errors, typeRegistry, name, extensions, InputObjectTypeDefinition.class);
                      checkTypeExtensionDirectiveRedefinition(errors, typeRegistry, name, extensions, InputObjectTypeDefinition.class);
                      // field redefinitions
                      extensions.forEach(extension -> {
                          List<InputValueDefinition> inputValueDefinitions = extension.getInputValueDefinitions();
                          // field unique ness
                          checkNamedUniqueness(errors, inputValueDefinitions, InputValueDefinition::getName,
                                  (namedField, fieldDef) -> new NonUniqueNameError(extension, fieldDef));
  
                          // directive checks
                          inputValueDefinitions.forEach(fld -> checkNamedUniqueness(errors, fld.getDirectives(), Directive::getName,
                                  (directiveName, directive) -> new NonUniqueDirectiveError(extension, fld, directiveName)));
  
                          inputValueDefinitions.forEach(fld -> fld.getDirectives().forEach(directive -> {
                              checkDeprecatedDirective(errors, directive,
                                      () -> new InvalidDeprecationDirectiveError(extension, fld));
  
                              checkNamedUniqueness(errors, directive.getArguments(), Argument::getName,
                                      (argumentName, argument) -> new NonUniqueArgumentError(extension, fld, argumentName));
  
                          }));
                          //
                          // fields must be unique within a type extension
                          forEachBut(extension, extensions,
                                  otherTypeExt -> checkForInputValueRedefinition(errors, otherTypeExt, otherTypeExt.getInputValueDefinitions(), inputValueDefinitions));
  
                          //
                          // then check for field re-defs from the base type
                          Optional<InputObjectTypeDefinition> baseTypeOpt = typeRegistry.getType(extension.getName(), InputObjectTypeDefinition.class);
                          baseTypeOpt.ifPresent(baseTypeDef -> checkForInputValueRedefinition(errors, extension, inputValueDefinitions, baseTypeDef.getInputValueDefinitions()));
                      });
  
                  });
      }