goprotobuf: update to new errors.
Mostly gofix, but a few needed hand-work,
such as in the generator.
R=r, bradfitz, rsc
CC=golang-dev
http://codereview.appspot.com/5335045
diff --git a/proto/all_test.go b/proto/all_test.go
index 78181fd..4b29b27 100644
--- a/proto/all_test.go
+++ b/proto/all_test.go
@@ -37,7 +37,6 @@
"fmt"
"json"
"math"
- "os"
"reflect"
"strings"
"testing"
@@ -430,7 +429,7 @@
err := o.Marshal(pb)
if err == nil {
t.Error("did not catch missing required fields")
- } else if strings.Index(err.String(), "GoTest") < 0 {
+ } else if strings.Index(err.Error(), "GoTest") < 0 {
t.Error("wrong error type:", err)
}
}
@@ -845,22 +844,22 @@
d, err := Marshal(pb)
if err != nil {
- t.Errorf(err.String())
+ t.Error(err)
}
pbd := new(GoTest)
if err := Unmarshal(d, pbd); err != nil {
- t.Errorf(err.String())
+ t.Error(err)
}
if pbd.F_BytesRequired == nil || len(pbd.F_BytesRequired) != 0 {
- t.Errorf("required empty bytes field is incorrect")
+ t.Error("required empty bytes field is incorrect")
}
if pbd.F_BytesRepeated == nil || len(pbd.F_BytesRepeated) == 1 && pbd.F_BytesRepeated[0] == nil {
- t.Errorf("repeated empty bytes field is incorrect")
+ t.Error("repeated empty bytes field is incorrect")
}
if pbd.F_BytesOptional == nil || len(pbd.F_BytesOptional) != 0 {
- t.Errorf("optional empty bytes field is incorrect")
+ t.Error("optional empty bytes field is incorrect")
}
}
@@ -874,16 +873,16 @@
d, err := Marshal(pb)
if err != nil {
- t.Errorf(err.String())
+ t.Error(err)
}
pbd := new(GoTest)
if err := Unmarshal(d, pbd); err != nil {
- t.Errorf(err.String())
+ t.Error(err)
}
if len(pbd.F_BytesRepeated) != 1 || pbd.F_BytesRepeated[0] == nil {
- t.Errorf("Unexpected value for repeated bytes field")
+ t.Error("Unexpected value for repeated bytes field")
}
}
@@ -1155,7 +1154,7 @@
_, err := Marshal(pb)
if err == nil {
t.Error("marshal: expected error, got nil")
- } else if strings.Index(err.String(), "GoTestField") < 0 {
+ } else if strings.Index(err.Error(), "GoTestField") < 0 {
t.Errorf("marshal: bad error type: %v", err)
}
@@ -1166,7 +1165,7 @@
err = Unmarshal(buf, pb)
if err == nil {
t.Error("unmarshal: expected error, got nil")
- } else if strings.Index(err.String(), "GoTestField") < 0 {
+ } else if strings.Index(err.Error(), "GoTestField") < 0 {
t.Errorf("unmarshal: bad error type: %v", err)
}
}
@@ -1174,7 +1173,7 @@
// A type that implements the Marshaler interface, but is not nillable.
type nonNillableInt uint64
-func (nni nonNillableInt) Marshal() ([]byte, os.Error) {
+func (nni nonNillableInt) Marshal() ([]byte, error) {
return EncodeVarint(uint64(nni)), nil
}
@@ -1187,7 +1186,7 @@
x uint64
}
-func (nm *nillableMessage) Marshal() ([]byte, os.Error) {
+func (nm *nillableMessage) Marshal() ([]byte, error) {
return EncodeVarint(nm.x), nil
}
diff --git a/proto/decode.go b/proto/decode.go
index 815e825..f84d571 100644
--- a/proto/decode.go
+++ b/proto/decode.go
@@ -36,6 +36,7 @@
*/
import (
+ "errors"
"fmt"
"io"
"os"
@@ -47,7 +48,7 @@
// ErrWrongType occurs when the wire encoding for the field disagrees with
// that specified in the type being decoded. This is usually caused by attempting
// to convert an encoded protocol buffer into a struct of the wrong type.
-var ErrWrongType = os.NewError("field/encoding mismatch: wrong type for field")
+var ErrWrongType = errors.New("field/encoding mismatch: wrong type for field")
// The fundamental decoders that interpret bytes on the wire.
// Those that take integer types all return uint64 and are
@@ -79,7 +80,7 @@
// This is the format for the
// int32, int64, uint32, uint64, bool, and enum
// protocol buffer types.
-func (p *Buffer) DecodeVarint() (x uint64, err os.Error) {
+func (p *Buffer) DecodeVarint() (x uint64, err error) {
// x, err already 0
i := p.index
@@ -104,7 +105,7 @@
// DecodeFixed64 reads a 64-bit integer from the Buffer.
// This is the format for the
// fixed64, sfixed64, and double protocol buffer types.
-func (p *Buffer) DecodeFixed64() (x uint64, err os.Error) {
+func (p *Buffer) DecodeFixed64() (x uint64, err error) {
// x, err already 0
i := p.index + 8
if i > len(p.buf) {
@@ -127,7 +128,7 @@
// DecodeFixed32 reads a 32-bit integer from the Buffer.
// This is the format for the
// fixed32, sfixed32, and float protocol buffer types.
-func (p *Buffer) DecodeFixed32() (x uint64, err os.Error) {
+func (p *Buffer) DecodeFixed32() (x uint64, err error) {
// x, err already 0
i := p.index + 4
if i > len(p.buf) {
@@ -146,7 +147,7 @@
// DecodeZigzag64 reads a zigzag-encoded 64-bit integer
// from the Buffer.
// This is the format used for the sint64 protocol buffer type.
-func (p *Buffer) DecodeZigzag64() (x uint64, err os.Error) {
+func (p *Buffer) DecodeZigzag64() (x uint64, err error) {
x, err = p.DecodeVarint()
if err != nil {
return
@@ -158,7 +159,7 @@
// DecodeZigzag32 reads a zigzag-encoded 32-bit integer
// from the Buffer.
// This is the format used for the sint32 protocol buffer type.
-func (p *Buffer) DecodeZigzag32() (x uint64, err os.Error) {
+func (p *Buffer) DecodeZigzag32() (x uint64, err error) {
x, err = p.DecodeVarint()
if err != nil {
return
@@ -173,7 +174,7 @@
// DecodeRawBytes reads a count-delimited byte buffer from the Buffer.
// This is the format used for the bytes protocol buffer
// type and for embedded messages.
-func (p *Buffer) DecodeRawBytes(alloc bool) (buf []byte, err os.Error) {
+func (p *Buffer) DecodeRawBytes(alloc bool) (buf []byte, err error) {
n, err := p.DecodeVarint()
if err != nil {
return
@@ -200,7 +201,7 @@
// DecodeStringBytes reads an encoded string from the Buffer.
// This is the format used for the proto2 string type.
-func (p *Buffer) DecodeStringBytes() (s string, err os.Error) {
+func (p *Buffer) DecodeStringBytes() (s string, err error) {
buf, err := p.DecodeRawBytes(false)
if err != nil {
return
@@ -211,7 +212,7 @@
// Skip the next item in the buffer. Its wire type is decoded and presented as an argument.
// If the protocol buffer has extensions, and the field matches, add it as an extension.
// Otherwise, if the XXX_unrecognized field exists, append the skipped data there.
-func (o *Buffer) skipAndSave(t reflect.Type, tag, wire int, base uintptr) os.Error {
+func (o *Buffer) skipAndSave(t reflect.Type, tag, wire int, base uintptr) error {
oi := o.index
@@ -247,10 +248,10 @@
}
// Skip the next item in the buffer. Its wire type is decoded and presented as an argument.
-func (o *Buffer) skip(t reflect.Type, tag, wire int) os.Error {
+func (o *Buffer) skip(t reflect.Type, tag, wire int) error {
var u uint64
- var err os.Error
+ var err error
switch wire {
case WireVarint:
@@ -285,13 +286,13 @@
// Unmarshaler is the interface representing objects that can unmarshal themselves.
type Unmarshaler interface {
- Unmarshal([]byte) os.Error
+ Unmarshal([]byte) error
}
// Unmarshal parses the protocol buffer representation in buf and places the
// decoded result in pb. If the struct underlying pb does not match
// the data in buf, the results can be unpredictable.
-func Unmarshal(buf []byte, pb interface{}) os.Error {
+func Unmarshal(buf []byte, pb interface{}) error {
// If the object can unmarshal itself, let it.
if u, ok := pb.(Unmarshaler); ok {
return u.Unmarshal(buf)
@@ -304,7 +305,7 @@
// Buffer and places the decoded result in pb. If the struct
// underlying pb does not match the data in the buffer, the results can be
// unpredictable.
-func (p *Buffer) Unmarshal(pb interface{}) os.Error {
+func (p *Buffer) Unmarshal(pb interface{}) error {
// If the object can unmarshal itself, let it.
if u, ok := pb.(Unmarshaler); ok {
err := u.Unmarshal(p.buf[p.index:])
@@ -329,12 +330,12 @@
}
// unmarshalType does the work of unmarshaling a structure.
-func (o *Buffer) unmarshalType(t reflect.Type, is_group bool, base uintptr) os.Error {
+func (o *Buffer) unmarshalType(t reflect.Type, is_group bool, base uintptr) error {
st := t.Elem()
prop := GetProperties(st)
required, reqFields := prop.reqCount, uint64(0)
- var err os.Error
+ var err error
for err == nil && o.index < len(o.buf) {
oi := o.index
var u uint64
@@ -426,7 +427,7 @@
)
// Decode a bool.
-func (o *Buffer) dec_bool(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_bool(p *Properties, base uintptr) error {
u, err := p.valDec(o)
if err != nil {
return err
@@ -442,7 +443,7 @@
}
// Decode an int32.
-func (o *Buffer) dec_int32(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_int32(p *Properties, base uintptr) error {
u, err := p.valDec(o)
if err != nil {
return err
@@ -458,7 +459,7 @@
}
// Decode an int64.
-func (o *Buffer) dec_int64(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_int64(p *Properties, base uintptr) error {
u, err := p.valDec(o)
if err != nil {
return err
@@ -474,7 +475,7 @@
}
// Decode a string.
-func (o *Buffer) dec_string(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_string(p *Properties, base uintptr) error {
s, err := o.DecodeStringBytes()
if err != nil {
return err
@@ -487,7 +488,7 @@
}
// Decode a slice of bytes ([]byte).
-func (o *Buffer) dec_slice_byte(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_slice_byte(p *Properties, base uintptr) error {
b, err := o.DecodeRawBytes(true)
if err != nil {
return err
@@ -498,7 +499,7 @@
}
// Decode a slice of bools ([]bool).
-func (o *Buffer) dec_slice_bool(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_slice_bool(p *Properties, base uintptr) error {
u, err := p.valDec(o)
if err != nil {
return err
@@ -509,7 +510,7 @@
}
// Decode a slice of bools ([]bool) in packed format.
-func (o *Buffer) dec_slice_packed_bool(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_slice_packed_bool(p *Properties, base uintptr) error {
v := (*[]bool)(unsafe.Pointer(base + p.offset))
nn, err := o.DecodeVarint()
@@ -532,7 +533,7 @@
}
// Decode a slice of int32s ([]int32).
-func (o *Buffer) dec_slice_int32(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_slice_int32(p *Properties, base uintptr) error {
u, err := p.valDec(o)
if err != nil {
return err
@@ -543,7 +544,7 @@
}
// Decode a slice of int32s ([]int32) in packed format.
-func (o *Buffer) dec_slice_packed_int32(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_slice_packed_int32(p *Properties, base uintptr) error {
v := (*[]int32)(unsafe.Pointer(base + p.offset))
nn, err := o.DecodeVarint()
@@ -568,7 +569,7 @@
}
// Decode a slice of int64s ([]int64).
-func (o *Buffer) dec_slice_int64(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_slice_int64(p *Properties, base uintptr) error {
u, err := p.valDec(o)
if err != nil {
return err
@@ -581,7 +582,7 @@
}
// Decode a slice of int64s ([]int64) in packed format.
-func (o *Buffer) dec_slice_packed_int64(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_slice_packed_int64(p *Properties, base uintptr) error {
v := (*[]int64)(unsafe.Pointer(base + p.offset))
nn, err := o.DecodeVarint()
@@ -605,7 +606,7 @@
}
// Decode a slice of strings ([]string).
-func (o *Buffer) dec_slice_string(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_slice_string(p *Properties, base uintptr) error {
s, err := o.DecodeStringBytes()
if err != nil {
return err
@@ -618,7 +619,7 @@
}
// Decode a slice of slice of bytes ([][]byte).
-func (o *Buffer) dec_slice_slice_byte(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_slice_slice_byte(p *Properties, base uintptr) error {
b, err := o.DecodeRawBytes(true)
if err != nil {
return err
@@ -631,7 +632,7 @@
}
// Decode a group.
-func (o *Buffer) dec_struct_group(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_struct_group(p *Properties, base uintptr) error {
ptr := (**struct{})(unsafe.Pointer(base + p.offset))
typ := p.stype.Elem()
structv := unsafe.New(typ)
@@ -644,7 +645,7 @@
}
// Decode an embedded message.
-func (o *Buffer) dec_struct_message(p *Properties, base uintptr) (err os.Error) {
+func (o *Buffer) dec_struct_message(p *Properties, base uintptr) (err error) {
raw, e := o.DecodeRawBytes(false)
if e != nil {
return e
@@ -675,17 +676,17 @@
}
// Decode a slice of embedded messages.
-func (o *Buffer) dec_slice_struct_message(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_slice_struct_message(p *Properties, base uintptr) error {
return o.dec_slice_struct(p, false, base)
}
// Decode a slice of embedded groups.
-func (o *Buffer) dec_slice_struct_group(p *Properties, base uintptr) os.Error {
+func (o *Buffer) dec_slice_struct_group(p *Properties, base uintptr) error {
return o.dec_slice_struct(p, true, base)
}
// Decode a slice of structs ([]*struct).
-func (o *Buffer) dec_slice_struct(p *Properties, is_group bool, base uintptr) os.Error {
+func (o *Buffer) dec_slice_struct(p *Properties, is_group bool, base uintptr) error {
v := (*[]*struct{})(unsafe.Pointer(base + p.offset))
y := *v
diff --git a/proto/encode.go b/proto/encode.go
index ae3820b..0b49e79 100644
--- a/proto/encode.go
+++ b/proto/encode.go
@@ -36,7 +36,7 @@
*/
import (
- "os"
+ "errors"
"reflect"
"runtime"
"unsafe"
@@ -51,20 +51,20 @@
t reflect.Type
}
-func (e *ErrRequiredNotSet) String() string {
+func (e *ErrRequiredNotSet) Error() string {
return "proto: required fields not set in " + e.t.String()
}
var (
// ErrRepeatedHasNil is the error returned if Marshal is called with
// a struct with a repeated field containing a nil element.
- ErrRepeatedHasNil = os.NewError("proto: repeated field has nil")
+ ErrRepeatedHasNil = errors.New("proto: repeated field has nil")
// ErrNil is the error returned if Marshal is called with nil.
- ErrNil = os.NewError("proto: Marshal called with nil")
+ ErrNil = errors.New("proto: Marshal called with nil")
// ErrNotPtr is the error returned if Marshal is called with a non-pointer.
- ErrNotPtr = os.NewError("proto: Marshal called with a non-pointer")
+ ErrNotPtr = errors.New("proto: Marshal called with a non-pointer")
)
// The fundamental encoders that put bytes on the wire.
@@ -95,7 +95,7 @@
// This is the format for the
// int32, int64, uint32, uint64, bool, and enum
// protocol buffer types.
-func (p *Buffer) EncodeVarint(x uint64) os.Error {
+func (p *Buffer) EncodeVarint(x uint64) error {
for x >= 1<<7 {
p.buf = append(p.buf, uint8(x&0x7f|0x80))
x >>= 7
@@ -107,7 +107,7 @@
// EncodeFixed64 writes a 64-bit integer to the Buffer.
// This is the format for the
// fixed64, sfixed64, and double protocol buffer types.
-func (p *Buffer) EncodeFixed64(x uint64) os.Error {
+func (p *Buffer) EncodeFixed64(x uint64) error {
p.buf = append(p.buf,
uint8(x),
uint8(x>>8),
@@ -123,7 +123,7 @@
// EncodeFixed32 writes a 32-bit integer to the Buffer.
// This is the format for the
// fixed32, sfixed32, and float protocol buffer types.
-func (p *Buffer) EncodeFixed32(x uint64) os.Error {
+func (p *Buffer) EncodeFixed32(x uint64) error {
p.buf = append(p.buf,
uint8(x),
uint8(x>>8),
@@ -135,7 +135,7 @@
// EncodeZigzag64 writes a zigzag-encoded 64-bit integer
// to the Buffer.
// This is the format used for the sint64 protocol buffer type.
-func (p *Buffer) EncodeZigzag64(x uint64) os.Error {
+func (p *Buffer) EncodeZigzag64(x uint64) error {
// use signed number to get arithmetic right shift.
return p.EncodeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
@@ -143,7 +143,7 @@
// EncodeZigzag32 writes a zigzag-encoded 32-bit integer
// to the Buffer.
// This is the format used for the sint32 protocol buffer type.
-func (p *Buffer) EncodeZigzag32(x uint64) os.Error {
+func (p *Buffer) EncodeZigzag32(x uint64) error {
// use signed number to get arithmetic right shift.
return p.EncodeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31))))
}
@@ -151,7 +151,7 @@
// EncodeRawBytes writes a count-delimited byte buffer to the Buffer.
// This is the format used for the bytes protocol buffer
// type and for embedded messages.
-func (p *Buffer) EncodeRawBytes(b []byte) os.Error {
+func (p *Buffer) EncodeRawBytes(b []byte) error {
p.EncodeVarint(uint64(len(b)))
p.buf = append(p.buf, b...)
return nil
@@ -159,7 +159,7 @@
// EncodeStringBytes writes an encoded string to the Buffer.
// This is the format used for the proto2 string type.
-func (p *Buffer) EncodeStringBytes(s string) os.Error {
+func (p *Buffer) EncodeStringBytes(s string) error {
p.EncodeVarint(uint64(len(s)))
p.buf = append(p.buf, s...)
return nil
@@ -167,12 +167,12 @@
// Marshaler is the interface representing objects that can marshal themselves.
type Marshaler interface {
- Marshal() ([]byte, os.Error)
+ Marshal() ([]byte, error)
}
// Marshal takes the protocol buffer struct represented by pb
// and encodes it into the wire format, returning the data.
-func Marshal(pb interface{}) ([]byte, os.Error) {
+func Marshal(pb interface{}) ([]byte, error) {
// Can the object marshal itself?
if m, ok := pb.(Marshaler); ok {
return m.Marshal()
@@ -188,7 +188,7 @@
// Marshal takes the protocol buffer struct represented by pb
// and encodes it into the wire format, writing the result to the
// Buffer.
-func (p *Buffer) Marshal(pb interface{}) os.Error {
+func (p *Buffer) Marshal(pb interface{}) error {
// Can the object marshal itself?
if m, ok := pb.(Marshaler); ok {
data, err := m.Marshal()
@@ -216,7 +216,7 @@
// Individual type encoders.
// Encode a bool.
-func (o *Buffer) enc_bool(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_bool(p *Properties, base uintptr) error {
v := *(**bool)(unsafe.Pointer(base + p.offset))
if v == nil {
return ErrNil
@@ -231,7 +231,7 @@
}
// Encode an int32.
-func (o *Buffer) enc_int32(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_int32(p *Properties, base uintptr) error {
v := *(**int32)(unsafe.Pointer(base + p.offset))
if v == nil {
return ErrNil
@@ -243,7 +243,7 @@
}
// Encode an int64.
-func (o *Buffer) enc_int64(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_int64(p *Properties, base uintptr) error {
v := *(**int64)(unsafe.Pointer(base + p.offset))
if v == nil {
return ErrNil
@@ -255,7 +255,7 @@
}
// Encode a string.
-func (o *Buffer) enc_string(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_string(p *Properties, base uintptr) error {
v := *(**string)(unsafe.Pointer(base + p.offset))
if v == nil {
return ErrNil
@@ -276,7 +276,7 @@
}
// Encode a message struct.
-func (o *Buffer) enc_struct_message(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_struct_message(p *Properties, base uintptr) error {
// Can the object marshal itself?
iv := unsafe.Unreflect(p.stype, unsafe.Pointer(base+p.offset))
if m, ok := iv.(Marshaler); ok {
@@ -318,7 +318,7 @@
}
// Encode a group struct.
-func (o *Buffer) enc_struct_group(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_struct_group(p *Properties, base uintptr) error {
v := *(**struct{})(unsafe.Pointer(base + p.offset))
if v == nil {
return ErrNil
@@ -336,7 +336,7 @@
}
// Encode a slice of bools ([]bool).
-func (o *Buffer) enc_slice_bool(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_slice_bool(p *Properties, base uintptr) error {
s := *(*[]uint8)(unsafe.Pointer(base + p.offset))
l := len(s)
if l == 0 {
@@ -353,7 +353,7 @@
}
// Encode a slice of bools ([]bool) in packed format.
-func (o *Buffer) enc_slice_packed_bool(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_slice_packed_bool(p *Properties, base uintptr) error {
s := *(*[]uint8)(unsafe.Pointer(base + p.offset))
l := len(s)
if l == 0 {
@@ -371,7 +371,7 @@
}
// Encode a slice of bytes ([]byte).
-func (o *Buffer) enc_slice_byte(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_slice_byte(p *Properties, base uintptr) error {
s := *(*[]uint8)(unsafe.Pointer(base + p.offset))
if s == nil {
return ErrNil
@@ -382,7 +382,7 @@
}
// Encode a slice of int32s ([]int32).
-func (o *Buffer) enc_slice_int32(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_slice_int32(p *Properties, base uintptr) error {
s := *(*[]uint32)(unsafe.Pointer(base + p.offset))
l := len(s)
if l == 0 {
@@ -397,7 +397,7 @@
}
// Encode a slice of int32s ([]int32) in packed format.
-func (o *Buffer) enc_slice_packed_int32(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_slice_packed_int32(p *Properties, base uintptr) error {
s := *(*[]uint32)(unsafe.Pointer(base + p.offset))
l := len(s)
if l == 0 {
@@ -416,7 +416,7 @@
}
// Encode a slice of int64s ([]int64).
-func (o *Buffer) enc_slice_int64(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_slice_int64(p *Properties, base uintptr) error {
s := *(*[]uint64)(unsafe.Pointer(base + p.offset))
l := len(s)
if l == 0 {
@@ -431,7 +431,7 @@
}
// Encode a slice of int64s ([]int64) in packed format.
-func (o *Buffer) enc_slice_packed_int64(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_slice_packed_int64(p *Properties, base uintptr) error {
s := *(*[]uint64)(unsafe.Pointer(base + p.offset))
l := len(s)
if l == 0 {
@@ -450,7 +450,7 @@
}
// Encode a slice of slice of bytes ([][]byte).
-func (o *Buffer) enc_slice_slice_byte(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_slice_slice_byte(p *Properties, base uintptr) error {
ss := *(*[][]uint8)(unsafe.Pointer(base + p.offset))
l := len(ss)
if l == 0 {
@@ -465,7 +465,7 @@
}
// Encode a slice of strings ([]string).
-func (o *Buffer) enc_slice_string(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_slice_string(p *Properties, base uintptr) error {
ss := *(*[]string)(unsafe.Pointer(base + p.offset))
l := len(ss)
for i := 0; i < l; i++ {
@@ -477,7 +477,7 @@
}
// Encode a slice of message structs ([]*struct).
-func (o *Buffer) enc_slice_struct_message(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_slice_struct_message(p *Properties, base uintptr) error {
s := *(*[]*struct{})(unsafe.Pointer(base + p.offset))
l := len(s)
typ := p.stype.Elem()
@@ -527,7 +527,7 @@
}
// Encode a slice of group structs ([]*struct).
-func (o *Buffer) enc_slice_struct_group(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_slice_struct_group(p *Properties, base uintptr) error {
s := *(*[]*struct{})(unsafe.Pointer(base + p.offset))
l := len(s)
typ := p.stype.Elem()
@@ -556,7 +556,7 @@
}
// Encode an extension map.
-func (o *Buffer) enc_map(p *Properties, base uintptr) os.Error {
+func (o *Buffer) enc_map(p *Properties, base uintptr) error {
v := *(*map[int32]Extension)(unsafe.Pointer(base + p.offset))
if err := encodeExtensionMap(v); err != nil {
return err
@@ -568,7 +568,7 @@
}
// Encode a struct.
-func (o *Buffer) enc_struct(t reflect.Type, base uintptr) os.Error {
+func (o *Buffer) enc_struct(t reflect.Type, base uintptr) error {
prop := GetProperties(t)
required := prop.reqCount
// Encode fields in tag order so that decoders may use optimizations
diff --git a/proto/equal.go b/proto/equal.go
index 405d99a..be235a6 100644
--- a/proto/equal.go
+++ b/proto/equal.go
@@ -37,7 +37,6 @@
import (
"bytes"
"log"
- "os"
"reflect"
"strings"
)
@@ -190,7 +189,7 @@
log.Printf("proto: don't know how to compare extension %d of %v", extNum, base)
continue
}
- var err os.Error
+ var err error
if m1 == nil {
m1, err = decodeExtension(e1.enc, desc)
}
diff --git a/proto/extensions.go b/proto/extensions.go
index e6b7b55..d02cadc 100644
--- a/proto/extensions.go
+++ b/proto/extensions.go
@@ -36,7 +36,7 @@
*/
import (
- "os"
+ "errors"
"reflect"
"strconv"
)
@@ -97,20 +97,20 @@
}
// checkExtensionTypes checks that the given extension is valid for pb.
-func checkExtensionTypes(pb extendableProto, extension *ExtensionDesc) os.Error {
+func checkExtensionTypes(pb extendableProto, extension *ExtensionDesc) error {
// Check the extended type.
if a, b := reflect.TypeOf(pb), reflect.TypeOf(extension.ExtendedType); a != b {
- return os.NewError("bad extended type; " + b.String() + " does not extend " + a.String())
+ return errors.New("bad extended type; " + b.String() + " does not extend " + a.String())
}
// Check the range.
if !isExtensionField(pb, extension.Field) {
- return os.NewError("bad extension number; not in declared ranges")
+ return errors.New("bad extension number; not in declared ranges")
}
return nil
}
// encodeExtensionMap encodes any unmarshaled (unencoded) extensions in m.
-func encodeExtensionMap(m map[int32]Extension) os.Error {
+func encodeExtensionMap(m map[int32]Extension) error {
for k, e := range m {
if e.value == nil || e.desc == nil {
// Extension is only in its encoded form.
@@ -154,7 +154,7 @@
// GetExtension parses and returns the given extension of pb.
// If the extension is not present it returns (nil, nil).
-func GetExtension(pb extendableProto, extension *ExtensionDesc) (interface{}, os.Error) {
+func GetExtension(pb extendableProto, extension *ExtensionDesc) (interface{}, error) {
if err := checkExtensionTypes(pb, extension); err != nil {
return nil, err
}
@@ -169,7 +169,7 @@
// This shouldn't happen. If it does, it means that
// GetExtension was called twice with two different
// descriptors with the same field number.
- return nil, os.NewError("proto: descriptor conflict")
+ return nil, errors.New("proto: descriptor conflict")
}
return e.value, nil
}
@@ -188,7 +188,7 @@
}
// decodeExtension decodes an extension encoded in b.
-func decodeExtension(b []byte, extension *ExtensionDesc) (interface{}, os.Error) {
+func decodeExtension(b []byte, extension *ExtensionDesc) (interface{}, error) {
// Discard wire type and field number varint. It isn't needed.
_, n := DecodeVarint(b)
o := NewBuffer(b[n:])
@@ -210,10 +210,10 @@
// GetExtensions returns a slice of the extensions present in pb that are also listed in es.
// The returned slice has the same length as es; missing extensions will appear as nil elements.
-func GetExtensions(pb interface{}, es []*ExtensionDesc) (extensions []interface{}, err os.Error) {
+func GetExtensions(pb interface{}, es []*ExtensionDesc) (extensions []interface{}, err error) {
epb, ok := pb.(extendableProto)
if !ok {
- err = os.NewError("not an extendable proto")
+ err = errors.New("not an extendable proto")
return
}
extensions = make([]interface{}, len(es))
@@ -231,13 +231,13 @@
// - AddExtension
// SetExtension sets the specified extension of pb to the specified value.
-func SetExtension(pb extendableProto, extension *ExtensionDesc, value interface{}) os.Error {
+func SetExtension(pb extendableProto, extension *ExtensionDesc, value interface{}) error {
if err := checkExtensionTypes(pb, extension); err != nil {
return err
}
typ := reflect.TypeOf(extension.ExtensionType)
if typ != reflect.TypeOf(value) {
- return os.NewError("bad extension value type")
+ return errors.New("bad extension value type")
}
pb.ExtensionMap()[extension.Field] = Extension{desc: extension, value: value}
diff --git a/proto/message_set.go b/proto/message_set.go
index 05e18a8..b32ae06 100644
--- a/proto/message_set.go
+++ b/proto/message_set.go
@@ -37,13 +37,13 @@
import (
"bytes"
- "os"
+ "errors"
"reflect"
)
// ErrNoMessageTypeId occurs when a protocol buffer does not have a message type ID.
// A message type ID is required for storing a protocol buffer in a message set.
-var ErrNoMessageTypeId = os.NewError("proto does not have a message type ID")
+var ErrNoMessageTypeId = errors.New("proto does not have a message type ID")
// The first two types (_MessageSet_Item and MessageSet)
// model what the protocol compiler produces for the following protocol message:
@@ -101,7 +101,7 @@
return false
}
-func (ms *MessageSet) Unmarshal(pb interface{}) os.Error {
+func (ms *MessageSet) Unmarshal(pb interface{}) error {
if item := ms.find(pb); item != nil {
return Unmarshal(item.Message, pb)
}
@@ -111,7 +111,7 @@
return nil // TODO: return error instead?
}
-func (ms *MessageSet) Marshal(pb interface{}) os.Error {
+func (ms *MessageSet) Marshal(pb interface{}) error {
msg, err := Marshal(pb)
if err != nil {
return err
@@ -146,7 +146,7 @@
// MarshalMessageSet encodes the extension map represented by m in the message set wire format.
// It is called by generated Marshal methods on protocol buffer messages with the message_set_wire_format option.
-func MarshalMessageSet(m map[int32]Extension) ([]byte, os.Error) {
+func MarshalMessageSet(m map[int32]Extension) ([]byte, error) {
if err := encodeExtensionMap(m); err != nil {
return nil, err
}
@@ -168,7 +168,7 @@
// UnmarshalMessageSet decodes the extension map encoded in buf in the message set wire format.
// It is called by generated Unmarshal methods on protocol buffer messages with the message_set_wire_format option.
-func UnmarshalMessageSet(buf []byte, m map[int32]Extension) os.Error {
+func UnmarshalMessageSet(buf []byte, m map[int32]Extension) error {
ms := new(MessageSet)
if err := Unmarshal(buf, ms); err != nil {
return err
diff --git a/proto/properties.go b/proto/properties.go
index cec84ba..206bf1d 100644
--- a/proto/properties.go
+++ b/proto/properties.go
@@ -62,18 +62,18 @@
// Encoders are defined in encoder.go
// An encoder outputs the full representation of a field, including its
// tag and encoder type.
-type encoder func(p *Buffer, prop *Properties, base uintptr) os.Error
+type encoder func(p *Buffer, prop *Properties, base uintptr) error
// A valueEncoder encodes a single integer in a particular encoding.
-type valueEncoder func(o *Buffer, x uint64) os.Error
+type valueEncoder func(o *Buffer, x uint64) error
// Decoders are defined in decode.go
// A decoder creates a value from its wire representation.
// Unrecognized subelements are saved in unrec.
-type decoder func(p *Buffer, prop *Properties, base uintptr) os.Error
+type decoder func(p *Buffer, prop *Properties, base uintptr) error
// A valueDecoder decodes a single integer in a particular encoding.
-type valueDecoder func(o *Buffer) (x uint64, err os.Error)
+type valueDecoder func(o *Buffer) (x uint64, err error)
// StructProperties represents properties for all the fields of a struct.
type StructProperties struct {
@@ -190,7 +190,7 @@
return
}
- var err os.Error
+ var err error
p.Tag, err = strconv.Atoi(fields[1])
if err != nil {
return
@@ -476,7 +476,7 @@
}
// Get the address and type of a pointer to a struct from an interface.
-func getbase(pb interface{}) (t reflect.Type, b uintptr, err os.Error) {
+func getbase(pb interface{}) (t reflect.Type, b uintptr, err error) {
if pb == nil {
err = ErrNil
return
diff --git a/proto/text.go b/proto/text.go
index 0e2b874..9848858 100644
--- a/proto/text.go
+++ b/proto/text.go
@@ -54,7 +54,7 @@
c [1]byte // scratch
}
-func (w *textWriter) Write(p []byte) (n int, err os.Error) {
+func (w *textWriter) Write(p []byte) (n int, err error) {
n, err = len(p), nil
frags := strings.Split(string(p), "\n")
@@ -81,7 +81,7 @@
return
}
-func (w *textWriter) WriteByte(c byte) os.Error {
+func (w *textWriter) WriteByte(c byte) error {
w.c[0] = c
_, err := w.Write(w.c[:])
return err
@@ -341,7 +341,7 @@
}
}
-func writeUnknownInt(w *textWriter, x uint64, err os.Error) {
+func writeUnknownInt(w *textWriter, x uint64, err error) {
if err == nil {
fmt.Fprint(w, x)
} else {
diff --git a/proto/text_parser.go b/proto/text_parser.go
index 714c803..358764b 100644
--- a/proto/text_parser.go
+++ b/proto/text_parser.go
@@ -36,19 +36,18 @@
import (
"fmt"
- "os"
"reflect"
"strconv"
)
-// ParseError satisfies the os.Error interface.
+// ParseError satisfies the error interface.
type ParseError struct {
Message string
Line int // 1-based line number
Offset int // 0-based byte offset from start of input
}
-func (p *ParseError) String() string {
+func (p *ParseError) Error() string {
if p.Line == 1 {
// show offset only for first line
return fmt.Sprintf("line 1.%d: %v", p.Offset, p.Message)
@@ -443,10 +442,10 @@
return p.errorf("invalid %v: %v", v.Type(), tok.value)
}
-var notPtrStruct os.Error = &ParseError{"destination is not a pointer to a struct", 0, 0}
+var notPtrStruct error = &ParseError{"destination is not a pointer to a struct", 0, 0}
// UnmarshalText reads a protobuffer in Text format.
-func UnmarshalText(s string, pb interface{}) os.Error {
+func UnmarshalText(s string, pb interface{}) error {
v := reflect.ValueOf(pb)
if v.Kind() != reflect.Ptr || v.Elem().Kind() != reflect.Struct {
return notPtrStruct
diff --git a/proto/text_parser_test.go b/proto/text_parser_test.go
index 2383828..cf9d70c 100644
--- a/proto/text_parser_test.go
+++ b/proto/text_parser_test.go
@@ -259,9 +259,9 @@
// We do expect failure.
if err == nil {
t.Errorf("Test %d: Didn't get expected error: %v", i, test.error)
- } else if err.String() != test.error {
+ } else if err.Error() != test.error {
t.Errorf("Test %d: Incorrect error.\nHave: %v\nWant: %v",
- i, err.String(), test.error)
+ i, err, test.error)
}
}
}
@@ -293,7 +293,7 @@
pb := new(MyMessage)
err := UnmarshalText(benchInput, pb)
if err != nil {
- panic("Bad benchmark input: " + err.String())
+ panic("Bad benchmark input: " + err.Error())
}
}