]> Cypherpunks repositories - gostls13.git/commitdiff
use the new type switch multicase to clean up a little.
authorRob Pike <r@golang.org>
Wed, 9 Sep 2009 17:32:26 +0000 (10:32 -0700)
committerRob Pike <r@golang.org>
Wed, 9 Sep 2009 17:32:26 +0000 (10:32 -0700)
R=rsc
DELTA=28  (7 added, 16 deleted, 5 changed)
OCL=34487
CL=34487

src/pkg/gob/encoder.go

index f4a5610295d237a8a2cfd87a25cdfa7374d0c2bd..a3c968581f496e40e8efac854a083954e568385d 100644 (file)
@@ -240,31 +240,22 @@ func (enc *Encoder) sendType(origt reflect.Type) {
        rt, indir_ := indirect(origt);
 
        // We only send structs - everything else is basic or an error
-       switch t := rt.(type) {
-       case *reflect.StructType:       // TODO: when compiler handles type lists, can fold these
-               break;  // we handle these
-       case *reflect.ChanType:
-               enc.badType(rt);
-               return;
-       case *reflect.FuncType:
-               enc.badType(rt);
-               return;
-       case *reflect.MapType:
-               enc.badType(rt);
-               return;
-       case *reflect.InterfaceType:
-               enc.badType(rt);
+       switch rt.(type) {
+       default:
+               // Basic types do not need to be described.
                return;
-       // Array and slice types are not sent, only their element types.
-       // If we see one here it's user error.
-       case *reflect.ArrayType:
+       case *reflect.StructType:
+               // Structs do need to be described.
+               break;
+       case *reflect.ChanType, *reflect.FuncType, *reflect.MapType, *reflect.InterfaceType:
+               // Probably a bad field in a struct.
                enc.badType(rt);
                return;
-       case *reflect.SliceType:
+       case *reflect.ArrayType, *reflect.SliceType:
+               // Array and slice types are not sent, only their element types.
+               // If we see one here it's user error; probably a bad top-level value.
                enc.badType(rt);
                return;
-       default:
-               return; // basic, not a type to be sent.
        }
 
        // Have we already sent this type?  This time we ask about the base type.