Skip to content

Commit 72b2828

Browse files
Remove redundant shouldRunDocumentLevelRules() checks
These checks are always true in methods that are only called at document level (depth=0): - checkDocument(): Document node visited once at start - checkOperationDefinition(): Operations are never inside fragments - checkVariableDefinition(): Variable definitions only exist in operations - documentFinished(): Called when leaving Document Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 142bad7 commit 72b2828

1 file changed

Lines changed: 32 additions & 40 deletions

File tree

src/main/java/graphql/validation/OperationValidator.java

Lines changed: 32 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -471,8 +471,7 @@ private Boolean isExperimentalApiKeyEnabled(String key) {
471471
}
472472

473473
private void checkDocument(Document document) {
474-
// ExecutableDefinitions
475-
if (shouldRunDocumentLevelRules() && isRuleEnabled(OperationValidationRule.EXECUTABLE_DEFINITIONS)) {
474+
if (isRuleEnabled(OperationValidationRule.EXECUTABLE_DEFINITIONS)) {
476475
validateExecutableDefinitions(document);
477476
}
478477
}
@@ -497,18 +496,16 @@ private void checkTypeName(TypeName typeName) {
497496
}
498497

499498
private void checkVariableDefinition(VariableDefinition variableDefinition) {
500-
if (shouldRunDocumentLevelRules()) {
501-
if (isRuleEnabled(OperationValidationRule.VARIABLE_DEFAULT_VALUES_OF_CORRECT_TYPE)) {
502-
validateVariableDefaultValuesOfCorrectType(variableDefinition);
503-
}
504-
if (isRuleEnabled(OperationValidationRule.VARIABLES_ARE_INPUT_TYPES)) {
505-
validateVariablesAreInputTypes(variableDefinition);
506-
}
499+
if (isRuleEnabled(OperationValidationRule.VARIABLE_DEFAULT_VALUES_OF_CORRECT_TYPE)) {
500+
validateVariableDefaultValuesOfCorrectType(variableDefinition);
501+
}
502+
if (isRuleEnabled(OperationValidationRule.VARIABLES_ARE_INPUT_TYPES)) {
503+
validateVariablesAreInputTypes(variableDefinition);
507504
}
508505
if (isRuleEnabled(OperationValidationRule.NO_UNDEFINED_VARIABLES)) {
509506
definedVariableNames.add(variableDefinition.getName());
510507
}
511-
if (shouldRunDocumentLevelRules() && isRuleEnabled(OperationValidationRule.NO_UNUSED_VARIABLES)) {
508+
if (isRuleEnabled(OperationValidationRule.NO_UNUSED_VARIABLES)) {
512509
unusedVars_variableDefinitions.add(variableDefinition);
513510
}
514511
if (isRuleEnabled(OperationValidationRule.VARIABLE_TYPES_MATCH)) {
@@ -630,35 +627,31 @@ private void checkFragmentDefinition(FragmentDefinition fragmentDefinition) {
630627
private void checkOperationDefinition(OperationDefinition operationDefinition) {
631628
operationScope = true;
632629

633-
if (shouldRunDocumentLevelRules()) {
634-
if (isRuleEnabled(OperationValidationRule.OVERLAPPING_FIELDS_CAN_BE_MERGED)) {
635-
validateOverlappingFieldsCanBeMerged(operationDefinition);
636-
}
637-
if (isRuleEnabled(OperationValidationRule.LONE_ANONYMOUS_OPERATION)) {
638-
validateLoneAnonymousOperation(operationDefinition);
639-
}
640-
if (isRuleEnabled(OperationValidationRule.UNIQUE_OPERATION_NAMES)) {
641-
validateUniqueOperationNames(operationDefinition);
642-
}
643-
if (isRuleEnabled(OperationValidationRule.UNIQUE_VARIABLE_NAMES)) {
644-
validateUniqueVariableNames(operationDefinition);
645-
}
646-
if (isRuleEnabled(OperationValidationRule.SUBSCRIPTION_UNIQUE_ROOT_FIELD)) {
647-
validateSubscriptionUniqueRootField(operationDefinition);
648-
}
649-
if (isRuleEnabled(OperationValidationRule.UNIQUE_DIRECTIVE_NAMES_PER_LOCATION)) {
650-
validateUniqueDirectiveNamesPerLocation(operationDefinition, operationDefinition.getDirectives());
651-
}
652-
if (isRuleEnabled(OperationValidationRule.KNOWN_OPERATION_TYPES)) {
653-
validateKnownOperationTypes(operationDefinition);
654-
}
655-
if (isRuleEnabled(OperationValidationRule.NO_UNUSED_FRAGMENTS)) {
656-
unusedFragTracking_usedFragments = new ArrayList<>();
657-
fragmentsUsedDirectlyInOperation.add(unusedFragTracking_usedFragments);
658-
}
630+
if (isRuleEnabled(OperationValidationRule.OVERLAPPING_FIELDS_CAN_BE_MERGED)) {
631+
validateOverlappingFieldsCanBeMerged(operationDefinition);
632+
}
633+
if (isRuleEnabled(OperationValidationRule.LONE_ANONYMOUS_OPERATION)) {
634+
validateLoneAnonymousOperation(operationDefinition);
635+
}
636+
if (isRuleEnabled(OperationValidationRule.UNIQUE_OPERATION_NAMES)) {
637+
validateUniqueOperationNames(operationDefinition);
638+
}
639+
if (isRuleEnabled(OperationValidationRule.UNIQUE_VARIABLE_NAMES)) {
640+
validateUniqueVariableNames(operationDefinition);
641+
}
642+
if (isRuleEnabled(OperationValidationRule.SUBSCRIPTION_UNIQUE_ROOT_FIELD)) {
643+
validateSubscriptionUniqueRootField(operationDefinition);
644+
}
645+
if (isRuleEnabled(OperationValidationRule.UNIQUE_DIRECTIVE_NAMES_PER_LOCATION)) {
646+
validateUniqueDirectiveNamesPerLocation(operationDefinition, operationDefinition.getDirectives());
647+
}
648+
if (isRuleEnabled(OperationValidationRule.KNOWN_OPERATION_TYPES)) {
649+
validateKnownOperationTypes(operationDefinition);
650+
}
651+
if (isRuleEnabled(OperationValidationRule.NO_UNUSED_FRAGMENTS)) {
652+
unusedFragTracking_usedFragments = new ArrayList<>();
653+
fragmentsUsedDirectlyInOperation.add(unusedFragTracking_usedFragments);
659654
}
660-
661-
// Reset operation-scoped rule state
662655
if (isRuleEnabled(OperationValidationRule.NO_UNDEFINED_VARIABLES)) {
663656
definedVariableNames.clear();
664657
}
@@ -722,10 +715,9 @@ private void leaveFragmentDefinition() {
722715
}
723716

724717
private void documentFinished(Document document) {
725-
if (shouldRunDocumentLevelRules() && isRuleEnabled(OperationValidationRule.NO_UNUSED_FRAGMENTS)) {
718+
if (isRuleEnabled(OperationValidationRule.NO_UNUSED_FRAGMENTS)) {
726719
validateNoUnusedFragments();
727720
}
728-
// LoneAnonymousOperation cleanup
729721
if (isRuleEnabled(OperationValidationRule.LONE_ANONYMOUS_OPERATION)) {
730722
hasAnonymousOp = false;
731723
}

0 commit comments

Comments
 (0)