mirror of
https://github.com/coredns/coredns.git
synced 2025-11-03 02:33:21 -05:00
Update k8s client-go to v8.0.0 (#1922)
k8s' client-go has been updated to v8.0.0 (1.11). This fix updates client-go dependency so that it is in sync. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This commit is contained in:
1
vendor/github.com/modern-go/reflect2/.gitignore
generated
vendored
1
vendor/github.com/modern-go/reflect2/.gitignore
generated
vendored
@@ -1 +1,2 @@
|
||||
/vendor
|
||||
/coverage.txt
|
||||
|
||||
15
vendor/github.com/modern-go/reflect2/.travis.yml
generated
vendored
Normal file
15
vendor/github.com/modern-go/reflect2/.travis.yml
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
language: go
|
||||
|
||||
go:
|
||||
- 1.8.x
|
||||
- 1.x
|
||||
|
||||
before_install:
|
||||
- go get -t -v ./...
|
||||
- go get -t -v github.com/modern-go/reflect2-tests/...
|
||||
|
||||
script:
|
||||
- ./test.sh
|
||||
|
||||
after_success:
|
||||
- bash <(curl -s https://codecov.io/bash)
|
||||
2
vendor/github.com/modern-go/reflect2/Gopkg.toml
generated
vendored
2
vendor/github.com/modern-go/reflect2/Gopkg.toml
generated
vendored
@@ -24,7 +24,7 @@
|
||||
# go-tests = true
|
||||
# unused-packages = true
|
||||
|
||||
ignored = ["github.com/modern-go/test","github.com/modern-go/test/must","github.com/modern-go/test/should"]
|
||||
ignored = []
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/modern-go/concurrent"
|
||||
|
||||
69
vendor/github.com/modern-go/reflect2/README.md
generated
vendored
69
vendor/github.com/modern-go/reflect2/README.md
generated
vendored
@@ -1,2 +1,71 @@
|
||||
# reflect2
|
||||
|
||||
[](https://sourcegraph.com/github.com/modern-go/reflect2?badge)
|
||||
[](http://godoc.org/github.com/modern-go/reflect2)
|
||||
[](https://travis-ci.org/modern-go/reflect2)
|
||||
[](https://codecov.io/gh/modern-go/reflect2)
|
||||
[](https://goreportcard.com/report/github.com/modern-go/reflect2)
|
||||
[](https://raw.githubusercontent.com/modern-go/reflect2/master/LICENSE)
|
||||
|
||||
reflect api that avoids runtime reflect.Value cost
|
||||
|
||||
* reflect get/set interface{}, with type checking
|
||||
* reflect get/set unsafe.Pointer, without type checking
|
||||
* `reflect2.TypeByName` works like `Class.forName` found in java
|
||||
|
||||
[json-iterator](https://github.com/json-iterator/go) use this package to save runtime dispatching cost.
|
||||
This package is designed for low level libraries to optimize reflection performance.
|
||||
General application should still use reflect standard library.
|
||||
|
||||
# reflect2.TypeByName
|
||||
|
||||
```go
|
||||
// given package is github.com/your/awesome-package
|
||||
type MyStruct struct {
|
||||
// ...
|
||||
}
|
||||
|
||||
// will return the type
|
||||
reflect2.TypeByName("awesome-package.MyStruct")
|
||||
// however, if the type has not been used
|
||||
// it will be eliminated by compiler, so we can not get it in runtime
|
||||
```
|
||||
|
||||
# reflect2 get/set interface{}
|
||||
|
||||
```go
|
||||
valType := reflect2.TypeOf(1)
|
||||
i := 1
|
||||
j := 10
|
||||
valType.Set(&i, &j)
|
||||
// i will be 10
|
||||
```
|
||||
|
||||
to get set `type`, always use its pointer `*type`
|
||||
|
||||
# reflect2 get/set unsafe.Pointer
|
||||
|
||||
```go
|
||||
valType := reflect2.TypeOf(1)
|
||||
i := 1
|
||||
j := 10
|
||||
valType.UnsafeSet(unsafe.Pointer(&i), unsafe.Pointer(&j))
|
||||
// i will be 10
|
||||
```
|
||||
|
||||
to get set `type`, always use its pointer `*type`
|
||||
|
||||
# benchmark
|
||||
|
||||
Benchmark is not necessary for this package. It does nothing actually.
|
||||
As it is just a thin wrapper to make go runtime public.
|
||||
Both `reflect2` and `reflect` call same function
|
||||
provided by `runtime` package exposed by go language.
|
||||
|
||||
# unsafe safety
|
||||
|
||||
Instead of casting `[]byte` to `sliceHeader` in your application using unsafe.
|
||||
We can use reflect2 instead. This way, if `sliceHeader` changes in the future,
|
||||
only reflect2 need to be upgraded.
|
||||
|
||||
reflect2 tries its best to keep the implementation same as reflect (by testing).
|
||||
2
vendor/github.com/modern-go/reflect2/go_below_17.go
generated
vendored
2
vendor/github.com/modern-go/reflect2/go_below_17.go
generated
vendored
@@ -6,4 +6,4 @@ import "unsafe"
|
||||
|
||||
func resolveTypeOff(rtype unsafe.Pointer, off int32) unsafe.Pointer {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
22
vendor/github.com/modern-go/reflect2/reflect2.go
generated
vendored
22
vendor/github.com/modern-go/reflect2/reflect2.go
generated
vendored
@@ -1,9 +1,9 @@
|
||||
package reflect2
|
||||
|
||||
import (
|
||||
"github.com/modern-go/concurrent"
|
||||
"reflect"
|
||||
"unsafe"
|
||||
"github.com/modern-go/concurrent"
|
||||
)
|
||||
|
||||
type Type interface {
|
||||
@@ -136,7 +136,7 @@ type frozenConfig struct {
|
||||
func (cfg Config) Froze() *frozenConfig {
|
||||
return &frozenConfig{
|
||||
useSafeImplementation: cfg.UseSafeImplementation,
|
||||
cache: concurrent.NewMap(),
|
||||
cache: concurrent.NewMap(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,6 +150,9 @@ func (cfg *frozenConfig) TypeOf(obj interface{}) Type {
|
||||
}
|
||||
|
||||
func (cfg *frozenConfig) Type2(type1 reflect.Type) Type {
|
||||
if type1 == nil {
|
||||
return nil
|
||||
}
|
||||
cacheKey := uintptr(unpackEFace(type1).data)
|
||||
typeObj, found := cfg.cache.Load(cacheKey)
|
||||
if found {
|
||||
@@ -213,6 +216,9 @@ func TypeOfPtr(obj interface{}) PtrType {
|
||||
}
|
||||
|
||||
func Type2(type1 reflect.Type) Type {
|
||||
if type1 == nil {
|
||||
return nil
|
||||
}
|
||||
return ConfigUnsafe.Type2(type1)
|
||||
}
|
||||
|
||||
@@ -279,4 +285,14 @@ func likePtrType(typ reflect.Type) bool {
|
||||
func NoEscape(p unsafe.Pointer) unsafe.Pointer {
|
||||
x := uintptr(p)
|
||||
return unsafe.Pointer(x ^ 0)
|
||||
}
|
||||
}
|
||||
|
||||
func UnsafeCastString(str string) []byte {
|
||||
stringHeader := (*reflect.StringHeader)(unsafe.Pointer(&str))
|
||||
sliceHeader := &reflect.SliceHeader{
|
||||
Data: stringHeader.Data,
|
||||
Cap: stringHeader.Len,
|
||||
Len: stringHeader.Len,
|
||||
}
|
||||
return *(*[]byte)(unsafe.Pointer(sliceHeader))
|
||||
}
|
||||
|
||||
32
vendor/github.com/modern-go/reflect2/reflect2_kind.go
generated
vendored
32
vendor/github.com/modern-go/reflect2/reflect2_kind.go
generated
vendored
@@ -11,20 +11,20 @@ func DefaultTypeOfKind(kind reflect.Kind) Type {
|
||||
}
|
||||
|
||||
var kindTypes = map[reflect.Kind]Type{
|
||||
reflect.Bool: TypeOf(true),
|
||||
reflect.Uint8: TypeOf(uint8(0)),
|
||||
reflect.Int8: TypeOf(int8(0)),
|
||||
reflect.Uint16: TypeOf(uint16(0)),
|
||||
reflect.Int16: TypeOf(int16(0)),
|
||||
reflect.Uint32: TypeOf(uint32(0)),
|
||||
reflect.Int32: TypeOf(int32(0)),
|
||||
reflect.Uint64: TypeOf(uint64(0)),
|
||||
reflect.Int64: TypeOf(int64(0)),
|
||||
reflect.Uint: TypeOf(uint(0)),
|
||||
reflect.Int: TypeOf(int(0)),
|
||||
reflect.Float32: TypeOf(float32(0)),
|
||||
reflect.Float64: TypeOf(float64(0)),
|
||||
reflect.Uintptr: TypeOf(uintptr(0)),
|
||||
reflect.String: TypeOf(""),
|
||||
reflect.Bool: TypeOf(true),
|
||||
reflect.Uint8: TypeOf(uint8(0)),
|
||||
reflect.Int8: TypeOf(int8(0)),
|
||||
reflect.Uint16: TypeOf(uint16(0)),
|
||||
reflect.Int16: TypeOf(int16(0)),
|
||||
reflect.Uint32: TypeOf(uint32(0)),
|
||||
reflect.Int32: TypeOf(int32(0)),
|
||||
reflect.Uint64: TypeOf(uint64(0)),
|
||||
reflect.Int64: TypeOf(int64(0)),
|
||||
reflect.Uint: TypeOf(uint(0)),
|
||||
reflect.Int: TypeOf(int(0)),
|
||||
reflect.Float32: TypeOf(float32(0)),
|
||||
reflect.Float64: TypeOf(float64(0)),
|
||||
reflect.Uintptr: TypeOf(uintptr(0)),
|
||||
reflect.String: TypeOf(""),
|
||||
reflect.UnsafePointer: TypeOf(unsafe.Pointer(nil)),
|
||||
}
|
||||
}
|
||||
|
||||
2
vendor/github.com/modern-go/reflect2/safe_field.go
generated
vendored
2
vendor/github.com/modern-go/reflect2/safe_field.go
generated
vendored
@@ -55,4 +55,4 @@ func (field *safeField) Get(obj interface{}) interface{} {
|
||||
|
||||
func (field *safeField) UnsafeGet(obj unsafe.Pointer) unsafe.Pointer {
|
||||
panic("does not support unsafe operation")
|
||||
}
|
||||
}
|
||||
|
||||
6
vendor/github.com/modern-go/reflect2/safe_map.go
generated
vendored
6
vendor/github.com/modern-go/reflect2/safe_map.go
generated
vendored
@@ -76,8 +76,8 @@ func (type2 *safeMapType) UnsafeIterate(obj unsafe.Pointer) MapIterator {
|
||||
}
|
||||
|
||||
type safeMapIterator struct {
|
||||
i int
|
||||
m reflect.Value
|
||||
i int
|
||||
m reflect.Value
|
||||
keys []reflect.Value
|
||||
}
|
||||
|
||||
@@ -98,4 +98,4 @@ func (iter *safeMapIterator) Next() (interface{}, interface{}) {
|
||||
|
||||
func (iter *safeMapIterator) UnsafeNext() (unsafe.Pointer, unsafe.Pointer) {
|
||||
panic("does not support unsafe operation")
|
||||
}
|
||||
}
|
||||
|
||||
2
vendor/github.com/modern-go/reflect2/safe_slice.go
generated
vendored
2
vendor/github.com/modern-go/reflect2/safe_slice.go
generated
vendored
@@ -89,4 +89,4 @@ func (type2 *safeSliceType) Cap(obj interface{}) int {
|
||||
|
||||
func (type2 *safeSliceType) UnsafeCap(ptr unsafe.Pointer) int {
|
||||
panic("does not support unsafe operation")
|
||||
}
|
||||
}
|
||||
|
||||
18
vendor/github.com/modern-go/reflect2/safe_struct.go
generated
vendored
18
vendor/github.com/modern-go/reflect2/safe_struct.go
generated
vendored
@@ -10,4 +10,20 @@ func (type2 *safeStructType) FieldByName(name string) StructField {
|
||||
panic("field " + name + " not found")
|
||||
}
|
||||
return &safeField{StructField: field}
|
||||
}
|
||||
}
|
||||
|
||||
func (type2 *safeStructType) Field(i int) StructField {
|
||||
return &safeField{StructField: type2.Type.Field(i)}
|
||||
}
|
||||
|
||||
func (type2 *safeStructType) FieldByIndex(index []int) StructField {
|
||||
return &safeField{StructField: type2.Type.FieldByIndex(index)}
|
||||
}
|
||||
|
||||
func (type2 *safeStructType) FieldByNameFunc(match func(string) bool) StructField {
|
||||
field, found := type2.Type.FieldByNameFunc(match)
|
||||
if !found {
|
||||
panic("field match condition not found in " + type2.Type.String())
|
||||
}
|
||||
return &safeField{StructField: field}
|
||||
}
|
||||
|
||||
2
vendor/github.com/modern-go/reflect2/safe_type.go
generated
vendored
2
vendor/github.com/modern-go/reflect2/safe_type.go
generated
vendored
@@ -75,4 +75,4 @@ func (type2 *safeType) UnsafeSet(ptr unsafe.Pointer, val unsafe.Pointer) {
|
||||
|
||||
func (type2 *safeType) AssignableTo(anotherType Type) bool {
|
||||
return type2.Type1().AssignableTo(anotherType.Type1())
|
||||
}
|
||||
}
|
||||
|
||||
12
vendor/github.com/modern-go/reflect2/test.sh
generated
vendored
Executable file
12
vendor/github.com/modern-go/reflect2/test.sh
generated
vendored
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
echo "" > coverage.txt
|
||||
|
||||
for d in $(go list github.com/modern-go/reflect2-tests/... | grep -v vendor); do
|
||||
go test -coverprofile=profile.out -coverpkg=github.com/modern-go/reflect2 $d
|
||||
if [ -f profile.out ]; then
|
||||
cat profile.out >> coverage.txt
|
||||
rm profile.out
|
||||
fi
|
||||
done
|
||||
39
vendor/github.com/modern-go/reflect2/type_map.go
generated
vendored
39
vendor/github.com/modern-go/reflect2/type_map.go
generated
vendored
@@ -1,10 +1,10 @@
|
||||
package reflect2
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
"reflect"
|
||||
"runtime"
|
||||
"strings"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
// typelinks1 for 1.5 ~ 1.6
|
||||
@@ -16,6 +16,7 @@ func typelinks1() [][]unsafe.Pointer
|
||||
func typelinks2() (sections []unsafe.Pointer, offset [][]int32)
|
||||
|
||||
var types = map[string]reflect.Type{}
|
||||
var packages = map[string]map[string]reflect.Type{}
|
||||
|
||||
func init() {
|
||||
ver := runtime.Version()
|
||||
@@ -36,11 +37,25 @@ func loadGo15Types() {
|
||||
(*emptyInterface)(unsafe.Pointer(&obj)).word = typePtr
|
||||
typ := obj.(reflect.Type)
|
||||
if typ.Kind() == reflect.Ptr && typ.Elem().Kind() == reflect.Struct {
|
||||
types[typ.Elem().String()] = typ.Elem()
|
||||
loadedType := typ.Elem()
|
||||
pkgTypes := packages[loadedType.PkgPath()]
|
||||
if pkgTypes == nil {
|
||||
pkgTypes = map[string]reflect.Type{}
|
||||
packages[loadedType.PkgPath()] = pkgTypes
|
||||
}
|
||||
types[loadedType.String()] = loadedType
|
||||
pkgTypes[loadedType.Name()] = loadedType
|
||||
}
|
||||
if typ.Kind() == reflect.Slice && typ.Elem().Kind() == reflect.Ptr &&
|
||||
typ.Elem().Elem().Kind() == reflect.Struct {
|
||||
types[typ.Elem().Elem().String()] = typ.Elem().Elem()
|
||||
loadedType := typ.Elem().Elem()
|
||||
pkgTypes := packages[loadedType.PkgPath()]
|
||||
if pkgTypes == nil {
|
||||
pkgTypes = map[string]reflect.Type{}
|
||||
packages[loadedType.PkgPath()] = pkgTypes
|
||||
}
|
||||
types[loadedType.String()] = loadedType
|
||||
pkgTypes[loadedType.Name()] = loadedType
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -55,7 +70,14 @@ func loadGo17Types() {
|
||||
(*emptyInterface)(unsafe.Pointer(&obj)).word = resolveTypeOff(unsafe.Pointer(rodata), off)
|
||||
typ := obj.(reflect.Type)
|
||||
if typ.Kind() == reflect.Ptr && typ.Elem().Kind() == reflect.Struct {
|
||||
types[typ.Elem().String()] = typ.Elem()
|
||||
loadedType := typ.Elem()
|
||||
pkgTypes := packages[loadedType.PkgPath()]
|
||||
if pkgTypes == nil {
|
||||
pkgTypes = map[string]reflect.Type{}
|
||||
packages[loadedType.PkgPath()] = pkgTypes
|
||||
}
|
||||
types[loadedType.String()] = loadedType
|
||||
pkgTypes[loadedType.Name()] = loadedType
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -70,3 +92,12 @@ type emptyInterface struct {
|
||||
func TypeByName(typeName string) Type {
|
||||
return Type2(types[typeName])
|
||||
}
|
||||
|
||||
// TypeByPackageName return the type by its package and name
|
||||
func TypeByPackageName(pkgPath string, name string) Type {
|
||||
pkgTypes := packages[pkgPath]
|
||||
if pkgTypes == nil {
|
||||
return nil
|
||||
}
|
||||
return Type2(pkgTypes[name])
|
||||
}
|
||||
|
||||
2
vendor/github.com/modern-go/reflect2/unsafe_array.go
generated
vendored
2
vendor/github.com/modern-go/reflect2/unsafe_array.go
generated
vendored
@@ -1,8 +1,8 @@
|
||||
package reflect2
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
"reflect"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
type UnsafeArrayType struct {
|
||||
|
||||
4
vendor/github.com/modern-go/reflect2/unsafe_eface.go
generated
vendored
4
vendor/github.com/modern-go/reflect2/unsafe_eface.go
generated
vendored
@@ -1,8 +1,8 @@
|
||||
package reflect2
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
"reflect"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
type eface struct {
|
||||
@@ -56,4 +56,4 @@ func (type2 *UnsafeEFaceType) Indirect(obj interface{}) interface{} {
|
||||
|
||||
func (type2 *UnsafeEFaceType) UnsafeIndirect(ptr unsafe.Pointer) interface{} {
|
||||
return *(*interface{})(ptr)
|
||||
}
|
||||
}
|
||||
|
||||
4
vendor/github.com/modern-go/reflect2/unsafe_iface.go
generated
vendored
4
vendor/github.com/modern-go/reflect2/unsafe_iface.go
generated
vendored
@@ -1,8 +1,8 @@
|
||||
package reflect2
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
"reflect"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
type iface struct {
|
||||
@@ -61,4 +61,4 @@ func (type2 *UnsafeIFaceType) UnsafeIsNil(ptr unsafe.Pointer) bool {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
2
vendor/github.com/modern-go/reflect2/unsafe_link.go
generated
vendored
2
vendor/github.com/modern-go/reflect2/unsafe_link.go
generated
vendored
@@ -67,4 +67,4 @@ func add(p unsafe.Pointer, x uintptr, whySafe string) unsafe.Pointer {
|
||||
// the benefit is to surface this assumption at the call site.)
|
||||
func arrayAt(p unsafe.Pointer, i int, eltSize uintptr, whySafe string) unsafe.Pointer {
|
||||
return add(p, uintptr(i)*eltSize, "i < len")
|
||||
}
|
||||
}
|
||||
|
||||
2
vendor/github.com/modern-go/reflect2/unsafe_ptr.go
generated
vendored
2
vendor/github.com/modern-go/reflect2/unsafe_ptr.go
generated
vendored
@@ -1,8 +1,8 @@
|
||||
package reflect2
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
"reflect"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
type UnsafePtrType struct {
|
||||
|
||||
2
vendor/github.com/modern-go/reflect2/unsafe_slice.go
generated
vendored
2
vendor/github.com/modern-go/reflect2/unsafe_slice.go
generated
vendored
@@ -1,8 +1,8 @@
|
||||
package reflect2
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
"reflect"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
// sliceHeader is a safe version of SliceHeader used within this package.
|
||||
|
||||
2
vendor/github.com/modern-go/reflect2/unsafe_struct.go
generated
vendored
2
vendor/github.com/modern-go/reflect2/unsafe_struct.go
generated
vendored
@@ -56,4 +56,4 @@ func (type2 *UnsafeStructType) FieldByNameFunc(match func(string) bool) StructFi
|
||||
panic("field match condition not found in " + type2.Type.String())
|
||||
}
|
||||
return newUnsafeStructField(type2, structField)
|
||||
}
|
||||
}
|
||||
|
||||
4
vendor/github.com/modern-go/reflect2/unsafe_type.go
generated
vendored
4
vendor/github.com/modern-go/reflect2/unsafe_type.go
generated
vendored
@@ -1,8 +1,8 @@
|
||||
package reflect2
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
"reflect"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
type unsafeType struct {
|
||||
@@ -15,7 +15,7 @@ func newUnsafeType(cfg *frozenConfig, type1 reflect.Type) *unsafeType {
|
||||
return &unsafeType{
|
||||
safeType: safeType{
|
||||
Type: type1,
|
||||
cfg: cfg,
|
||||
cfg: cfg,
|
||||
},
|
||||
rtype: unpackEFace(type1).data,
|
||||
ptrRType: unpackEFace(reflect.PtrTo(type1)).data,
|
||||
|
||||
Reference in New Issue
Block a user