From bb949dd4d11edb940083b99db389bab9e279eb44 Mon Sep 17 00:00:00 2001 From: XiNiHa Date: Sat, 11 May 2024 19:06:33 +0900 Subject: [PATCH] Fix not keeping semantics of .optional on custom schema --- core/src/main/scala-2/caliban/schema/SchemaDerivation.scala | 3 +-- core/src/main/scala-3/caliban/schema/DerivationUtils.scala | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/core/src/main/scala-2/caliban/schema/SchemaDerivation.scala b/core/src/main/scala-2/caliban/schema/SchemaDerivation.scala index ef87048eb6..b60320e4f2 100644 --- a/core/src/main/scala-2/caliban/schema/SchemaDerivation.scala +++ b/core/src/main/scala-2/caliban/schema/SchemaDerivation.scala @@ -100,8 +100,7 @@ trait CommonSchemaDerivation[R] { val hasNonNullAnn = p.annotations.contains(GQLNonNullable()) if (hasNonNullAnn) (false, false) - else if (hasNullableAnn || p.typeclass.nullable) (true, false) - else if (p.typeclass.canFail) (true, true) + else if ((hasNullableAnn || p.typeclass.optional)) (true, !p.typeclass.canFail) else (false, false) } Types.makeField( diff --git a/core/src/main/scala-3/caliban/schema/DerivationUtils.scala b/core/src/main/scala-3/caliban/schema/DerivationUtils.scala index 538df7242d..ca6296bbeb 100644 --- a/core/src/main/scala-3/caliban/schema/DerivationUtils.scala +++ b/core/src/main/scala-3/caliban/schema/DerivationUtils.scala @@ -132,8 +132,7 @@ private object DerivationUtils { val hasNonNullAnn = fieldAnnotations.contains(GQLNonNullable()) if (hasNonNullAnn) (false, false) - else if (hasNullableAnn || schema.nullable) (true, false) - else if (schema.canFail) (true, true) + else if ((hasNullableAnn || schema.optional)) (true, !schema.canFail) else (false, false) } Types.makeField(