From 002f9ed05aeddc401b4dbb9f522dd5472e83e060 Mon Sep 17 00:00:00 2001 From: Gordy French Date: Wed, 5 Feb 2025 15:08:08 -0800 Subject: [PATCH] Fix codemod crashing on aliases in inline fragments Reviewed By: captbaritone Differential Revision: D69204227 fbshipit-source-id: 4b7c7a5ddb66048fd0394585ff93a55c8b5ecd99 --- compiler/crates/relay-codemod/src/codemod.rs | 5 ++++- .../src/validations/disallow_required_on_non_null_field.rs | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/compiler/crates/relay-codemod/src/codemod.rs b/compiler/crates/relay-codemod/src/codemod.rs index 8f87e3896dfe9..816b69fdab6a0 100644 --- a/compiler/crates/relay-codemod/src/codemod.rs +++ b/compiler/crates/relay-codemod/src/codemod.rs @@ -55,7 +55,10 @@ pub async fn run_codemod( } } AvailableCodemod::RemoveUnnecessaryRequiredDirectives => { - disallow_required_on_non_null_field(&programs.source).unwrap_or_default() + match disallow_required_on_non_null_field(&programs.source) { + Ok(e) => e, + Err(e) => panic!("{:?}", e), + } } }) .collect::>(); diff --git a/compiler/crates/relay-transforms/src/validations/disallow_required_on_non_null_field.rs b/compiler/crates/relay-transforms/src/validations/disallow_required_on_non_null_field.rs index 4caafaed2ebbd..06dcd354d3cd3 100644 --- a/compiler/crates/relay-transforms/src/validations/disallow_required_on_non_null_field.rs +++ b/compiler/crates/relay-transforms/src/validations/disallow_required_on_non_null_field.rs @@ -25,6 +25,7 @@ use lazy_static::lazy_static; use schema::SDLSchema; use schema::Schema; +use crate::fragment_alias_directive; use crate::required_directive; use crate::ValidationMessageWithData; use crate::CATCH_DIRECTIVE_NAME; @@ -51,7 +52,8 @@ pub fn disallow_required_on_non_null_field( // required_directive transform. This validation is run on untransformed // versions of IR both in the LSP and as a codemod, so we apply the transform // ourselves locally. - let program = required_directive(program)?; + let program = fragment_alias_directive(program, &common::FeatureFlag::Disabled)?; + let program = required_directive(&program)?; let mut validator = DisallowRequiredOnNonNullField::new(&program.schema); validator.validate_program(&program)?; Ok(validator.warnings)