]> Cypherpunks repositories - gostls13.git/commitdiff
implement two TODOs in reflect:
authorRob Pike <r@golang.org>
Wed, 10 Dec 2008 00:33:02 +0000 (16:33 -0800)
committerRob Pike <r@golang.org>
Wed, 10 Dec 2008 00:33:02 +0000 (16:33 -0800)
- 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

src/lib/reflect/type.go

index 5258cf5b5ab3422ad3bd1f6133772a98d200b857..dc1a30a5ad773b221950b6b0da33c8c65c9a6ec5 100644 (file)
@@ -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"] = &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;
 }