From 2ce2be5d917091872b45b650b60ac2a23f544916 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Thu, 17 Jun 2021 08:15:27 +0200 Subject: Provide location information for interface errors --- src/Language/GraphQL/Execute/Execution.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/Language/GraphQL') diff --git a/src/Language/GraphQL/Execute/Execution.hs b/src/Language/GraphQL/Execute/Execution.hs index b671c13..742a6a9 100644 --- a/src/Language/GraphQL/Execute/Execution.hs +++ b/src/Language/GraphQL/Execute/Execution.hs @@ -132,12 +132,13 @@ completeValue (Out.ObjectBaseType objectType) fields result = completeValue (Out.InterfaceBaseType interfaceType) fields result | Type.Object objectMap <- result = do let abstractType = Internal.AbstractInterfaceType interfaceType + let Transform.Field _ _ _ _ location = NonEmpty.head fields concreteType <- resolveAbstractType abstractType objectMap case concreteType of Just objectType -> executeSelectionSet result objectType $ mergeSelectionSets fields Nothing -> addError null - $ Error "Interface value completion failed." [] [] + $ Error "Interface value completion failed." [location] [] completeValue (Out.UnionBaseType unionType) fields result | Type.Object objectMap <- result = do let abstractType = Internal.AbstractUnionType unionType @@ -148,7 +149,8 @@ completeValue (Out.UnionBaseType unionType) fields result $ mergeSelectionSets fields Nothing -> addError null $ Error "Union value completion failed." [location] [] -completeValue _ _ _ = addError null $ Error "Value completion failed." [] [] +completeValue _ (Transform.Field _ _ _ _ location :| _) _ = + addError null $ Error "Value completion failed." [location] [] mergeSelectionSets :: MonadCatch m => NonEmpty (Transform.Field m) -- cgit v1.2.3