diff options
| author | Eugen Wissner <belka@caraus.de> | 2021-04-12 07:09:39 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2021-04-12 07:09:39 +0200 |
| commit | 5654b78935b38a88f3dd4998eb8667a2695aea14 (patch) | |
| tree | a81993de154da6fd7b4f56f176f38ea4fe2df2ac /src | |
| parent | d6dda14cfd1486c6a5648a0a1086a5b5302f1954 (diff) | |
| download | graphql-5654b78935b38a88f3dd4998eb8667a2695aea14.tar.gz | |
Traverse input object properties once
Diffstat (limited to 'src')
| -rw-r--r-- | src/Language/GraphQL/Validate/Rules.hs | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/Language/GraphQL/Validate/Rules.hs b/src/Language/GraphQL/Validate/Rules.hs index 905c2a7..a6bc43b 100644 --- a/src/Language/GraphQL/Validate/Rules.hs +++ b/src/Language/GraphQL/Validate/Rules.hs @@ -1582,24 +1582,20 @@ valuesOfCorrectTypeRule = ValueRule go constGo , Full.ConstEnum memberValue <- node , HashMap.member memberValue members = mempty check (In.InputObjectBaseType objectType) Full.Node{ node } - | In.InputObjectType _ _ typeFields <- objectType - , Full.ConstObject valueFields <- node = - foldMap (checkObjectField typeFields) valueFields + -- Skip, objects are checked recursively by the validation traverser. + | In.InputObjectType{} <- objectType + , Full.ConstObject{} <- node = mempty check (In.ListBaseType listType) constValue@Full.Node{ .. } -- Skip, lists are checked recursively by the validation traverser. - | Full.ConstList _ <- node = mempty + | Full.ConstList{} <- node = mempty | otherwise = check listType constValue check inputType Full.Node{ .. } = pure $ Error { message = concat [ "Value " - , show node, " cannot be coerced to type \"" + , show node + , " cannot be coerced to type \"" , show inputType , "\"." ] , locations = [location] } - checkObjectField typeFields Full.ObjectField{..} - | Just typeField <- HashMap.lookup name typeFields - , In.InputField _ fieldType _ <- typeField = - check fieldType value - checkObjectField _ _ = mempty |
