summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2008-12-09 16:33:02 -0800
committerRob Pike <r@golang.org>2008-12-09 16:33:02 -0800
commit90d107bf0e40974e714cfca7b4756296a0b71abe (patch)
treee5b9028bd2b9ab42bbbd3b1d554f2139b541a59d /src
parent1aa9c7fe17a1630d0bb4a0c29cf2908a3b2e3ca2 (diff)
downloadgolang-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.go53
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"] = &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;
}