update protocol library to new reflection API.
update golden files.

R=rsc
CC=dsymonds
http://codereview.appspot.com/1698044
diff --git a/proto/text_parser.go b/proto/text_parser.go
index e1c0832..f888f9b 100644
--- a/proto/text_parser.go
+++ b/proto/text_parser.go
@@ -354,7 +354,7 @@
 	switch fv := v.(type) {
 	case *reflect.SliceValue:
 		at := v.Type().(*reflect.SliceType)
-		if _, ok := at.Elem().(*reflect.Uint8Type); ok {
+		if at.Elem().Kind() == reflect.Uint8 {
 			// Special case for []byte
 			if tok.value[0] != '"' {
 				// Deliberately written out here, as the error after
@@ -386,38 +386,36 @@
 			fv.Set(false)
 			return nil
 		}
-	case *reflect.Float32Value:
-		if f, err := strconv.Atof32(tok.value); err == nil {
+	case *reflect.FloatValue:
+		if f, err := strconv.AtofN(tok.value, fv.Type().Bits()); err == nil {
 			fv.Set(f)
 			return nil
 		}
-	case *reflect.Float64Value:
-		if f, err := strconv.Atof64(tok.value); err == nil {
-			fv.Set(f)
+	case *reflect.IntValue:
+		switch fv.Type().Bits() {
+		case 32:
+			if x, err := strconv.Atoi64(tok.value); err == nil && minInt32 <= x && x <= maxInt32 {
+				fv.Set(x)
+				return nil
+			}
+			if len(props.Enum) == 0 {
+				break
+			}
+			m, ok := enumValueMaps[props.Enum]
+			if !ok {
+				break
+			}
+			x, ok := m[tok.value]
+			if !ok {
+				break
+			}
+			fv.Set(int64(x))
 			return nil
-		}
-	case *reflect.Int32Value:
-		if x, err := strconv.Atoi64(tok.value); err == nil && minInt32 <= x && x <= maxInt32 {
-			fv.Set(int32(x))
-			return nil
-		}
-		if len(props.Enum) == 0 {
-			break
-		}
-		m, ok := enumValueMaps[props.Enum]
-		if !ok {
-			break
-		}
-		x, ok := m[tok.value]
-		if !ok {
-			break
-		}
-		fv.Set(x)
-		return nil
-	case *reflect.Int64Value:
-		if x, err := strconv.Atoi64(tok.value); err == nil {
-			fv.Set(x)
-			return nil
+		case 64:
+			if x, err := strconv.Atoi64(tok.value); err == nil {
+				fv.Set(x)
+				return nil
+			}
 		}
 	case *reflect.PtrValue:
 		// A basic field (indirected through pointer), or a repeated message/group
@@ -440,15 +438,18 @@
 			return p.error("expected '{' or '<', found %q", tok.value)
 		}
 		return p.readStruct(fv, terminator)
-	case *reflect.Uint32Value:
-		if x, err := strconv.Atoui64(tok.value); err == nil && x <= maxUint32 {
-			fv.Set(uint32(x))
-			return nil
-		}
-	case *reflect.Uint64Value:
-		if x, err := strconv.Atoui64(tok.value); err == nil {
-			fv.Set(x)
-			return nil
+	case *reflect.UintValue:
+		switch fv.Type().Bits() {
+		case 32:
+			if x, err := strconv.Atoui64(tok.value); err == nil && x <= maxUint32 {
+				fv.Set(uint64(x))
+				return nil
+			}
+		case 64:
+			if x, err := strconv.Atoui64(tok.value); err == nil {
+				fv.Set(x)
+				return nil
+			}
 		}
 	}
 	return p.error("invalid %v: %v", v.Type(), tok.value)