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

Reply via email to