diff options
| author | Eugen Wissner <belka@caraus.de> | 2020-06-09 10:02:34 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2020-06-09 10:02:34 +0200 |
| commit | fdb1268213f9ea6da33d82fc57e1b0c7874c3fe2 (patch) | |
| tree | 3d5d23f201fc22541f79fd577e77c2a88ca2a1de /src/Language/GraphQL/Execute | |
| parent | 377c87045e468b9a34e7bee40129fcd03e519968 (diff) | |
| download | graphql-fdb1268213f9ea6da33d82fc57e1b0c7874c3fe2.tar.gz | |
Add custom Eq instances to the types
Diffstat (limited to 'src/Language/GraphQL/Execute')
| -rw-r--r-- | src/Language/GraphQL/Execute/Execution.hs | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/Language/GraphQL/Execute/Execution.hs b/src/Language/GraphQL/Execute/Execution.hs index a46316f..79646c3 100644 --- a/src/Language/GraphQL/Execute/Execution.hs +++ b/src/Language/GraphQL/Execute/Execution.hs @@ -79,9 +79,7 @@ doesFragmentTypeApply :: forall m -> Out.ObjectType m -> Bool doesFragmentTypeApply (CompositeObjectType fragmentType) objectType = - let Out.ObjectType fragmentName _ _ _ = fragmentType - Out.ObjectType objectName _ _ _ = objectType - in fragmentName == objectName + fragmentType == objectType doesFragmentTypeApply (CompositeInterfaceType fragmentType) objectType = instanceOf objectType $ AbstractInterfaceType fragmentType doesFragmentTypeApply (CompositeUnionType fragmentType) objectType = @@ -92,16 +90,13 @@ instanceOf objectType (AbstractInterfaceType interfaceType) = let Out.ObjectType _ _ interfaces _ = objectType in foldr go False interfaces where - go (Out.InterfaceType that _ interfaces _) acc = - let Out.InterfaceType this _ _ _ = interfaceType - in acc || foldr go (this == that) interfaces + go objectInterfaceType@(Out.InterfaceType _ _ interfaces _) acc = + acc || foldr go (interfaceType == objectInterfaceType) interfaces instanceOf objectType (AbstractUnionType unionType) = let Out.UnionType _ _ members = unionType in foldr go False members where - go (Out.ObjectType that _ _ _) acc = - let Out.ObjectType this _ _ _ = objectType - in acc || this == that + go unionMemberType acc = acc || objectType == unionMemberType executeField :: Monad m => Definition.Value |
