devinus / poison

An incredibly fast, pure Elixir JSON library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error when parsing soft hyphens

eteubert opened this issue · comments

iex ▶ '\u00AD'
[173]

iex ▶ Poison.encode(<<173, 144>>)

▶▶▶
** (FunctionClauseError) no function clause matching in Poison.Encoder.BitString.chunk_size/3    
    
    The following arguments were given to Poison.Encoder.BitString.chunk_size/3:
    
        # 1
        <<173, 144>>
    
        # 2
        nil
    
        # 3
        0
    
    Attempted function clauses (showing 7 out of 7):
    
        defp chunk_size(<<char::integer(), _::binary()>>, _mode, acc) when char <= 31 or (char === 92 or char === 34)
        defp chunk_size(<<char::integer(), rest::binary()>>, mode, acc) when char < 128
        defp chunk_size(<<_::utf8(), _::binary()>>, :unicode, acc)
        defp chunk_size(<<char::utf8(), _::binary()>>, :javascript, acc) when char === 8233 or char === 8232
        defp chunk_size(<<codepoint::utf8(), rest::binary()>>, mode, acc)
        defp chunk_size(<<char::integer()>>, _, _)
        defp chunk_size("", _, acc)
    
    (poison) lib/poison/encoder.ex:139: Poison.Encoder.BitString.chunk_size/3
    (poison) lib/poison/encoder.ex:134: Poison.Encoder.BitString.escape/2
    (poison) lib/poison/encoder.ex:88: Poison.Encoder.BitString.encode/2
    (poison) lib/poison.ex:41: Poison.encode!/2
    (poison) lib/poison.ex:15: Poison.encode/2

See https://en.wikipedia.org/wiki/Soft_hyphen