diff --git a/clients/common/incident.noms.go b/clients/common/incident.noms.go index 1f7e70538f..ed9b4b1e6b 100644 --- a/clients/common/incident.noms.go +++ b/clients/common/incident.noms.go @@ -472,9 +472,11 @@ func (m RefOfIncident) TypeRef() types.TypeRef { func init() { __typeRefForRefOfIncident = types.MakeCompoundTypeRef(types.RefKind, types.MakeTypeRef(__commonPackageInFile_incident_CachedRef, 0)) - types.RegisterFromValFunction(__typeRefForRefOfIncident, func(v types.Value) types.Value { - return NewRefOfIncident(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfIncident, builderForRefOfIncident) +} + +func builderForRefOfIncident(r ref.Ref) types.Value { + return NewRefOfIncident(r) } func (r RefOfIncident) TargetValue(cs chunks.ChunkSource) Incident { diff --git a/clients/common/quad_tree.noms.go b/clients/common/quad_tree.noms.go index 52b1a8f6dc..4b808fdf04 100644 --- a/clients/common/quad_tree.noms.go +++ b/clients/common/quad_tree.noms.go @@ -538,9 +538,11 @@ func (m RefOfValue) TypeRef() types.TypeRef { func init() { __typeRefForRefOfValue = types.MakeCompoundTypeRef(types.RefKind, types.MakePrimitiveTypeRef(types.ValueKind)) - types.RegisterFromValFunction(__typeRefForRefOfValue, func(v types.Value) types.Value { - return NewRefOfValue(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfValue, builderForRefOfValue) +} + +func builderForRefOfValue(r ref.Ref) types.Value { + return NewRefOfValue(r) } func (r RefOfValue) TargetValue(cs chunks.ChunkSource) types.Value { @@ -1123,9 +1125,11 @@ func (m RefOfSQuadTree) TypeRef() types.TypeRef { func init() { __typeRefForRefOfSQuadTree = types.MakeCompoundTypeRef(types.RefKind, types.MakeTypeRef(__commonPackageInFile_quad_tree_CachedRef, 2)) - types.RegisterFromValFunction(__typeRefForRefOfSQuadTree, func(v types.Value) types.Value { - return NewRefOfSQuadTree(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfSQuadTree, builderForRefOfSQuadTree) +} + +func builderForRefOfSQuadTree(r ref.Ref) types.Value { + return NewRefOfSQuadTree(r) } func (r RefOfSQuadTree) TargetValue(cs chunks.ChunkSource) SQuadTree { diff --git a/clients/flickr/types.noms.go b/clients/flickr/types.noms.go index bcad593ba6..eeb10e228c 100644 --- a/clients/flickr/types.noms.go +++ b/clients/flickr/types.noms.go @@ -477,9 +477,11 @@ func (m RefOfUser) TypeRef() types.TypeRef { func init() { __typeRefForRefOfUser = types.MakeCompoundTypeRef(types.RefKind, types.MakeTypeRef(__mainPackageInFile_types_CachedRef, 0)) - types.RegisterFromValFunction(__typeRefForRefOfUser, func(v types.Value) types.Value { - return NewRefOfUser(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfUser, builderForRefOfUser) +} + +func builderForRefOfUser(r ref.Ref) types.Value { + return NewRefOfUser(r) } func (r RefOfUser) TargetValue(cs chunks.ChunkSource) User { @@ -528,9 +530,11 @@ func (m RefOfSetOfRefOfRemotePhoto) TypeRef() types.TypeRef { func init() { __typeRefForRefOfSetOfRefOfRemotePhoto = types.MakeCompoundTypeRef(types.RefKind, types.MakeCompoundTypeRef(types.SetKind, types.MakeCompoundTypeRef(types.RefKind, types.MakeTypeRef(ref.Parse("sha1-00419ebbb418539af67238164b20341913efeb4d"), 0)))) - types.RegisterFromValFunction(__typeRefForRefOfSetOfRefOfRemotePhoto, func(v types.Value) types.Value { - return NewRefOfSetOfRefOfRemotePhoto(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfSetOfRefOfRemotePhoto, builderForRefOfSetOfRefOfRemotePhoto) +} + +func builderForRefOfSetOfRefOfRemotePhoto(r ref.Ref) types.Value { + return NewRefOfSetOfRefOfRemotePhoto(r) } func (r RefOfSetOfRefOfRemotePhoto) TargetValue(cs chunks.ChunkSource) SetOfRefOfRemotePhoto { @@ -727,9 +731,11 @@ func (m RefOfRemotePhoto) TypeRef() types.TypeRef { func init() { __typeRefForRefOfRemotePhoto = types.MakeCompoundTypeRef(types.RefKind, types.MakeTypeRef(ref.Parse("sha1-00419ebbb418539af67238164b20341913efeb4d"), 0)) - types.RegisterFromValFunction(__typeRefForRefOfRemotePhoto, func(v types.Value) types.Value { - return NewRefOfRemotePhoto(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfRemotePhoto, builderForRefOfRemotePhoto) +} + +func builderForRefOfRemotePhoto(r ref.Ref) types.Value { + return NewRefOfRemotePhoto(r) } func (r RefOfRemotePhoto) TargetValue(cs chunks.ChunkSource) RemotePhoto { diff --git a/clients/picasa/picasa.noms.go b/clients/picasa/picasa.noms.go index 15d2f994c9..2244e722b9 100644 --- a/clients/picasa/picasa.noms.go +++ b/clients/picasa/picasa.noms.go @@ -640,9 +640,11 @@ func (m RefOfUser) TypeRef() types.TypeRef { func init() { __typeRefForRefOfUser = types.MakeCompoundTypeRef(types.RefKind, types.MakeTypeRef(__mainPackageInFile_picasa_CachedRef, 0)) - types.RegisterFromValFunction(__typeRefForRefOfUser, func(v types.Value) types.Value { - return NewRefOfUser(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfUser, builderForRefOfUser) +} + +func builderForRefOfUser(r ref.Ref) types.Value { + return NewRefOfUser(r) } func (r RefOfUser) TargetValue(cs chunks.ChunkSource) User { @@ -691,9 +693,11 @@ func (m RefOfSetOfRefOfRemotePhoto) TypeRef() types.TypeRef { func init() { __typeRefForRefOfSetOfRefOfRemotePhoto = types.MakeCompoundTypeRef(types.RefKind, types.MakeCompoundTypeRef(types.SetKind, types.MakeCompoundTypeRef(types.RefKind, types.MakeTypeRef(ref.Parse("sha1-00419ebbb418539af67238164b20341913efeb4d"), 0)))) - types.RegisterFromValFunction(__typeRefForRefOfSetOfRefOfRemotePhoto, func(v types.Value) types.Value { - return NewRefOfSetOfRefOfRemotePhoto(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfSetOfRefOfRemotePhoto, builderForRefOfSetOfRefOfRemotePhoto) +} + +func builderForRefOfSetOfRefOfRemotePhoto(r ref.Ref) types.Value { + return NewRefOfSetOfRefOfRemotePhoto(r) } func (r RefOfSetOfRefOfRemotePhoto) TargetValue(cs chunks.ChunkSource) SetOfRefOfRemotePhoto { @@ -890,9 +894,11 @@ func (m RefOfRemotePhoto) TypeRef() types.TypeRef { func init() { __typeRefForRefOfRemotePhoto = types.MakeCompoundTypeRef(types.RefKind, types.MakeTypeRef(ref.Parse("sha1-00419ebbb418539af67238164b20341913efeb4d"), 0)) - types.RegisterFromValFunction(__typeRefForRefOfRemotePhoto, func(v types.Value) types.Value { - return NewRefOfRemotePhoto(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfRemotePhoto, builderForRefOfRemotePhoto) +} + +func builderForRefOfRemotePhoto(r ref.Ref) types.Value { + return NewRefOfRemotePhoto(r) } func (r RefOfRemotePhoto) TargetValue(cs chunks.ChunkSource) RemotePhoto { diff --git a/clients/tagdex/types.noms.go b/clients/tagdex/types.noms.go index 48371db931..03f50fbe47 100644 --- a/clients/tagdex/types.noms.go +++ b/clients/tagdex/types.noms.go @@ -320,9 +320,11 @@ func (m RefOfRemotePhoto) TypeRef() types.TypeRef { func init() { __typeRefForRefOfRemotePhoto = types.MakeCompoundTypeRef(types.RefKind, types.MakeTypeRef(ref.Parse("sha1-00419ebbb418539af67238164b20341913efeb4d"), 0)) - types.RegisterFromValFunction(__typeRefForRefOfRemotePhoto, func(v types.Value) types.Value { - return NewRefOfRemotePhoto(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfRemotePhoto, builderForRefOfRemotePhoto) +} + +func builderForRefOfRemotePhoto(r ref.Ref) types.Value { + return NewRefOfRemotePhoto(r) } func (r RefOfRemotePhoto) TargetValue(cs chunks.ChunkSource) RemotePhoto { diff --git a/datas/types.noms.go b/datas/types.noms.go index 6172b6691b..201b6bc050 100644 --- a/datas/types.noms.go +++ b/datas/types.noms.go @@ -442,9 +442,11 @@ func (m RefOfCommit) TypeRef() types.TypeRef { func init() { __typeRefForRefOfCommit = types.MakeCompoundTypeRef(types.RefKind, types.MakeTypeRef(__datasPackageInFile_types_CachedRef, 0)) - types.RegisterFromValFunction(__typeRefForRefOfCommit, func(v types.Value) types.Value { - return NewRefOfCommit(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfCommit, builderForRefOfCommit) +} + +func builderForRefOfCommit(r ref.Ref) types.Value { + return NewRefOfCommit(r) } func (r RefOfCommit) TargetValue(cs chunks.ChunkSource) Commit { diff --git a/nomdl/codegen/ref.tmpl b/nomdl/codegen/ref.tmpl index a1ede1e50d..6cfd26f375 100644 --- a/nomdl/codegen/ref.tmpl +++ b/nomdl/codegen/ref.tmpl @@ -38,9 +38,11 @@ func (m {{.Name}}) TypeRef() {{$typesPackage}}TypeRef { func init() { __typeRefFor{{.Name}} = {{toTypesTypeRef .Type .FileID .PackageName}} - {{$typesPackage}}RegisterFromValFunction(__typeRefFor{{.Name}}, func(v {{$typesPackage}}Value) {{$typesPackage}}Value { - return New{{.Name}}(v.({{$typesPackage}}Ref).TargetRef()) - }) + {{$typesPackage}}RegisterRef(__typeRefFor{{.Name}}, builderFor{{.Name}}) +} + +func builderFor{{.Name}}(r ref.Ref) {{$typesPackage}}Value { + return New{{.Name}}(r) } func (r {{.Name}}) TargetValue(cs chunks.ChunkSource) {{userType .ElemType}} { diff --git a/nomdl/codegen/test/gen/ref.noms.go b/nomdl/codegen/test/gen/ref.noms.go index 17c832c22d..b7bb0f058e 100644 --- a/nomdl/codegen/test/gen/ref.noms.go +++ b/nomdl/codegen/test/gen/ref.noms.go @@ -149,9 +149,11 @@ func (m RefOfListOfString) TypeRef() types.TypeRef { func init() { __typeRefForRefOfListOfString = types.MakeCompoundTypeRef(types.RefKind, types.MakeCompoundTypeRef(types.ListKind, types.MakePrimitiveTypeRef(types.StringKind))) - types.RegisterFromValFunction(__typeRefForRefOfListOfString, func(v types.Value) types.Value { - return NewRefOfListOfString(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfListOfString, builderForRefOfListOfString) +} + +func builderForRefOfListOfString(r ref.Ref) types.Value { + return NewRefOfListOfString(r) } func (r RefOfListOfString) TargetValue(cs chunks.ChunkSource) ListOfString { @@ -341,9 +343,11 @@ func (m RefOfSetOfFloat32) TypeRef() types.TypeRef { func init() { __typeRefForRefOfSetOfFloat32 = types.MakeCompoundTypeRef(types.RefKind, types.MakeCompoundTypeRef(types.SetKind, types.MakePrimitiveTypeRef(types.Float32Kind))) - types.RegisterFromValFunction(__typeRefForRefOfSetOfFloat32, func(v types.Value) types.Value { - return NewRefOfSetOfFloat32(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfSetOfFloat32, builderForRefOfSetOfFloat32) +} + +func builderForRefOfSetOfFloat32(r ref.Ref) types.Value { + return NewRefOfSetOfFloat32(r) } func (r RefOfSetOfFloat32) TargetValue(cs chunks.ChunkSource) SetOfFloat32 { @@ -533,9 +537,11 @@ func (m RefOfFloat32) TypeRef() types.TypeRef { func init() { __typeRefForRefOfFloat32 = types.MakeCompoundTypeRef(types.RefKind, types.MakePrimitiveTypeRef(types.Float32Kind)) - types.RegisterFromValFunction(__typeRefForRefOfFloat32, func(v types.Value) types.Value { - return NewRefOfFloat32(v.(types.Ref).TargetRef()) - }) + types.RegisterRef(__typeRefForRefOfFloat32, builderForRefOfFloat32) +} + +func builderForRefOfFloat32(r ref.Ref) types.Value { + return NewRefOfFloat32(r) } func (r RefOfFloat32) TargetValue(cs chunks.ChunkSource) float32 { diff --git a/types/compound_blob_struct.noms.go b/types/compound_blob_struct.noms.go index 752cb5328a..440a70c385 100644 --- a/types/compound_blob_struct.noms.go +++ b/types/compound_blob_struct.noms.go @@ -449,9 +449,11 @@ func (m RefOfBlob) TypeRef() TypeRef { func init() { __typeRefForRefOfBlob = MakeCompoundTypeRef(RefKind, MakePrimitiveTypeRef(BlobKind)) - RegisterFromValFunction(__typeRefForRefOfBlob, func(v Value) Value { - return NewRefOfBlob(v.(Ref).TargetRef()) - }) + RegisterRef(__typeRefForRefOfBlob, builderForRefOfBlob) +} + +func builderForRefOfBlob(r ref.Ref) Value { + return NewRefOfBlob(r) } func (r RefOfBlob) TargetValue(cs chunks.ChunkSource) Blob { diff --git a/types/decode_noms_value.go b/types/decode_noms_value.go index c387d1e8cf..3fd5c49537 100644 --- a/types/decode_noms_value.go +++ b/types/decode_noms_value.go @@ -158,9 +158,8 @@ func (r *jsonArrayReader) readPackage(t TypeRef, pkg *Package) Value { func (r *jsonArrayReader) readRefValue(t TypeRef, pkg *Package) Value { ref := r.readRef() - v := NewRef(ref) t = fixupTypeRef(t, pkg) - return ToNomsValueFromTypeRef(t, v) + return refFromTypeRef(ref, t) } func (r *jsonArrayReader) readTopLevelValue() Value { diff --git a/types/decode_noms_value_test.go b/types/decode_noms_value_test.go index c4a16504ee..cc2d703bda 100644 --- a/types/decode_noms_value_test.go +++ b/types/decode_noms_value_test.go @@ -109,14 +109,8 @@ func TestReadListOfValue(t *testing.T) { a := parseJson(`[%d, %d, [%d, 1, %d, "hi", %d, true]]`, ListKind, ValueKind, Int32Kind, StringKind, BoolKind) r := newJsonArrayReader(a, cs) - - listTr := MakeCompoundTypeRef(ListKind, MakePrimitiveTypeRef(ValueKind)) - RegisterFromValFunction(listTr, func(v Value) Value { - return v - }) - l := r.readTopLevelValue() - assert.EqualValues(NewList(Int32(1), NewString("hi"), Bool(true)), l) + assert.True(NewList(Int32(1), NewString("hi"), Bool(true)).Equals(l)) } func TestReadValueListOfInt8(t *testing.T) { @@ -390,15 +384,8 @@ func TestReadRef(t *testing.T) { cs := chunks.NewMemoryStore() r := ref.Parse("sha1-a9993e364706816aba3e25717850c26c9cd0d89d") - a := parseJson(`[%d, %d, "%s"]`, RefKind, UInt32Kind, r.String()) reader := newJsonArrayReader(a, cs) - - refTr := MakeCompoundTypeRef(RefKind, MakePrimitiveTypeRef(UInt32Kind)) - RegisterFromValFunction(refTr, func(v Value) Value { - return v - }) - v := reader.readTopLevelValue() assert.True(NewRef(r).Equals(v)) } @@ -408,15 +395,8 @@ func TestReadValueRef(t *testing.T) { cs := chunks.NewMemoryStore() r := ref.Parse("sha1-a9993e364706816aba3e25717850c26c9cd0d89d") - a := parseJson(`[%d, %d, %d, "%s"]`, ValueKind, RefKind, UInt32Kind, r.String()) reader := newJsonArrayReader(a, cs) - - refTypeRef := MakeCompoundTypeRef(RefKind, MakePrimitiveTypeRef(UInt32Kind)) - RegisterFromValFunction(refTypeRef, func(v Value) Value { - return v - }) - v := reader.readTopLevelValue() assert.True(NewRef(r).Equals(v)) } @@ -446,13 +426,7 @@ func TestReadStructWithEnum(t *testing.T) { a := parseJson(`[%d, "%s", 0, 42, 1, true]`, UnresolvedKind, pkgRef.String()) r := newJsonArrayReader(a, cs) - - structTr := MakeTypeRef(pkgRef, 0) - RegisterFromValFunction(structTr, func(v Value) Value { - return v - }) enumTr := MakeTypeRef(pkgRef, 1) - v := r.readTopLevelValue().(Struct) assert.True(v.Get("x").Equals(Int16(42))) diff --git a/types/encode_noms_value.go b/types/encode_noms_value.go index 9605a9431e..c78f933edc 100644 --- a/types/encode_noms_value.go +++ b/types/encode_noms_value.go @@ -104,7 +104,7 @@ func (w *jsonArrayWriter) writeValue(v Value, tr TypeRef, pkg *Package) { } w.write(w3.toArray()) case RefKind: - w.writeRef(getRefFromRefKind(v)) + w.writeRef(v.(RefBase).TargetRef()) case SetKind: w2 := newJsonArrayWriter(w.cs) elemType := tr.Desc.(CompoundDesc).ElemTypes[0] @@ -131,15 +131,6 @@ func (w *jsonArrayWriter) writeValue(v Value, tr TypeRef, pkg *Package) { } } -// TODO: This is ugly. BUG 452 -type refImplementation interface { - TargetRef() ref.Ref -} - -func getRefFromRefKind(v Value) ref.Ref { - return v.(refImplementation).TargetRef() -} - func (w *jsonArrayWriter) writeTypeRefAsValue(v TypeRef) { k := v.Kind() w.write(k) diff --git a/types/list.go b/types/list.go index 78493854c0..7b31ba6c62 100644 --- a/types/list.go +++ b/types/list.go @@ -20,12 +20,6 @@ type MapFunc func(v Value, index uint64) interface{} var listTypeRef = MakeCompoundTypeRef(ListKind, MakePrimitiveTypeRef(ValueKind)) -func init() { - RegisterFromValFunction(listTypeRef, func(v Value) Value { - return v.(List) - }) -} - func NewList(v ...Value) List { // Copy because Noms values are supposed to be immutable and Go allows v to be reused (thus mutable). values := make([]Value, len(v)) diff --git a/types/map.go b/types/map.go index 7f73f4137b..166e9ce2ba 100644 --- a/types/map.go +++ b/types/map.go @@ -142,12 +142,6 @@ func (m Map) elemTypes() []TypeRef { return m.t.Desc.(CompoundDesc).ElemTypes } -func init() { - RegisterFromValFunction(mapTypeRef, func(v Value) Value { - return v.(Map) - }) -} - type mapEntry struct { key Value value Value diff --git a/types/package_registry.go b/types/package_registry.go index 4004d97ff2..9cd80ae8a5 100644 --- a/types/package_registry.go +++ b/types/package_registry.go @@ -8,13 +8,12 @@ import ( type enumBuilderFunc func(v uint32) Value type enumReaderFunc func(v Value) uint32 +type refBuilderFunc func(target ref.Ref) Value type structBuilderFunc func() chan Value type structReaderFunc func(v Value) chan Value type valueBuilderFunc func(v Value) Value type valueReaderFunc func(v Value) Value -type toNomsValueFunc func(v Value) Value - type enumFuncs struct { builder enumBuilderFunc reader enumReaderFunc @@ -31,11 +30,12 @@ type valueFuncs struct { } var ( - packages map[ref.Ref]*Package = map[ref.Ref]*Package{} - toNomsValueMap map[ref.Ref]toNomsValueFunc = map[ref.Ref]toNomsValueFunc{} - enumFuncMap map[ref.Ref]enumFuncs = map[ref.Ref]enumFuncs{} - structFuncMap map[ref.Ref]structFuncs = map[ref.Ref]structFuncs{} - valueFuncMap map[ref.Ref]valueFuncs = map[ref.Ref]valueFuncs{} + packages map[ref.Ref]*Package = map[ref.Ref]*Package{} + + enumFuncMap map[ref.Ref]enumFuncs = map[ref.Ref]enumFuncs{} + refFuncMap map[ref.Ref]refBuilderFunc = map[ref.Ref]refBuilderFunc{} + structFuncMap map[ref.Ref]structFuncs = map[ref.Ref]structFuncs{} + valueFuncMap map[ref.Ref]valueFuncs = map[ref.Ref]valueFuncs{} ) // LookupPackage looks for a Package by ref.Ref in the global cache of Noms type packages. @@ -57,17 +57,6 @@ func readPackage(r ref.Ref, cs chunks.ChunkSource) *Package { return &p } -func RegisterFromValFunction(t TypeRef, f toNomsValueFunc) { - toNomsValueMap[t.Ref()] = f -} - -func ToNomsValueFromTypeRef(t TypeRef, v Value) Value { - if f, ok := toNomsValueMap[t.Ref()]; ok { - return f(v) - } - return v -} - func RegisterStruct(t TypeRef, bf structBuilderFunc, rf structReaderFunc) { structFuncMap[t.Ref()] = structFuncs{bf, rf} } @@ -121,3 +110,14 @@ func internalValueFromTypeRef(v Value, t TypeRef) Value { } return v } + +func RegisterRef(t TypeRef, bf refBuilderFunc) { + refFuncMap[t.Ref()] = bf +} + +func refFromTypeRef(target ref.Ref, t TypeRef) Value { + if f, ok := refFuncMap[t.Ref()]; ok { + return f(target) + } + return NewRef(target) +} diff --git a/types/package_set_of_ref.go b/types/package_set_of_ref.go index 16924692f4..a67fc0e4d2 100644 --- a/types/package_set_of_ref.go +++ b/types/package_set_of_ref.go @@ -188,9 +188,11 @@ func (m RefOfPackage) TypeRef() TypeRef { func init() { __typeRefForRefOfPackage = MakeCompoundTypeRef(RefKind, MakePrimitiveTypeRef(PackageKind)) - RegisterFromValFunction(__typeRefForRefOfPackage, func(v Value) Value { - return NewRefOfPackage(v.(Ref).TargetRef()) - }) + RegisterRef(__typeRefForRefOfPackage, builderForRefOfPackage) +} + +func builderForRefOfPackage(r ref.Ref) Value { + return NewRefOfPackage(r) } func (r RefOfPackage) TargetValue(cs chunks.ChunkSource) Package { diff --git a/types/ref.go b/types/ref.go index a1dd891682..e1df1f16ef 100644 --- a/types/ref.go +++ b/types/ref.go @@ -11,6 +11,10 @@ type Ref struct { ref *ref.Ref } +type RefBase interface { + TargetRef() ref.Ref +} + func NewRef(target ref.Ref) Ref { return newRef(target, refTypeRef) } @@ -41,12 +45,6 @@ func (r Ref) TypeRef() TypeRef { return r.t } -func init() { - RegisterFromValFunction(refTypeRef, func(v Value) Value { - return v.(Ref) - }) -} - func (r Ref) TargetValue(cs chunks.ChunkSource) Value { return ReadValue(r.target, cs) } diff --git a/types/set.go b/types/set.go index 7b7f3b912d..05b59dd766 100644 --- a/types/set.go +++ b/types/set.go @@ -22,12 +22,6 @@ type setFilterCallback func(v Value) (keep bool) var setTypeRef = MakeCompoundTypeRef(SetKind, MakePrimitiveTypeRef(ValueKind)) -func init() { - RegisterFromValFunction(setTypeRef, func(v Value) Value { - return v.(Set) - }) -} - func NewSet(v ...Value) Set { return newSetFromData(buildSetData(setData{}, v), setTypeRef) }