"bufio"
"bytes"
"errors"
+ "fmt"
"io"
"math/big"
"reflect"
break
}
- // unknown value
- panic(&SyntaxError{
- Offset: d.offset - 1,
- What: errors.New("unknown value type (invalid bencode?)"),
- })
+ d.raiseUnknownValueType(b, d.offset-1)
}
return true
break
}
- // unknown value
- panic(&SyntaxError{
- Offset: d.offset - 1,
- What: errors.New("unknown value type (invalid bencode?)"),
- })
+ d.raiseUnknownValueType(b, d.offset-1)
}
return true
}
+// An unknown bencode type character was encountered.
+func (d *decoder) raiseUnknownValueType(b byte, offset int64) {
+ panic(&SyntaxError{
+ Offset: offset,
+ What: fmt.Errorf("unknown value type %+q", b),
+ })
+}
+
func (d *decoder) parse_value_interface() (interface{}, bool) {
b, err := d.ReadByte()
if err != nil {
return d.parse_string_interface(), true
}
- // unknown value
- panic(&SyntaxError{
- Offset: d.offset - 1,
- What: errors.New("unknown value type (invalid bencode?)"),
- })
+ d.raiseUnknownValueType(b, d.offset-1)
+ panic("unreachable")
}
}