diff options
author | Rob Pike <r@golang.org> | 2008-12-09 16:33:02 -0800 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2008-12-09 16:33:02 -0800 |
commit | 90d107bf0e40974e714cfca7b4756296a0b71abe (patch) | |
tree | e5b9028bd2b9ab42bbbd3b1d554f2139b541a59d /src | |
parent | 1aa9c7fe17a1630d0bb4a0c29cf2908a3b2e3ca2 (diff) | |
download | golang-90d107bf0e40974e714cfca7b4756296a0b71abe.tar.gz |
implement two TODOs in reflect:
- delete vestigial SetString method
- make type map use interface instead of *interface
R=rsc
DELTA=31 (0 added, 7 deleted, 24 changed)
OCL=20861
CL=20863
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/reflect/type.go | 53 |
1 files changed, 23 insertions, 30 deletions
diff --git a/src/lib/reflect/type.go b/src/lib/reflect/type.go index 5258cf5b5..dc1a30a5a 100644 --- a/src/lib/reflect/type.go +++ b/src/lib/reflect/type.go @@ -54,7 +54,6 @@ export type Type interface { Kind() int; Name() string; String() string; - SetString(string); // TODO: remove when no longer needed Size() int; } @@ -78,10 +77,6 @@ func (c *Common) String() string { return c.str } -func (c *Common) SetString(s string) { - c.str = s -} - func (c *Common) Size() int { return c.size } @@ -379,7 +374,7 @@ func (t *FuncTypeStruct) Out() StructType { } // Cache of expanded types keyed by type name. -var types *map[string] *Type // BUG TODO: should be Type not *Type +var types *map[string] Type // List of typename, typestring pairs var typestring *map[string] string @@ -408,29 +403,29 @@ func init() { Lock(); // not necessary because of init ordering but be safe. - types = new(map[string] *Type); + types = new(map[string] Type); typestring = new(map[string] string); basicstub = new(map[string] *StubType); // Basics go into types table - types[MissingString] = &Missing; - types[DotDotDotString] = &DotDotDot; - types["int"] = ∬ - types["int8"] = &Int8; - types["int16"] = &Int16; - types["int32"] = &Int32; - types["int64"] = &Int64; - types["uint"] = &Uint; - types["uint8"] = &Uint8; - types["uint16"] = &Uint16; - types["uint32"] = &Uint32; - types["uint64"] = &Uint64; - types["float"] = &Float; - types["float32"] = &Float32; - types["float64"] = &Float64; - types["float80"] = &Float80; - types["string"] = &String; - types["bool"] = &Bool; + types[MissingString] = Missing; + types[DotDotDotString] = DotDotDot; + types["int"] = Int; + types["int8"] = Int8; + types["int16"] = Int16; + types["int32"] = Int32; + types["int64"] = Int64; + types["uint"] = Uint; + types["uint8"] = Uint8; + types["uint16"] = Uint16; + types["uint32"] = Uint32; + types["uint64"] = Uint64; + types["float"] = Float; + types["float32"] = Float32; + types["float64"] = Float64; + types["float80"] = Float80; + types["string"] = String; + types["bool"] = Bool; // Basics get prebuilt stubs MissingStub = NewStubType(MissingString, Missing); @@ -899,13 +894,11 @@ func ExpandType(name string) Type { t, ok := types[name]; if ok { Unlock(); - return *t + return t } - types[name] = &Missing; // prevent recursion; will overwrite + types[name] = Missing; // prevent recursion; will overwrite t1 := ParseTypeString(name, TypeNameToTypeString(name)); - p := new(Type); - *p = t1; - types[name] = p; + types[name] = t1; Unlock(); return t1; } |