patch library: todo message
This commit is contained in:
@@ -777,13 +777,10 @@ func (p *pp) printArg(arg any, verb rune) {
|
|||||||
func (p *pp) printValue(value reflect.Value, verb rune, depth int) {
|
func (p *pp) printValue(value reflect.Value, verb rune, depth int) {
|
||||||
// Handle values with special methods if not already handled by printArg (depth == 0).
|
// Handle values with special methods if not already handled by printArg (depth == 0).
|
||||||
if depth > 0 && value.IsValid() && value.CanInterface() {
|
if depth > 0 && value.IsValid() && value.CanInterface() {
|
||||||
/* TODO(xsw):
|
|
||||||
p.arg = value.Interface()
|
p.arg = value.Interface()
|
||||||
if p.handleMethods(verb) {
|
if p.handleMethods(verb) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
panic("todo: fmt.(*pp).printValue - handleMethods")
|
|
||||||
}
|
}
|
||||||
p.arg = nil
|
p.arg = nil
|
||||||
p.value = value
|
p.value = value
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ func (t rtype) NumMethod() int {
|
|||||||
}
|
}
|
||||||
return len(t.exportedMethods())
|
return len(t.exportedMethods())
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflectlite.rtype.NumMethod")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t rtype) PkgPath() string {
|
func (t rtype) PkgPath() string {
|
||||||
@@ -171,7 +171,7 @@ func (t rtype) PkgPath() string {
|
|||||||
}
|
}
|
||||||
return t.nameOff(ut.PkgPath).Name()
|
return t.nameOff(ut.PkgPath).Name()
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflectlite.rtype.PkgPath")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t rtype) Name() string {
|
func (t rtype) Name() string {
|
||||||
@@ -193,7 +193,7 @@ func (t rtype) Name() string {
|
|||||||
}
|
}
|
||||||
return s[i+1:]
|
return s[i+1:]
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflectlite.rtype.Name")
|
||||||
}
|
}
|
||||||
|
|
||||||
func toRType(t *abi.Type) rtype {
|
func toRType(t *abi.Type) rtype {
|
||||||
@@ -220,7 +220,7 @@ func (t rtype) In(i int) Type {
|
|||||||
}
|
}
|
||||||
return toType(tt.InSlice()[i])
|
return toType(tt.InSlice()[i])
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflectlite.rtype.In")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t rtype) Key() Type {
|
func (t rtype) Key() Type {
|
||||||
@@ -255,7 +255,7 @@ func (t rtype) NumIn() int {
|
|||||||
}
|
}
|
||||||
return int(tt.InCount)
|
return int(tt.InCount)
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflectlite.rtype.NumIn")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t rtype) NumOut() int {
|
func (t rtype) NumOut() int {
|
||||||
@@ -266,7 +266,7 @@ func (t rtype) NumOut() int {
|
|||||||
}
|
}
|
||||||
return tt.NumOut()
|
return tt.NumOut()
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflectlite.rtype.NumOut")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t rtype) Out(i int) Type {
|
func (t rtype) Out(i int) Type {
|
||||||
@@ -277,7 +277,7 @@ func (t rtype) Out(i int) Type {
|
|||||||
}
|
}
|
||||||
return toType(tt.OutSlice()[i])
|
return toType(tt.OutSlice()[i])
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflectlite.rtype.Out")
|
||||||
}
|
}
|
||||||
|
|
||||||
// add returns p+x.
|
// add returns p+x.
|
||||||
@@ -408,7 +408,7 @@ func implements(T, V *abi.Type) bool {
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflectlite.implements")
|
||||||
}
|
}
|
||||||
|
|
||||||
// directlyAssignable reports whether a value x of type V can be directly
|
// directlyAssignable reports whether a value x of type V can be directly
|
||||||
@@ -544,7 +544,7 @@ func haveIdenticalUnderlyingType(T, V *abi.Type, cmpTags bool) bool {
|
|||||||
|
|
||||||
return false
|
return false
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflectlite.haveIdenticalUnderlyingType")
|
||||||
}
|
}
|
||||||
|
|
||||||
// toType converts from a *rtype to a Type that can be returned
|
// toType converts from a *rtype to a Type that can be returned
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ func (v Value) pointer() unsafe.Pointer {
|
|||||||
}
|
}
|
||||||
return v.ptr
|
return v.ptr
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflectlite.Value.pointer")
|
||||||
}
|
}
|
||||||
|
|
||||||
// packEface converts v to the empty interface.
|
// packEface converts v to the empty interface.
|
||||||
@@ -263,7 +263,7 @@ func (v Value) Elem() Value {
|
|||||||
}
|
}
|
||||||
panic(&ValueError{"reflectlite.Value.Elem", v.kind()})
|
panic(&ValueError{"reflectlite.Value.Elem", v.kind()})
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflectlite.Value.Elem")
|
||||||
}
|
}
|
||||||
|
|
||||||
func valueInterface(v Value) any {
|
func valueInterface(v Value) any {
|
||||||
@@ -367,7 +367,7 @@ func (v Value) numMethod() int {
|
|||||||
}
|
}
|
||||||
return v.typ.NumMethod()
|
return v.typ.NumMethod()
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflectlite.Value.numMethod")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set assigns x to the value v.
|
// Set assigns x to the value v.
|
||||||
@@ -455,7 +455,7 @@ func (v Value) assignTo(context string, dst *abi.Type, target unsafe.Pointer) Va
|
|||||||
// Failed.
|
// Failed.
|
||||||
// TODO(xsw):
|
// TODO(xsw):
|
||||||
// panic(context + ": value of type " + toRType(v.typ).String() + " is not assignable to type " + toRType(dst).String())
|
// panic(context + ": value of type " + toRType(v.typ).String() + " is not assignable to type " + toRType(dst).String())
|
||||||
panic("todo")
|
panic("todo: reflectlite.Value.assignTo")
|
||||||
}
|
}
|
||||||
|
|
||||||
// arrayAt returns the i-th element of p,
|
// arrayAt returns the i-th element of p,
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ func (f *File) ReadAt(b []byte, off int64) (n int, err error) {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: os.File.ReadAt")
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReadFrom implements io.ReaderFrom.
|
// ReadFrom implements io.ReaderFrom.
|
||||||
@@ -102,7 +102,7 @@ func (f *File) ReadFrom(r io.Reader) (n int64, err error) {
|
|||||||
}
|
}
|
||||||
return n, f.wrapErr("write", e)
|
return n, f.wrapErr("write", e)
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: os.File.ReadFrom")
|
||||||
}
|
}
|
||||||
|
|
||||||
func genericReadFrom(f *File, r io.Reader) (int64, error) {
|
func genericReadFrom(f *File, r io.Reader) (int64, error) {
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ func makeMethodValue(op string, v Value) Value {
|
|||||||
|
|
||||||
return Value{ftyp.Common(), unsafe.Pointer(fv), v.flag&flagRO | flag(Func)}
|
return Value{ftyp.Common(), unsafe.Pointer(fv), v.flag&flagRO | flag(Func)}
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.makeMethodValue")
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -461,7 +461,7 @@ func (t *rtype) NumMethod() int {
|
|||||||
}
|
}
|
||||||
return len(t.exportedMethods())
|
return len(t.exportedMethods())
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.NumMethod")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) Method(i int) (m Method) {
|
func (t *rtype) Method(i int) (m Method) {
|
||||||
@@ -498,7 +498,7 @@ func (t *rtype) Method(i int) (m Method) {
|
|||||||
m.Index = i
|
m.Index = i
|
||||||
return m
|
return m
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.Method")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) MethodByName(name string) (m Method, ok bool) {
|
func (t *rtype) MethodByName(name string) (m Method, ok bool) {
|
||||||
@@ -533,7 +533,7 @@ func (t *rtype) MethodByName(name string) (m Method, ok bool) {
|
|||||||
|
|
||||||
return Method{}, false
|
return Method{}, false
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.MethodByName")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) PkgPath() string {
|
func (t *rtype) PkgPath() string {
|
||||||
@@ -570,7 +570,7 @@ func (t *rtype) Name() string {
|
|||||||
}
|
}
|
||||||
return s[i+1:]
|
return s[i+1:]
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.Name")
|
||||||
}
|
}
|
||||||
|
|
||||||
func nameFor(t *abi.Type) string {
|
func nameFor(t *abi.Type) string {
|
||||||
@@ -596,7 +596,7 @@ func elem(t *abi.Type) *abi.Type {
|
|||||||
}
|
}
|
||||||
// TODO(xsw):
|
// TODO(xsw):
|
||||||
// panic("reflect: Elem of invalid type " + stringFor(t))
|
// panic("reflect: Elem of invalid type " + stringFor(t))
|
||||||
panic("todo")
|
panic("todo: reflect.elem")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) Elem() Type {
|
func (t *rtype) Elem() Type {
|
||||||
@@ -611,7 +611,7 @@ func (t *rtype) Field(i int) StructField {
|
|||||||
tt := (*structType)(unsafe.Pointer(t))
|
tt := (*structType)(unsafe.Pointer(t))
|
||||||
return tt.Field(i)
|
return tt.Field(i)
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.Field")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) FieldByIndex(index []int) StructField {
|
func (t *rtype) FieldByIndex(index []int) StructField {
|
||||||
@@ -622,7 +622,7 @@ func (t *rtype) FieldByIndex(index []int) StructField {
|
|||||||
tt := (*structType)(unsafe.Pointer(t))
|
tt := (*structType)(unsafe.Pointer(t))
|
||||||
return tt.FieldByIndex(index)
|
return tt.FieldByIndex(index)
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.FieldByIndex")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) FieldByName(name string) (StructField, bool) {
|
func (t *rtype) FieldByName(name string) (StructField, bool) {
|
||||||
@@ -633,7 +633,7 @@ func (t *rtype) FieldByName(name string) (StructField, bool) {
|
|||||||
tt := (*structType)(unsafe.Pointer(t))
|
tt := (*structType)(unsafe.Pointer(t))
|
||||||
return tt.FieldByName(name)
|
return tt.FieldByName(name)
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.FieldByName")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) FieldByNameFunc(match func(string) bool) (StructField, bool) {
|
func (t *rtype) FieldByNameFunc(match func(string) bool) (StructField, bool) {
|
||||||
@@ -644,7 +644,7 @@ func (t *rtype) FieldByNameFunc(match func(string) bool) (StructField, bool) {
|
|||||||
tt := (*structType)(unsafe.Pointer(t))
|
tt := (*structType)(unsafe.Pointer(t))
|
||||||
return tt.FieldByNameFunc(match)
|
return tt.FieldByNameFunc(match)
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.FieldByNameFunc")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) Key() Type {
|
func (t *rtype) Key() Type {
|
||||||
@@ -679,7 +679,7 @@ func (t *rtype) In(i int) Type {
|
|||||||
tt := (*abi.FuncType)(unsafe.Pointer(t))
|
tt := (*abi.FuncType)(unsafe.Pointer(t))
|
||||||
return toType(tt.InSlice()[i])
|
return toType(tt.InSlice()[i])
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.In")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) NumIn() int {
|
func (t *rtype) NumIn() int {
|
||||||
@@ -690,7 +690,7 @@ func (t *rtype) NumIn() int {
|
|||||||
tt := (*abi.FuncType)(unsafe.Pointer(t))
|
tt := (*abi.FuncType)(unsafe.Pointer(t))
|
||||||
return tt.NumIn()
|
return tt.NumIn()
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.NumIn")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) NumOut() int {
|
func (t *rtype) NumOut() int {
|
||||||
@@ -701,7 +701,7 @@ func (t *rtype) NumOut() int {
|
|||||||
tt := (*abi.FuncType)(unsafe.Pointer(t))
|
tt := (*abi.FuncType)(unsafe.Pointer(t))
|
||||||
return tt.NumOut()
|
return tt.NumOut()
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.NumOut")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) Out(i int) Type {
|
func (t *rtype) Out(i int) Type {
|
||||||
@@ -712,7 +712,7 @@ func (t *rtype) Out(i int) Type {
|
|||||||
tt := (*abi.FuncType)(unsafe.Pointer(t))
|
tt := (*abi.FuncType)(unsafe.Pointer(t))
|
||||||
return toType(tt.OutSlice()[i])
|
return toType(tt.OutSlice()[i])
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.Out")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) IsVariadic() bool {
|
func (t *rtype) IsVariadic() bool {
|
||||||
@@ -723,7 +723,7 @@ func (t *rtype) IsVariadic() bool {
|
|||||||
tt := (*abi.FuncType)(unsafe.Pointer(t))
|
tt := (*abi.FuncType)(unsafe.Pointer(t))
|
||||||
return tt.IsVariadic()
|
return tt.IsVariadic()
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.IsVariadic")
|
||||||
}
|
}
|
||||||
|
|
||||||
// add returns p+x.
|
// add returns p+x.
|
||||||
@@ -916,7 +916,7 @@ func (t *rtype) ptrTo() *abi.Type {
|
|||||||
pi, _ := ptrMap.LoadOrStore(t, &pp)
|
pi, _ := ptrMap.LoadOrStore(t, &pp)
|
||||||
return &pi.(*ptrType).Type
|
return &pi.(*ptrType).Type
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.ptrTo")
|
||||||
}
|
}
|
||||||
|
|
||||||
func ptrTo(t *abi.Type) *abi.Type {
|
func ptrTo(t *abi.Type) *abi.Type {
|
||||||
@@ -942,7 +942,7 @@ func (t *rtype) Implements(u Type) bool {
|
|||||||
}
|
}
|
||||||
return implements(u.common(), t.common())
|
return implements(u.common(), t.common())
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.Implements")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) AssignableTo(u Type) bool {
|
func (t *rtype) AssignableTo(u Type) bool {
|
||||||
@@ -953,7 +953,7 @@ func (t *rtype) AssignableTo(u Type) bool {
|
|||||||
uu := u.common()
|
uu := u.common()
|
||||||
return directlyAssignable(uu, t.common()) || implements(uu, t.common())
|
return directlyAssignable(uu, t.common()) || implements(uu, t.common())
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.AssignableTo")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) ConvertibleTo(u Type) bool {
|
func (t *rtype) ConvertibleTo(u Type) bool {
|
||||||
@@ -963,7 +963,7 @@ func (t *rtype) ConvertibleTo(u Type) bool {
|
|||||||
}
|
}
|
||||||
return convertOp(u.common(), t.common()) != nil
|
return convertOp(u.common(), t.common()) != nil
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.rtype.ConvertibleTo")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *rtype) Comparable() bool {
|
func (t *rtype) Comparable() bool {
|
||||||
@@ -1055,7 +1055,7 @@ func implements(T, V *abi.Type) bool {
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.implements")
|
||||||
}
|
}
|
||||||
|
|
||||||
// specialChannelAssignability reports whether a value x of channel type V
|
// specialChannelAssignability reports whether a value x of channel type V
|
||||||
@@ -1070,7 +1070,7 @@ func specialChannelAssignability(T, V *abi.Type) bool {
|
|||||||
// and at least one of V or T is not a defined type.
|
// and at least one of V or T is not a defined type.
|
||||||
return V.ChanDir() == abi.BothDir && (nameFor(T) == "" || nameFor(V) == "") && haveIdenticalType(T.Elem(), V.Elem(), true)
|
return V.ChanDir() == abi.BothDir && (nameFor(T) == "" || nameFor(V) == "") && haveIdenticalType(T.Elem(), V.Elem(), true)
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.specialChannelAssignability")
|
||||||
}
|
}
|
||||||
|
|
||||||
// directlyAssignable reports whether a value x of type V can be directly
|
// directlyAssignable reports whether a value x of type V can be directly
|
||||||
@@ -1202,7 +1202,7 @@ func haveIdenticalUnderlyingType(T, V *abi.Type, cmpTags bool) bool {
|
|||||||
|
|
||||||
return false
|
return false
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.haveIdenticalUnderlyingType")
|
||||||
}
|
}
|
||||||
|
|
||||||
// SliceOf returns the slice type with element type t.
|
// SliceOf returns the slice type with element type t.
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ func (v Value) pointer() unsafe.Pointer {
|
|||||||
}
|
}
|
||||||
return v.ptr
|
return v.ptr
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.Value.pointer")
|
||||||
}
|
}
|
||||||
|
|
||||||
// packEface converts v to the empty interface.
|
// packEface converts v to the empty interface.
|
||||||
@@ -355,7 +355,7 @@ func (v Value) bytesSlow() []byte {
|
|||||||
}
|
}
|
||||||
panic(&ValueError{"reflect.Value.Bytes", v.kind()})
|
panic(&ValueError{"reflect.Value.Bytes", v.kind()})
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.Value.byteSlow")
|
||||||
}
|
}
|
||||||
|
|
||||||
// runes returns v's underlying value.
|
// runes returns v's underlying value.
|
||||||
@@ -776,7 +776,7 @@ func valueInterface(v Value, safe bool) any {
|
|||||||
// TODO: pass safe to packEface so we don't need to copy if safe==true?
|
// TODO: pass safe to packEface so we don't need to copy if safe==true?
|
||||||
return packEface(v)
|
return packEface(v)
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.valueInterface")
|
||||||
}
|
}
|
||||||
|
|
||||||
// InterfaceData returns a pair of unspecified uintptr values.
|
// InterfaceData returns a pair of unspecified uintptr values.
|
||||||
@@ -800,7 +800,7 @@ func (v Value) InterfaceData() [2]uintptr {
|
|||||||
// Interface value is always bigger than a word; assume flagIndir.
|
// Interface value is always bigger than a word; assume flagIndir.
|
||||||
return *(*[2]uintptr)(v.ptr)
|
return *(*[2]uintptr)(v.ptr)
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.Value.InterfaceData")
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsNil reports whether its argument v is nil. The argument must be
|
// IsNil reports whether its argument v is nil. The argument must be
|
||||||
@@ -901,7 +901,7 @@ func (v Value) IsZero() bool {
|
|||||||
panic(&ValueError{"reflect.Value.IsZero", v.Kind()})
|
panic(&ValueError{"reflect.Value.IsZero", v.Kind()})
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.Value.IsZero")
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetZero sets v to be the zero value of v's type.
|
// SetZero sets v to be the zero value of v's type.
|
||||||
@@ -958,7 +958,7 @@ func (v Value) SetZero() {
|
|||||||
panic(&ValueError{"reflect.Value.SetZero", v.Kind()})
|
panic(&ValueError{"reflect.Value.SetZero", v.Kind()})
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.Value.SetZero")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Kind returns v's Kind.
|
// Kind returns v's Kind.
|
||||||
@@ -998,7 +998,7 @@ func (v Value) lenNonSlice() int {
|
|||||||
}
|
}
|
||||||
panic(&ValueError{"reflect.Value.Len", v.kind()})
|
panic(&ValueError{"reflect.Value.Len", v.kind()})
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.Value.lenNonSlice")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pointer returns v's value as a uintptr.
|
// Pointer returns v's value as a uintptr.
|
||||||
@@ -1772,7 +1772,7 @@ func AppendSlice(s, t Value) Value {
|
|||||||
Copy(s.Slice(ns, ns+nt), t)
|
Copy(s.Slice(ns, ns+nt), t)
|
||||||
return s
|
return s
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.AppendSlice")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zero returns a Value representing the zero value for the specified type.
|
// Zero returns a Value representing the zero value for the specified type.
|
||||||
@@ -1819,7 +1819,7 @@ func New(typ Type) Value {
|
|||||||
fl := flag(Pointer)
|
fl := flag(Pointer)
|
||||||
return Value{pt, ptr, fl}
|
return Value{pt, ptr, fl}
|
||||||
*/
|
*/
|
||||||
panic("todo")
|
panic("todo: reflect.New")
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewAt returns a Value representing a pointer to a value of the
|
// NewAt returns a Value representing a pointer to a value of the
|
||||||
@@ -1872,7 +1872,7 @@ func (v Value) assignTo(context string, dst *abi.Type, target unsafe.Pointer) Va
|
|||||||
// Failed.
|
// Failed.
|
||||||
// TODO(xsw):
|
// TODO(xsw):
|
||||||
// panic(context + ": value of type " + stringFor(v.typ()) + " is not assignable to type " + stringFor(dst))
|
// panic(context + ": value of type " + stringFor(v.typ()) + " is not assignable to type " + stringFor(dst))
|
||||||
panic("todo")
|
panic("todo: reflect.Value.assignTo")
|
||||||
}
|
}
|
||||||
|
|
||||||
// memmove copies size bytes to dst from src. No write barriers are used.
|
// memmove copies size bytes to dst from src. No write barriers are used.
|
||||||
|
|||||||
Reference in New Issue
Block a user