reflect: Value.Set: fix direction of assignment check
Этот коммит содержится в:
родитель
63c7a41337
коммит
9c0bf8bd2c
2 изменённых файлов: 10 добавлений и 1 удалений
|
@ -907,7 +907,7 @@ func (it *MapIter) Next() bool {
|
|||
|
||||
func (v Value) Set(x Value) {
|
||||
v.checkAddressable()
|
||||
if !v.typecode.AssignableTo(x.typecode) {
|
||||
if !x.typecode.AssignableTo(v.typecode) {
|
||||
panic("reflect: cannot set")
|
||||
}
|
||||
|
||||
|
|
|
@ -504,6 +504,15 @@ func TestTinyNumMethods(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestAssignableTo(t *testing.T) {
|
||||
var a any
|
||||
refa := ValueOf(&a).Elem()
|
||||
refa.Set(ValueOf(4))
|
||||
if got, want := refa.Interface().(int), 4; got != want {
|
||||
t.Errorf("AssignableTo / Set failed, got %v, want %v", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func equal[T comparable](a, b []T) bool {
|
||||
if len(a) != len(b) {
|
||||
return false
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче