diff options
| author | Eugen Wissner <belka@caraus.de> | 2020-08-31 11:06:27 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2020-08-31 11:06:27 +0200 |
| commit | 33318a3b01d27771c6d51ddc5899162bf3acebd8 (patch) | |
| tree | dbd7c8f6f37b56deed4d21398e03f81c254f4750 /src/Language/GraphQL/AST | |
| parent | 4b59da2fcb3d719855060143e5f71fb710031f75 (diff) | |
| download | graphql-33318a3b01d27771c6d51ddc5899162bf3acebd8.tar.gz | |
Validate fragment spread target existence
Diffstat (limited to 'src/Language/GraphQL/AST')
| -rw-r--r-- | src/Language/GraphQL/AST/Document.hs | 2 | ||||
| -rw-r--r-- | src/Language/GraphQL/AST/Encoder.hs | 2 | ||||
| -rw-r--r-- | src/Language/GraphQL/AST/Parser.hs | 11 |
3 files changed, 8 insertions, 7 deletions
diff --git a/src/Language/GraphQL/AST/Document.hs b/src/Language/GraphQL/AST/Document.hs index 72d39bb..3b94e55 100644 --- a/src/Language/GraphQL/AST/Document.hs +++ b/src/Language/GraphQL/AST/Document.hs @@ -163,7 +163,7 @@ type SelectionSetOpt = [Selection] -- @ data Selection = Field (Maybe Alias) Name [Argument] [Directive] SelectionSetOpt - | FragmentSpread Name [Directive] + | FragmentSpread Name [Directive] Location | InlineFragment (Maybe TypeCondition) [Directive] SelectionSet deriving (Eq, Show) diff --git a/src/Language/GraphQL/AST/Encoder.hs b/src/Language/GraphQL/AST/Encoder.hs index ba89d36..ec28b86 100644 --- a/src/Language/GraphQL/AST/Encoder.hs +++ b/src/Language/GraphQL/AST/Encoder.hs @@ -130,7 +130,7 @@ selection formatter = Lazy.Text.append indent' . encodeSelection field incrementIndent alias name args directives' selections encodeSelection (InlineFragment typeCondition directives' selections) = inlineFragment incrementIndent typeCondition directives' selections - encodeSelection (FragmentSpread name directives') = + encodeSelection (FragmentSpread name directives' _) = fragmentSpread incrementIndent name directives' incrementIndent | Pretty indentation <- formatter = Pretty $ indentation + 1 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 |
