summaryrefslogtreecommitdiff
path: root/src/Language/GraphQL/AST/Parser.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2020-08-31 11:06:27 +0200
committerEugen Wissner <belka@caraus.de>2020-08-31 11:06:27 +0200
commit33318a3b01d27771c6d51ddc5899162bf3acebd8 (patch)
treedbd7c8f6f37b56deed4d21398e03f81c254f4750 /src/Language/GraphQL/AST/Parser.hs
parent4b59da2fcb3d719855060143e5f71fb710031f75 (diff)
downloadgraphql-33318a3b01d27771c6d51ddc5899162bf3acebd8.tar.gz
Validate fragment spread target existence
Diffstat (limited to 'src/Language/GraphQL/AST/Parser.hs')
-rw-r--r--src/Language/GraphQL/AST/Parser.hs11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/Language/GraphQL/AST/Parser.hs b/src/Language/GraphQL/AST/Parser.hs
index 7bc51cb..e97f306 100644
--- a/src/Language/GraphQL/AST/Parser.hs
+++ b/src/Language/GraphQL/AST/Parser.hs
@@ -400,11 +400,12 @@ argument :: Parser Argument
argument = Argument <$> name <* colon <*> value <?> "Argument"
fragmentSpread :: Parser Selection
-fragmentSpread = FragmentSpread
- <$ spread
- <*> fragmentName
- <*> directives
- <?> "FragmentSpread"
+fragmentSpread = label "FragmentSpread" $ do
+ location <- getLocation
+ _ <- spread
+ fragmentName' <- fragmentName
+ directives' <- directives
+ pure $ FragmentSpread fragmentName' directives' location
inlineFragment :: Parser Selection
inlineFragment = InlineFragment