runtime: implement comparing uintptr values in interfaces

This was an oversight in https://github.com/tinygo-org/tinygo/pull/686.
With this PR, it's possible to compare interface values that contain
values/fields of type uintptr.
Этот коммит содержится в:
Ayke van Laethem 2019-11-09 19:12:40 +01:00 коммит произвёл Jaden Weiss
родитель fb39e0917b
коммит 45b5decb4e
2 изменённых файлов: 2 добавлений и 1 удалений

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

@ -47,7 +47,7 @@ func reflectValueEqual(x, y reflect.Value) bool {
return x.Bool() == y.Bool()
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
return x.Int() == y.Int()
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
return x.Uint() == y.Uint()
case reflect.Float32, reflect.Float64:
return x.Float() == y.Float()

1
testdata/interface.go предоставленный
Просмотреть файл

@ -50,6 +50,7 @@ func main() {
{true, uint16(1), uint16(1)},
{true, uint32(1), uint32(1)},
{true, uint64(1), uint64(1)},
{true, uintptr(1), uintptr(1)},
{true, float32(1.1), float32(1.1)},
{true, float64(1.1), float64(1.1)},
{true, complex(100, 8), complex(100, 8)},