diff options
Diffstat (limited to 'vendor/github.com/modern-go/reflect2/go_above_118.go')
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/go_above_118.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/vendor/github.com/modern-go/reflect2/go_above_118.go b/vendor/github.com/modern-go/reflect2/go_above_118.go new file mode 100644 index 0000000..2b4116f --- /dev/null +++ b/vendor/github.com/modern-go/reflect2/go_above_118.go | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | //+build go1.18 | ||
| 2 | |||
| 3 | package reflect2 | ||
| 4 | |||
| 5 | import ( | ||
| 6 | "unsafe" | ||
| 7 | ) | ||
| 8 | |||
| 9 | // m escapes into the return value, but the caller of mapiterinit | ||
| 10 | // doesn't let the return value escape. | ||
| 11 | //go:noescape | ||
| 12 | //go:linkname mapiterinit reflect.mapiterinit | ||
| 13 | func mapiterinit(rtype unsafe.Pointer, m unsafe.Pointer, it *hiter) | ||
| 14 | |||
| 15 | func (type2 *UnsafeMapType) UnsafeIterate(obj unsafe.Pointer) MapIterator { | ||
| 16 | var it hiter | ||
| 17 | mapiterinit(type2.rtype, *(*unsafe.Pointer)(obj), &it) | ||
| 18 | return &UnsafeMapIterator{ | ||
| 19 | hiter: &it, | ||
| 20 | pKeyRType: type2.pKeyRType, | ||
| 21 | pElemRType: type2.pElemRType, | ||
| 22 | } | ||
| 23 | } \ No newline at end of file | ||