
Hi,
I think it was probably I who wrote this, so I'll take the blame :-)
It seems like a genuine bug, where we are not checking for strings
that are not terminated. Thanks for spotting it, and also for the
patch! I'll try to update the package soon.
-Iavor
On Wed, May 12, 2010 at 12:53 PM, Martin Hilbig
hi,
since i got no answer from the maintainer, maybe someone else can take care of it, or at least point out, what i did wrong.
so, i recently stumbled upon some error while using Text.JSON 0.4.3 [1]:
Text/JSON/String.hs:(127,4)-(137,49): Non-exhaustive patterns in case
indeed ghc warned:
[5 of 7] Compiling Text.JSON.String ( Text/JSON/String.hs, dist/build/Text/JSON/String.o )
Text/JSON/String.hs:127:4: Warning: Pattern match(es) are non-exhaustive In a case alternative: Patterns not matched: []
from looking at the code i couldn't see how this would ever happen, but you can reproduce it be running the files from [2]:
$ ./test < problem Ok (JSArray [JSString (JSONString {fromJSString = "this"}),JSString (JSONString {fromJSString = "is"}),JSString (JSONString {fromJSString = "some"}),JSString (JSONString {fromJSString = "json"}),JSObject (JSONObject {fromJSObject = [("that",JSString (JSONString {fromJSString = "works"}))]})]) test: Text/JSON/String.hs:(127,4)-(137,49): Non-exhaustive patterns in case
the patch i put there fixes it (at least for me) to return an Error instead of dying:
$ ./test < problem Ok (JSArray [JSString (JSONString {fromJSString = "this"}),JSString (JSONString {fromJSString = "is"}),JSString (JSONString {fromJSString = "some"}),JSString (JSONString {fromJSString = "json"}),JSObject (JSONObject {fromJSObject = [("that",JSString (JSONString {fromJSString = "works"}))]})]) Error "Unexpected end of String: does" Error "Malformed JSON: invalid token in this context not\"]" test: <stdin>: hGetLine: end of file
have fun martin hilbig
[1]: http://hackage.haskell.org/package/json [2]: http://friendpaste.com/3IvnChRMoczf0mIKpOtrYE _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe