Do not call MarshalText on yaml.Marshaler.

Fixes #58.
This commit is contained in:
Gustavo Niemeyer 2015-01-16 17:58:22 -02:00
Родитель 71e7ede9d4
Коммит 1bf6a7ce15
2 изменённых файлов: 5 добавлений и 2 удалений

Просмотреть файл

@ -74,8 +74,7 @@ func (e *encoder) marshal(tag string, in reflect.Value) {
return
}
in = reflect.ValueOf(v)
}
if m, ok := iface.(encoding.TextMarshaler); ok {
} else if m, ok := iface.(encoding.TextMarshaler); ok {
text, err := m.MarshalText()
if err != nil {
fail(err)

Просмотреть файл

@ -356,6 +356,10 @@ type marshalerType struct {
value interface{}
}
func (o marshalerType) MarshalText() ([]byte, error) {
panic("MarshalText called on type with MarshalYAML")
}
func (o marshalerType) MarshalYAML() (interface{}, error) {
return o.value, nil
}