Этот коммит содержится в:
Ayke van Laethem 2020-01-22 20:05:36 +01:00 коммит произвёл Ron Evans
родитель 36db75b366
коммит 3010466c55
2 изменённых файлов: 15 добавлений и 0 удалений

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

@ -133,6 +133,14 @@ func TypeOf(i interface{}) Type {
return ValueOf(i).typecode
}
func PtrTo(t Type) Type {
ptrType := t<<5 | 5 // 0b0101 == 5
if ptrType>>5 != t {
panic("reflect: PtrTo type does not fit")
}
return ptrType
}
func (t Type) String() string {
return "T"
}

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

@ -265,6 +265,13 @@ func main() {
println("type assertion failed (but should succeed)")
}
if reflect.TypeOf(new(myint)) != reflect.PtrTo(reflect.TypeOf(myint(0))) {
println("PtrTo failed for type myint")
}
if reflect.TypeOf(new(myslice)) != reflect.PtrTo(reflect.TypeOf(make(myslice, 0))) {
println("PtrTo failed for type myslice")
}
println("\nstruct tags")
TestStructTag()
}