Skip to content

Instantly share code, notes, and snippets.

@nyaray
Last active July 20, 2019 16:05
Show Gist options
  • Save nyaray/14f4214979b214e4b6069750fcf425bb to your computer and use it in GitHub Desktop.
Save nyaray/14f4214979b214e4b6069750fcf425bb to your computer and use it in GitHub Desktop.
A simple demo of a confusing error
# works, yay \o/
a1 = {<<1::1>>, <<0::1>>}
a2 = {"", ""}
reducer = fn {bw, accent}, {bw_acc, accent_acc} -> {{<<bw_acc::bitstring, bw::bits-1>>}, {<<accent_acc::bitstring, accent::bits-1>>}} end
reducer.(a1, a2)
# just fails without much info
# setup
a1 = {<<1::1>>, <<0::1>>}
a2 = {"", ""}
reducer = fn {bw, accent}, {bw_acc, accent_acc} -> {{<<bw_acc, bw::1>>}, {<<accent_acc, accent::1>>}} end
reducer.(a1, a2)
# => ** (ArgumentError) argument error
try do reducer.(a1, a2) rescue _argument_error -> __STACKTRACE__ end
# => [
# {:eval_bits, :eval_exp_field1, 6, [file: 'eval_bits.erl', line: 101]},
# {:eval_bits, :eval_field, 3, [file: 'eval_bits.erl', line: 92]},
# {:eval_bits, :expr_grp, 4, [file: 'eval_bits.erl', line: 68]},
# {:erl_eval, :expr, 5, [file: 'erl_eval.erl', line: 484]},
# {:erl_eval, :expr_list, 6, [file: 'erl_eval.erl', line: 888]},
# {:erl_eval, :expr, 5, [file: 'erl_eval.erl', line: 240]},
# {:erl_eval, :expr_list, 6, [file: 'erl_eval.erl', line: 888]}
#]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment