summaryrefslogtreecommitdiff
path: root/src/Language/GraphQL/AST/Parser.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2020-09-19 18:18:26 +0200
committerEugen Wissner <belka@caraus.de>2020-09-19 18:18:26 +0200
commit21a7d9cce421352e837945a2334e7ccf10160d8c (patch)
tree5fa09a68cd7e5f7ab9aa1db082f74093bcbeb52c /src/Language/GraphQL/AST/Parser.hs
parent9a08aa5de73e225a9a76017aee4886ce7f6eccec (diff)
downloadgraphql-21a7d9cce421352e837945a2334e7ccf10160d8c.tar.gz
Validate variable names are unique
Diffstat (limited to 'src/Language/GraphQL/AST/Parser.hs')
-rw-r--r--src/Language/GraphQL/AST/Parser.hs13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/Language/GraphQL/AST/Parser.hs b/src/Language/GraphQL/AST/Parser.hs
index 62a247d..18ffd2a 100644
--- a/src/Language/GraphQL/AST/Parser.hs
+++ b/src/Language/GraphQL/AST/Parser.hs
@@ -492,12 +492,13 @@ variableDefinitions = listOptIn parens variableDefinition
<?> "VariableDefinitions"
variableDefinition :: Parser VariableDefinition
-variableDefinition = VariableDefinition
- <$> variable
- <* colon
- <*> type'
- <*> defaultValue
- <?> "VariableDefinition"
+variableDefinition = label "VariableDefinition" $ do
+ location <- getLocation
+ variableName <- variable
+ colon
+ variableType <- type'
+ variableValue <- defaultValue
+ pure $ VariableDefinition variableName variableType variableValue location
variable :: Parser Name
variable = dollar *> name <?> "Variable"