From 87c92e9d6eed3cf7a45f9df8da45c3a5689d28e1 Mon Sep 17 00:00:00 2001 From: Tom Hunger Date: Thu, 8 Dec 2016 23:34:46 +0000 Subject: Parse number as scientific and interpret meaning separately. The current parser will fail parsing floats because it parses an int, and then stumbles on the dot. To fix I interpret the value with the scientific library which already is a dependency through attoparsec, so we're not introducing any extra downloads or compiling. I think this is still subtly wrong because "10.0" will be parsed as ValueInt, but because input argument ints are allowed to be coerced into doubles (according to the spec) this is probably acceptable. --- graphql.cabal | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'graphql.cabal') diff --git a/graphql.cabal b/graphql.cabal index b73e259..d330abd 100644 --- a/graphql.cabal +++ b/graphql.cabal @@ -34,7 +34,8 @@ library attoparsec >= 0.10.4.0, base >= 4.7 && < 5, text >= 0.11.3.1, - unordered-containers >= 0.2.5.0 + unordered-containers >= 0.2.5.0, + scientific >=0.3.1 && <0.4 if impl(ghc >= 8.0) ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances else -- cgit v1.2.3