1
0
mirror of https://github.com/json-iterator/go.git synced 2025-06-24 23:16:47 +02:00

Any Get will never return nil

This commit is contained in:
Tao Wen
2017-01-26 16:24:01 +08:00
parent 9abc2f52b0
commit 85edb698c8
12 changed files with 106 additions and 13 deletions

View File

@ -1,11 +1,18 @@
package jsoniter
import "fmt"
type invalidAny struct {
baseAny
err error
}
func (any *invalidAny) LastError() error {
return nil
return any.err
}
func (any *invalidAny) ValueType() ValueType {
return Invalid
}
func (any *invalidAny) ToBool() bool {
@ -40,7 +47,11 @@ func (any *invalidAny) WriteTo(stream *Stream) {
}
func (any *invalidAny) Get(path ...interface{}) Any {
return any
if any.err == nil {
return &invalidAny{baseAny{}, fmt.Errorf("get %v from invalid", path)}
} else {
return &invalidAny{baseAny{}, fmt.Errorf("%v, get %v from invalid", any.err, path)}
}
}
func (any *invalidAny) Parse() *Iterator {