cmd/protoc-gen-go: generate def= protobuf field tag, default constants
Change-Id: Id5cc34f0c1a5eb72f19e648844a5480827bcbda3
Reviewed-on: https://go-review.googlesource.com/135256
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/cmd/protoc-gen-go/main.go b/cmd/protoc-gen-go/main.go
index 9213ea8..b90b43c 100644
--- a/cmd/protoc-gen-go/main.go
+++ b/cmd/protoc-gen-go/main.go
@@ -13,6 +13,7 @@
"encoding/hex"
"flag"
"fmt"
+ "math"
"strconv"
"strings"
@@ -321,6 +322,59 @@
})
g.P()
+ // Constants and vars holding the default values of fields.
+ for _, field := range message.Fields {
+ if !field.Desc.HasDefault() {
+ continue
+ }
+ defVarName := "Default_" + message.GoIdent.GoName + "_" + field.GoIdent.GoName
+ def := field.Desc.Default()
+ switch field.Desc.Kind() {
+ case protoreflect.StringKind:
+ g.P("const ", defVarName, " string = ", strconv.Quote(def.String()))
+ case protoreflect.BytesKind:
+ g.P("var ", defVarName, " []byte = []byte(", strconv.Quote(string(def.Bytes())), ")")
+ case protoreflect.EnumKind:
+ enum := field.EnumType
+ evalue := enum.Values[enum.Desc.Values().ByNumber(def.Enum()).Index()]
+ g.P("const ", defVarName, " ", field.EnumType.GoIdent, " = ", evalue.GoIdent)
+ case protoreflect.FloatKind, protoreflect.DoubleKind:
+ // Floating point numbers need extra handling for -Inf/Inf/NaN.
+ f := field.Desc.Default().Float()
+ goType := "float64"
+ if field.Desc.Kind() == protoreflect.FloatKind {
+ goType = "float32"
+ }
+ // funcCall returns a call to a function in the math package,
+ // possibly converting the result to float32.
+ funcCall := func(fn, param string) string {
+ s := g.QualifiedGoIdent(protogen.GoIdent{
+ GoImportPath: "math",
+ GoName: fn,
+ }) + param
+ if goType != "float64" {
+ s = goType + "(" + s + ")"
+ }
+ return s
+ }
+ switch {
+ case math.IsInf(f, -1):
+ g.P("var ", defVarName, " ", goType, " = ", funcCall("Inf", "(-1)"))
+ case math.IsInf(f, 1):
+ g.P("var ", defVarName, " ", goType, " = ", funcCall("Inf", "(1)"))
+ case math.IsNaN(f):
+ g.P("var ", defVarName, " ", goType, " = ", funcCall("NaN", "()"))
+ default:
+ g.P("const ", defVarName, " ", goType, " = ", f)
+ }
+ default:
+ goType := fieldGoType(g, field)
+ goType = strings.TrimPrefix(goType, "*")
+ g.P("const ", defVarName, " ", goType, " = ", def.Interface())
+ }
+ }
+ g.P()
+
// TODO: getters
for _, nested := range message.Messages {
@@ -390,7 +444,6 @@
case protoreflect.Repeated:
tag = append(tag, "rep")
}
- // TODO: default values
// TODO: packed
// name
name := string(field.Desc.Name())
@@ -417,6 +470,36 @@
if field.Desc.OneofType() != nil {
tag = append(tag, "oneof")
}
+ // default value
+ // This must appear last in the tag, since commas in strings aren't escaped.
+ if field.Desc.HasDefault() {
+ var def string
+ switch field.Desc.Kind() {
+ case protoreflect.BoolKind:
+ if field.Desc.Default().Bool() {
+ def = "1"
+ } else {
+ def = "0"
+ }
+ case protoreflect.BytesKind:
+ def = string(field.Desc.Default().Bytes())
+ case protoreflect.FloatKind, protoreflect.DoubleKind:
+ f := field.Desc.Default().Float()
+ switch {
+ case math.IsInf(f, -1):
+ def = "-inf"
+ case math.IsInf(f, 1):
+ def = "inf"
+ case math.IsNaN(f):
+ def = "nan"
+ default:
+ def = fmt.Sprint(f)
+ }
+ default:
+ def = fmt.Sprint(field.Desc.Default().Interface())
+ }
+ tag = append(tag, "def="+def)
+ }
return strings.Join(tag, ",")
}
diff --git a/cmd/protoc-gen-go/testdata/proto2/fields.pb.go b/cmd/protoc-gen-go/testdata/proto2/fields.pb.go
index f3302a5..5100c7a 100644
--- a/cmd/protoc-gen-go/testdata/proto2/fields.pb.go
+++ b/cmd/protoc-gen-go/testdata/proto2/fields.pb.go
@@ -3,7 +3,10 @@
package proto2
-import proto "github.com/golang/protobuf/proto"
+import (
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
@@ -15,14 +18,17 @@
const (
FieldTestMessage_ZERO FieldTestMessage_Enum = 0
+ FieldTestMessage_ONE FieldTestMessage_Enum = 1
)
var FieldTestMessage_Enum_name = map[int32]string{
0: "ZERO",
+ 1: "ONE",
}
var FieldTestMessage_Enum_value = map[string]int32{
"ZERO": 0,
+ "ONE": 1,
}
func (x FieldTestMessage_Enum) Enum() *FieldTestMessage_Enum {
@@ -49,7 +55,7 @@
}
type FieldTestMessage struct {
- OptionalBool *string `protobuf:"bytes,1,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"`
+ OptionalBool *bool `protobuf:"varint,1,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"`
OptionalEnum *FieldTestMessage_Enum `protobuf:"varint,2,opt,name=optional_enum,json=optionalEnum,enum=goproto.protoc.proto2.FieldTestMessage_Enum" json:"optional_enum,omitempty"`
OptionalInt32 *int32 `protobuf:"varint,3,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"`
OptionalSint32 *int32 `protobuf:"zigzag32,4,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"`
@@ -67,7 +73,7 @@
OptionalBytes []byte `protobuf:"bytes,16,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty"`
Optional_Message *FieldTestMessage_Message `protobuf:"bytes,17,opt,name=optional_Message,json=optionalMessage" json:"optional_Message,omitempty"`
Optionalgroup *FieldTestMessage_OptionalGroup `protobuf:"group,18,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"`
- RequiredBool *string `protobuf:"bytes,101,req,name=required_bool,json=requiredBool" json:"required_bool,omitempty"`
+ RequiredBool *bool `protobuf:"varint,101,req,name=required_bool,json=requiredBool" json:"required_bool,omitempty"`
RequiredEnum *FieldTestMessage_Enum `protobuf:"varint,102,req,name=required_enum,json=requiredEnum,enum=goproto.protoc.proto2.FieldTestMessage_Enum" json:"required_enum,omitempty"`
RequiredInt32 *int32 `protobuf:"varint,103,req,name=required_int32,json=requiredInt32" json:"required_int32,omitempty"`
RequiredSint32 *int32 `protobuf:"zigzag32,104,req,name=required_sint32,json=requiredSint32" json:"required_sint32,omitempty"`
@@ -85,7 +91,7 @@
RequiredBytes []byte `protobuf:"bytes,116,req,name=required_bytes,json=requiredBytes" json:"required_bytes,omitempty"`
Required_Message *FieldTestMessage_Message `protobuf:"bytes,117,req,name=required_Message,json=requiredMessage" json:"required_Message,omitempty"`
Requiredgroup *FieldTestMessage_RequiredGroup `protobuf:"group,118,req,name=RequiredGroup,json=requiredgroup" json:"requiredgroup,omitempty"`
- RepeatedBool []string `protobuf:"bytes,201,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"`
+ RepeatedBool []bool `protobuf:"varint,201,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"`
RepeatedEnum []FieldTestMessage_Enum `protobuf:"varint,202,rep,name=repeated_enum,json=repeatedEnum,enum=goproto.protoc.proto2.FieldTestMessage_Enum" json:"repeated_enum,omitempty"`
RepeatedInt32 []int32 `protobuf:"varint,203,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"`
RepeatedSint32 []int32 `protobuf:"zigzag32,204,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"`
@@ -103,6 +109,28 @@
RepeatedBytes [][]byte `protobuf:"bytes,216,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"`
Repeated_Message []*FieldTestMessage_Message `protobuf:"bytes,217,rep,name=repeated_Message,json=repeatedMessage" json:"repeated_Message,omitempty"`
Repeatedgroup []*FieldTestMessage_RepeatedGroup `protobuf:"group,218,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"`
+ DefaultBool *bool `protobuf:"varint,301,opt,name=default_bool,json=defaultBool,def=1" json:"default_bool,omitempty"`
+ DefaultEnum *FieldTestMessage_Enum `protobuf:"varint,302,opt,name=default_enum,json=defaultEnum,enum=goproto.protoc.proto2.FieldTestMessage_Enum,def=1" json:"default_enum,omitempty"`
+ DefaultInt32 *int32 `protobuf:"varint,303,opt,name=default_int32,json=defaultInt32,def=1" json:"default_int32,omitempty"`
+ DefaultSint32 *int32 `protobuf:"zigzag32,304,opt,name=default_sint32,json=defaultSint32,def=1" json:"default_sint32,omitempty"`
+ DefaultUint32 *uint32 `protobuf:"varint,305,opt,name=default_uint32,json=defaultUint32,def=1" json:"default_uint32,omitempty"`
+ DefaultInt64 *int64 `protobuf:"varint,306,opt,name=default_int64,json=defaultInt64,def=1" json:"default_int64,omitempty"`
+ DefaultSint64 *int64 `protobuf:"zigzag64,307,opt,name=default_sint64,json=defaultSint64,def=1" json:"default_sint64,omitempty"`
+ DefaultUint64 *uint64 `protobuf:"varint,308,opt,name=default_uint64,json=defaultUint64,def=1" json:"default_uint64,omitempty"`
+ DefaultSfixed32 *int32 `protobuf:"fixed32,309,opt,name=default_sfixed32,json=defaultSfixed32,def=1" json:"default_sfixed32,omitempty"`
+ DefaultFixed32 *uint32 `protobuf:"fixed32,310,opt,name=default_fixed32,json=defaultFixed32,def=1" json:"default_fixed32,omitempty"`
+ DefaultFloat *float32 `protobuf:"fixed32,311,opt,name=default_float,json=defaultFloat,def=1.5" json:"default_float,omitempty"`
+ DefaultSfixed64 *int64 `protobuf:"fixed64,312,opt,name=default_sfixed64,json=defaultSfixed64,def=1" json:"default_sfixed64,omitempty"`
+ DefaultFixed64 *uint64 `protobuf:"fixed64,313,opt,name=default_fixed64,json=defaultFixed64,def=1" json:"default_fixed64,omitempty"`
+ DefaultDouble *float64 `protobuf:"fixed64,314,opt,name=default_double,json=defaultDouble,def=1.5" json:"default_double,omitempty"`
+ DefaultString *string `protobuf:"bytes,315,opt,name=default_string,json=defaultString,def=x,y" json:"default_string,omitempty"`
+ DefaultBytes []byte `protobuf:"bytes,316,opt,name=default_bytes,json=defaultBytes,def=x,y" json:"default_bytes,omitempty"`
+ DefaultFloatNeginf *float32 `protobuf:"fixed32,400,opt,name=default_float_neginf,json=defaultFloatNeginf,def=-inf" json:"default_float_neginf,omitempty"`
+ DefaultFloatPosinf *float32 `protobuf:"fixed32,401,opt,name=default_float_posinf,json=defaultFloatPosinf,def=inf" json:"default_float_posinf,omitempty"`
+ DefaultFloatNan *float32 `protobuf:"fixed32,402,opt,name=default_float_nan,json=defaultFloatNan,def=nan" json:"default_float_nan,omitempty"`
+ DefaultDoubleNeginf *float64 `protobuf:"fixed64,403,opt,name=default_double_neginf,json=defaultDoubleNeginf,def=-inf" json:"default_double_neginf,omitempty"`
+ DefaultDoublePosinf *float64 `protobuf:"fixed64,404,opt,name=default_double_posinf,json=defaultDoublePosinf,def=inf" json:"default_double_posinf,omitempty"`
+ DefaultDoubleNan *float64 `protobuf:"fixed64,405,opt,name=default_double_nan,json=defaultDoubleNan,def=nan" json:"default_double_nan,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -132,6 +160,30 @@
var xxx_messageInfo_FieldTestMessage proto.InternalMessageInfo
+const Default_FieldTestMessage_DefaultBool bool = true
+const Default_FieldTestMessage_DefaultEnum FieldTestMessage_Enum = FieldTestMessage_ONE
+const Default_FieldTestMessage_DefaultInt32 int32 = 1
+const Default_FieldTestMessage_DefaultSint32 int32 = 1
+const Default_FieldTestMessage_DefaultUint32 uint32 = 1
+const Default_FieldTestMessage_DefaultInt64 int64 = 1
+const Default_FieldTestMessage_DefaultSint64 int64 = 1
+const Default_FieldTestMessage_DefaultUint64 uint64 = 1
+const Default_FieldTestMessage_DefaultSfixed32 int32 = 1
+const Default_FieldTestMessage_DefaultFixed32 uint32 = 1
+const Default_FieldTestMessage_DefaultFloat float32 = 1.5
+const Default_FieldTestMessage_DefaultSfixed64 int64 = 1
+const Default_FieldTestMessage_DefaultFixed64 uint64 = 1
+const Default_FieldTestMessage_DefaultDouble float64 = 1.5
+const Default_FieldTestMessage_DefaultString string = "x,y"
+
+var Default_FieldTestMessage_DefaultBytes []byte = []byte("x,y")
+var Default_FieldTestMessage_DefaultFloatNeginf float32 = float32(math.Inf(-1))
+var Default_FieldTestMessage_DefaultFloatPosinf float32 = float32(math.Inf(1))
+var Default_FieldTestMessage_DefaultFloatNan float32 = float32(math.NaN())
+var Default_FieldTestMessage_DefaultDoubleNeginf float64 = math.Inf(-1)
+var Default_FieldTestMessage_DefaultDoublePosinf float64 = math.Inf(1)
+var Default_FieldTestMessage_DefaultDoubleNan float64 = math.NaN()
+
type FieldTestMessage_OptionalGroup struct {
OptionalGroup *string `protobuf:"bytes,19,opt,name=optional_group,json=optionalGroup" json:"optional_group,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -262,66 +314,89 @@
func init() { proto.RegisterFile("proto2/fields.proto", fileDescriptor_fd8a9d72b841fd68) }
var fileDescriptor_fd8a9d72b841fd68 = []byte{
- // 969 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xdb, 0x6f, 0x1b, 0x45,
- 0x14, 0xc6, 0x99, 0x89, 0x9b, 0x34, 0xdb, 0x38, 0x71, 0xb6, 0x02, 0x8d, 0x78, 0x3a, 0x2a, 0xb7,
- 0x01, 0x5a, 0x5b, 0x72, 0x87, 0x41, 0x88, 0xb7, 0x88, 0xa6, 0xe2, 0x01, 0x55, 0x2c, 0xf0, 0x92,
- 0x22, 0x55, 0x4e, 0xbc, 0x59, 0x0c, 0x1b, 0x8f, 0x6b, 0xaf, 0xb9, 0xfc, 0x7d, 0x3c, 0x71, 0xbf,
- 0xdf, 0xff, 0x19, 0x74, 0xe6, 0xcc, 0x65, 0x67, 0xdd, 0x87, 0x26, 0x4f, 0xb6, 0x4f, 0xbe, 0xf3,
- 0x7d, 0x73, 0xc6, 0xe7, 0xe7, 0x4d, 0x76, 0x73, 0xb1, 0x34, 0x8d, 0x19, 0x8f, 0xce, 0x67, 0x65,
- 0x3d, 0x5d, 0x0d, 0xed, 0xa7, 0xfc, 0xd9, 0xca, 0xd8, 0x37, 0xf4, 0xf1, 0x8c, 0x5e, 0xc6, 0xb7,
- 0xbe, 0x7e, 0x2e, 0x1b, 0x1c, 0xa3, 0xee, 0xc3, 0x72, 0xd5, 0xbc, 0x57, 0xae, 0x56, 0x93, 0xaa,
- 0xcc, 0x5f, 0xc8, 0xfa, 0x66, 0xd1, 0xcc, 0xcc, 0x7c, 0x52, 0x3f, 0x3a, 0x35, 0xa6, 0x16, 0x0c,
- 0x98, 0xdc, 0x2d, 0xf6, 0x7c, 0xf1, 0xc8, 0x98, 0x3a, 0x7f, 0xbf, 0x25, 0x2a, 0xe7, 0xeb, 0x0b,
- 0xc1, 0x81, 0xc9, 0xfd, 0xf1, 0xed, 0xe1, 0x13, 0x83, 0x86, 0xdd, 0x90, 0xe1, 0xbd, 0xf9, 0xfa,
- 0x22, 0x5a, 0xe2, 0xa7, 0xfc, 0xa5, 0x6c, 0x3f, 0x58, 0xce, 0xe6, 0xcd, 0xdd, 0xb1, 0xd8, 0x02,
- 0x26, 0xaf, 0x15, 0x21, 0xe8, 0x5d, 0x2c, 0xe6, 0xaf, 0x64, 0x07, 0x41, 0xb6, 0x22, 0x5d, 0x0f,
- 0x98, 0x3c, 0x2c, 0x42, 0xf7, 0x07, 0xb3, 0x0d, 0xe1, 0x9a, 0x84, 0xd7, 0x80, 0xc9, 0x7e, 0x14,
- 0x7e, 0x44, 0xc2, 0x4e, 0xb0, 0x56, 0x62, 0x1b, 0x98, 0xdc, 0x4a, 0x82, 0xb5, 0xda, 0x08, 0xd6,
- 0x4a, 0xec, 0x00, 0x93, 0x79, 0x1a, 0xdc, 0x11, 0xae, 0x49, 0x78, 0x1d, 0x98, 0xec, 0xa5, 0xc1,
- 0x5a, 0xe5, 0xaf, 0x67, 0x87, 0xd1, 0xf1, 0x7c, 0xf6, 0x65, 0x39, 0xbd, 0x3b, 0x16, 0xbb, 0xc0,
- 0xe4, 0x41, 0x31, 0x08, 0x9e, 0xae, 0x9e, 0xbf, 0x9a, 0x85, 0xda, 0x23, 0xaf, 0xcd, 0x80, 0xc9,
- 0x9d, 0x22, 0xa4, 0x1d, 0x3b, 0x69, 0x7b, 0xa0, 0xf3, 0xda, 0x4c, 0x1a, 0x71, 0x03, 0x98, 0xe4,
- 0x71, 0xa0, 0x63, 0x2c, 0x3e, 0x21, 0x5e, 0x2b, 0xb1, 0x07, 0x4c, 0x0e, 0xba, 0xf1, 0x5a, 0x6d,
- 0xc6, 0x6b, 0x25, 0xfa, 0xc0, 0xe4, 0x76, 0x27, 0xbe, 0x33, 0xff, 0xd4, 0xac, 0x4f, 0xeb, 0x52,
- 0xec, 0x03, 0x93, 0x2c, 0xce, 0xff, 0x8e, 0xad, 0xa6, 0x37, 0xda, 0x2c, 0x67, 0xf3, 0x4a, 0x1c,
- 0xd8, 0x5d, 0x8b, 0x37, 0x6a, 0xab, 0xc9, 0x40, 0xa7, 0x5f, 0x35, 0xe5, 0x4a, 0x0c, 0x80, 0xc9,
- 0xbd, 0x38, 0xd0, 0x11, 0x16, 0xf3, 0x93, 0xd6, 0x19, 0xdd, 0xa2, 0x89, 0x43, 0x60, 0xf2, 0xc6,
- 0x78, 0xf4, 0xb4, 0x7b, 0xe9, 0x5e, 0xe3, 0x50, 0x9e, 0x8a, 0x87, 0x71, 0xe1, 0xab, 0xa5, 0x59,
- 0x2f, 0x44, 0x0e, 0x4c, 0x66, 0xe3, 0x37, 0x9e, 0xd6, 0xf8, 0x81, 0x6b, 0xbe, 0x8f, 0xcd, 0x45,
- 0xea, 0x85, 0xc8, 0x2d, 0xcb, 0xc7, 0xeb, 0xd9, 0xb2, 0x9c, 0x12, 0x72, 0x25, 0x70, 0x44, 0xce,
- 0x17, 0x3d, 0x72, 0x41, 0x64, 0x91, 0x3b, 0x07, 0x7e, 0x79, 0xe4, 0xbc, 0x85, 0x47, 0x2e, 0x58,
- 0x12, 0x21, 0x15, 0x70, 0x44, 0xce, 0x57, 0x03, 0x72, 0x41, 0xe6, 0x90, 0xfb, 0x04, 0x38, 0x22,
- 0xe7, 0xcb, 0x11, 0xb9, 0x20, 0x74, 0xc8, 0xcd, 0x80, 0x23, 0x72, 0xbe, 0x1c, 0x91, 0x6b, 0x07,
- 0x6b, 0x25, 0x3e, 0x05, 0x8e, 0xc8, 0xb5, 0x82, 0x69, 0x93, 0x92, 0x60, 0xad, 0xc4, 0x67, 0xc0,
- 0x11, 0xb9, 0x76, 0x70, 0x47, 0xe8, 0x90, 0xab, 0x81, 0x23, 0x72, 0xed, 0x60, 0x42, 0x2e, 0x3a,
- 0x7a, 0x8c, 0x2e, 0x80, 0x23, 0x72, 0xc1, 0xb3, 0x85, 0x5c, 0x10, 0x7b, 0xed, 0x1c, 0x38, 0x22,
- 0xe7, 0xeb, 0x2d, 0xe4, 0xa2, 0xd4, 0x22, 0x67, 0x80, 0x23, 0x72, 0x41, 0xe8, 0x91, 0xeb, 0xc4,
- 0x6b, 0x25, 0x16, 0xc0, 0x11, 0xb9, 0x34, 0x9e, 0x90, 0x4b, 0xe3, 0xb5, 0x12, 0x8f, 0x81, 0x23,
- 0x72, 0x49, 0x7c, 0x67, 0x7e, 0x87, 0xdc, 0x12, 0x38, 0x22, 0xe7, 0xcb, 0x11, 0xb9, 0x78, 0x00,
- 0x42, 0x6e, 0x65, 0x77, 0x2d, 0xde, 0x68, 0x40, 0x2e, 0xae, 0xa4, 0x45, 0xae, 0x01, 0x8e, 0xc8,
- 0x85, 0x9d, 0xf4, 0xc8, 0x05, 0x99, 0x47, 0x6e, 0x0d, 0xfc, 0x4a, 0xc8, 0x79, 0xa3, 0x16, 0x72,
- 0xbe, 0x44, 0xc8, 0x7d, 0x0e, 0xfc, 0x32, 0xc8, 0x15, 0xae, 0xd9, 0x21, 0x97, 0x78, 0xe5, 0x2f,
- 0xa2, 0xf9, 0xa2, 0x9c, 0x34, 0x1e, 0xb9, 0x6f, 0x18, 0x6c, 0x11, 0x73, 0x54, 0xb5, 0xcc, 0x15,
- 0x2d, 0x95, 0x65, 0xee, 0x5b, 0x54, 0x5d, 0x01, 0x3a, 0xf2, 0xb0, 0xd0, 0xbd, 0x8c, 0x37, 0xeb,
- 0x3c, 0x89, 0x91, 0xef, 0xd0, 0xd4, 0x52, 0x47, 0x65, 0xa2, 0x4e, 0xe2, 0x57, 0xe5, 0x74, 0x8e,
- 0xba, 0xef, 0x51, 0x68, 0xb1, 0xa3, 0xba, 0xc3, 0xae, 0xad, 0x74, 0xd8, 0xfd, 0x80, 0xca, 0x7e,
- 0x54, 0x3a, 0xee, 0x3a, 0xd9, 0x5a, 0x89, 0x1f, 0x51, 0xb8, 0x95, 0x64, 0x6b, 0xb5, 0x91, 0xad,
- 0x95, 0xf8, 0x09, 0x85, 0x79, 0x9a, 0xdd, 0x51, 0x3a, 0xf2, 0x7e, 0x46, 0x65, 0x2f, 0xcd, 0xd6,
- 0x2a, 0xbf, 0x8d, 0xbb, 0xef, 0x3d, 0x3d, 0x4e, 0xbf, 0xa0, 0xd6, 0xb2, 0xe7, 0x5c, 0x3d, 0x7b,
- 0xaf, 0x65, 0xa1, 0x16, 0xd8, 0xfb, 0x15, 0xc5, 0x16, 0x3e, 0xfa, 0x83, 0x87, 0xaf, 0x3d, 0x15,
- 0xc1, 0xf7, 0x1b, 0x2a, 0x79, 0x9c, 0x8a, 0xe8, 0xdb, 0x3c, 0x81, 0x56, 0xe2, 0x77, 0x94, 0x0e,
- 0xba, 0x27, 0xd0, 0x6a, 0xf3, 0x04, 0x5a, 0x89, 0x3f, 0x50, 0xbc, 0xdd, 0x39, 0x41, 0xe7, 0x16,
- 0x1c, 0x7f, 0x7f, 0xa2, 0x94, 0xc5, 0x5b, 0x70, 0x00, 0x26, 0x37, 0x4b, 0x00, 0xfe, 0x45, 0x9b,
- 0x17, 0x6f, 0x96, 0x08, 0x6c, 0x4f, 0x45, 0x04, 0xfe, 0x8d, 0xc2, 0xbd, 0x38, 0x15, 0x21, 0xf8,
- 0xb0, 0x75, 0x4e, 0x8f, 0xe0, 0x3f, 0xa8, 0xbc, 0x1a, 0x83, 0xe4, 0xe4, 0x19, 0xfc, 0x38, 0x02,
- 0x40, 0x0c, 0xfe, 0x8b, 0xce, 0x97, 0x82, 0x90, 0xba, 0x03, 0x84, 0x2d, 0xb3, 0xe7, 0x75, 0xd6,
- 0x4f, 0x9e, 0x8b, 0xc9, 0x83, 0x9e, 0xf2, 0x6e, 0xda, 0x7f, 0x08, 0xc2, 0xf3, 0xf2, 0xbe, 0xef,
- 0x4b, 0xe0, 0x4e, 0x7e, 0xad, 0xa8, 0xef, 0x0b, 0xfb, 0xab, 0x16, 0xa0, 0xa7, 0xbe, 0x37, 0xb1,
- 0xaf, 0x75, 0x9e, 0xe4, 0x8e, 0xa9, 0xef, 0x3f, 0xfa, 0x32, 0xc2, 0x41, 0xa9, 0x71, 0x37, 0xdb,
- 0x71, 0x03, 0xdd, 0x1a, 0x64, 0x3d, 0x8b, 0xf1, 0xf5, 0xac, 0x77, 0x72, 0xaf, 0x78, 0x30, 0x78,
- 0xe6, 0xe8, 0xed, 0x93, 0xb7, 0x2a, 0x63, 0xaa, 0xba, 0x1c, 0x56, 0xa6, 0x9e, 0xcc, 0xab, 0xa1,
- 0x59, 0x56, 0x23, 0x7b, 0x1f, 0xa3, 0xb3, 0x8b, 0x29, 0xbd, 0x3b, 0xbb, 0x53, 0x95, 0xf3, 0x3b,
- 0x95, 0x19, 0x35, 0xe5, 0xaa, 0x99, 0x4e, 0x9a, 0x09, 0x95, 0xc7, 0xff, 0x07, 0x00, 0x00, 0xff,
- 0xff, 0xc9, 0x6e, 0x69, 0xe6, 0xaf, 0x0b, 0x00, 0x00,
+ // 1337 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x97, 0x59, 0x73, 0xdc, 0x44,
+ 0x10, 0xc7, 0x19, 0x69, 0xe3, 0x63, 0xb2, 0x6b, 0xaf, 0x15, 0x52, 0x35, 0xf0, 0x40, 0x4d, 0x85,
+ 0x23, 0x0a, 0x89, 0xd7, 0x64, 0xa3, 0x4c, 0x88, 0x79, 0x4b, 0x11, 0x53, 0x3c, 0x90, 0x80, 0x20,
+ 0x2f, 0x0e, 0x55, 0x2e, 0xd9, 0xab, 0x15, 0x0b, 0x6b, 0x69, 0xb3, 0xab, 0x85, 0xe4, 0x5b, 0x70,
+ 0x7e, 0x0c, 0xee, 0xfb, 0xf8, 0x02, 0xdc, 0xf7, 0xfd, 0x61, 0xa0, 0x7a, 0x7a, 0x66, 0x34, 0x23,
+ 0xe5, 0x21, 0xf6, 0x93, 0xbd, 0xbd, 0xff, 0xee, 0x7f, 0x77, 0x5b, 0xbf, 0xd1, 0x98, 0x1e, 0x9b,
+ 0x4c, 0x8b, 0xb2, 0xe8, 0x6f, 0x0c, 0x47, 0xe9, 0x78, 0x30, 0xeb, 0xc9, 0x4f, 0xc1, 0xf1, 0xac,
+ 0x90, 0xbf, 0xe0, 0xc7, 0x3d, 0xfc, 0xd1, 0x3f, 0xf1, 0xdf, 0x7d, 0xb4, 0xbb, 0x05, 0xba, 0xe7,
+ 0xd2, 0x59, 0xf9, 0x54, 0x3a, 0x9b, 0x25, 0x59, 0x1a, 0xdc, 0x4f, 0x3b, 0xc5, 0xa4, 0x1c, 0x15,
+ 0x79, 0x32, 0xde, 0xd9, 0x2d, 0x8a, 0x31, 0x23, 0x9c, 0x84, 0x4b, 0x71, 0x5b, 0x07, 0x2f, 0x15,
+ 0xc5, 0x38, 0x78, 0xc6, 0x12, 0xa5, 0xf9, 0x7c, 0x9f, 0x79, 0x9c, 0x84, 0x2b, 0xfd, 0x33, 0xbd,
+ 0xdb, 0x1a, 0xf5, 0xea, 0x26, 0xbd, 0xcb, 0xf9, 0x7c, 0xbf, 0x2a, 0x09, 0x9f, 0x82, 0x07, 0xe9,
+ 0x8a, 0x29, 0x39, 0xca, 0xcb, 0x73, 0x7d, 0xe6, 0x73, 0x12, 0x1e, 0x89, 0x8d, 0xd1, 0x93, 0x10,
+ 0x0c, 0x4e, 0xd2, 0x55, 0x23, 0x9b, 0xa1, 0xae, 0xc5, 0x49, 0xb8, 0x16, 0x9b, 0xec, 0x67, 0x47,
+ 0x0d, 0xe1, 0x1c, 0x85, 0x47, 0x38, 0x09, 0x3b, 0x95, 0xf0, 0x1a, 0x0a, 0x6b, 0xc6, 0x22, 0x62,
+ 0x0b, 0x9c, 0x84, 0xbe, 0x63, 0x2c, 0xa2, 0x86, 0xb1, 0x88, 0xd8, 0x22, 0x27, 0x61, 0xe0, 0x1a,
+ 0xd7, 0x84, 0x73, 0x14, 0x2e, 0x71, 0x12, 0xb6, 0x5c, 0x63, 0x11, 0x05, 0xa7, 0xe9, 0x5a, 0x55,
+ 0x71, 0x38, 0xba, 0x99, 0x0e, 0xce, 0xf5, 0xd9, 0x32, 0x27, 0xe1, 0x6a, 0xdc, 0x35, 0x35, 0x55,
+ 0x3c, 0x38, 0x45, 0x4d, 0x6c, 0x47, 0x6b, 0x29, 0x27, 0xe1, 0x62, 0x6c, 0xdc, 0xb6, 0x94, 0xd4,
+ 0x1e, 0x68, 0x38, 0x2e, 0x92, 0x92, 0x1d, 0xe5, 0x24, 0xf4, 0xaa, 0x81, 0xb6, 0x20, 0x78, 0x1b,
+ 0x7b, 0x11, 0xb1, 0x36, 0x27, 0x61, 0xb7, 0x6e, 0x2f, 0xa2, 0xa6, 0xbd, 0x88, 0x58, 0x87, 0x93,
+ 0x70, 0xa1, 0x66, 0x5f, 0x9b, 0x7f, 0x50, 0xcc, 0x77, 0xc7, 0x29, 0x5b, 0xe1, 0x24, 0x24, 0xd5,
+ 0xfc, 0x8f, 0xcb, 0xa8, 0xbb, 0xd1, 0x72, 0x3a, 0xca, 0x33, 0xb6, 0xca, 0x49, 0xb8, 0x6c, 0x6d,
+ 0x54, 0x46, 0x9d, 0x81, 0x76, 0x6f, 0x95, 0xe9, 0x8c, 0x75, 0x39, 0x09, 0xdb, 0xd5, 0x40, 0x97,
+ 0x20, 0x18, 0x6c, 0x5b, 0x3d, 0xaa, 0x07, 0x8d, 0xad, 0x71, 0x12, 0x1e, 0xed, 0x6f, 0xdc, 0xe9,
+ 0x73, 0xa9, 0x7e, 0x56, 0x43, 0x69, 0x2a, 0xae, 0x57, 0x0f, 0x7c, 0x36, 0x2d, 0xe6, 0x13, 0x16,
+ 0x70, 0x12, 0xd2, 0xfe, 0xf9, 0x3b, 0x2d, 0x7c, 0x55, 0x25, 0x3f, 0x01, 0xc9, 0xb1, 0x5b, 0x0b,
+ 0x90, 0x9b, 0xa6, 0x37, 0xe6, 0xa3, 0x69, 0x3a, 0x40, 0xe4, 0x52, 0xee, 0x01, 0x72, 0x3a, 0xa8,
+ 0x91, 0x33, 0x22, 0x89, 0xdc, 0x90, 0x7b, 0x07, 0x47, 0x4e, 0x97, 0xd0, 0xc8, 0x99, 0x92, 0x48,
+ 0x48, 0xc6, 0x3d, 0x40, 0x4e, 0x47, 0x0d, 0x72, 0x46, 0xa6, 0x90, 0x7b, 0x81, 0x7b, 0x80, 0x9c,
+ 0x0e, 0x57, 0xc8, 0x19, 0xa1, 0x42, 0x6e, 0xc4, 0x3d, 0x40, 0x4e, 0x87, 0x2b, 0xe4, 0x6c, 0x63,
+ 0x11, 0xb1, 0x17, 0xb9, 0x07, 0xc8, 0x59, 0xc6, 0xf8, 0x24, 0x39, 0xc6, 0x22, 0x62, 0x2f, 0x71,
+ 0x0f, 0x90, 0xb3, 0x8d, 0x6b, 0x42, 0x85, 0xdc, 0x98, 0x7b, 0x80, 0x9c, 0x6d, 0x8c, 0xc8, 0x55,
+ 0x15, 0x35, 0x46, 0xfb, 0xdc, 0x03, 0xe4, 0x4c, 0x4d, 0x0b, 0x39, 0x23, 0xd6, 0xda, 0x9c, 0x7b,
+ 0x80, 0x9c, 0x8e, 0x5b, 0xc8, 0x55, 0x52, 0x89, 0x5c, 0xc1, 0x3d, 0x40, 0xce, 0x08, 0x35, 0x72,
+ 0x35, 0x7b, 0x11, 0xb1, 0x09, 0xf7, 0x00, 0x39, 0xd7, 0x1e, 0x91, 0x73, 0xed, 0x45, 0xc4, 0x6e,
+ 0x70, 0x0f, 0x90, 0x73, 0xec, 0x6b, 0xf3, 0x2b, 0xe4, 0xa6, 0xdc, 0x03, 0xe4, 0x74, 0xb8, 0x42,
+ 0xae, 0x6a, 0x00, 0x91, 0x9b, 0x71, 0x0f, 0x90, 0x33, 0xf6, 0x06, 0xb9, 0xea, 0x91, 0x94, 0xc8,
+ 0x95, 0xdc, 0x03, 0xe4, 0xcc, 0x33, 0xa9, 0x91, 0x33, 0x32, 0x8d, 0xdc, 0x9c, 0x7b, 0x87, 0x42,
+ 0x4e, 0x17, 0xb2, 0x90, 0xd3, 0x21, 0x44, 0xee, 0x65, 0xee, 0x1d, 0x04, 0xb9, 0x58, 0x25, 0x2b,
+ 0xe4, 0x9c, 0x5a, 0xc1, 0x03, 0x50, 0x7c, 0x92, 0x26, 0xa5, 0x46, 0xee, 0x6b, 0xc2, 0x7d, 0x64,
+ 0x0e, 0xa3, 0x92, 0xb9, 0xd8, 0x52, 0x49, 0xe6, 0xbe, 0x01, 0xd5, 0x21, 0xa0, 0xc3, 0x1a, 0x12,
+ 0xba, 0x87, 0x60, 0xb3, 0xaa, 0x26, 0x32, 0xf2, 0x2d, 0x14, 0x95, 0xd4, 0x61, 0x18, 0xa9, 0x0b,
+ 0xe1, 0x4f, 0xa5, 0x74, 0x8a, 0xba, 0xef, 0x40, 0x28, 0xb1, 0xc3, 0xb8, 0xc2, 0xce, 0x56, 0x2a,
+ 0xec, 0xbe, 0x07, 0x65, 0xa7, 0x52, 0x2a, 0xee, 0x6a, 0xde, 0x22, 0x62, 0x3f, 0x80, 0xd0, 0x77,
+ 0xbc, 0x45, 0xd4, 0xf0, 0x16, 0x11, 0xfb, 0x11, 0x84, 0x81, 0xeb, 0x5d, 0x53, 0x2a, 0xf2, 0x7e,
+ 0x02, 0x65, 0xcb, 0xf5, 0x16, 0x51, 0x70, 0x06, 0x9e, 0x7d, 0x5d, 0x53, 0xe3, 0xf4, 0x33, 0x68,
+ 0x25, 0x7b, 0xaa, 0xaa, 0x66, 0xef, 0x61, 0x6a, 0x62, 0x86, 0xbd, 0x5f, 0x40, 0x2c, 0xe1, 0xc3,
+ 0x2f, 0x34, 0x7c, 0xf6, 0x54, 0x08, 0xdf, 0xaf, 0xa0, 0xf4, 0xaa, 0xa9, 0x90, 0xbe, 0x66, 0x07,
+ 0x22, 0x62, 0xbf, 0x81, 0xb4, 0x5b, 0xef, 0x40, 0x44, 0xcd, 0x0e, 0x44, 0xc4, 0x7e, 0x07, 0xf1,
+ 0x42, 0xad, 0x83, 0xda, 0x16, 0x14, 0x7f, 0x7f, 0x80, 0x94, 0x54, 0x5b, 0x50, 0x00, 0x3a, 0x9b,
+ 0x45, 0x00, 0xff, 0x04, 0xe5, 0xb2, 0xb5, 0x59, 0x24, 0xd0, 0x9e, 0x0a, 0x09, 0xfc, 0x0b, 0x84,
+ 0xed, 0x6a, 0x2a, 0x44, 0xf0, 0xba, 0xd5, 0xa7, 0x46, 0xf0, 0x6f, 0x50, 0x1e, 0x8e, 0x41, 0xac,
+ 0xa4, 0x19, 0x7c, 0xbe, 0x02, 0x00, 0x19, 0xfc, 0x07, 0x2a, 0x1f, 0x08, 0x42, 0xcc, 0x36, 0x10,
+ 0x5a, 0xc5, 0x82, 0x90, 0xb6, 0x07, 0xe9, 0x30, 0x99, 0x8f, 0x4b, 0x64, 0xf0, 0x6d, 0xb8, 0x45,
+ 0x2e, 0x6d, 0xb6, 0xca, 0xe9, 0x3c, 0x8d, 0x8f, 0xaa, 0xaf, 0x24, 0x88, 0xd7, 0x2a, 0xa5, 0xe4,
+ 0xf0, 0x9d, 0x43, 0xdc, 0x37, 0x37, 0xfd, 0xab, 0x57, 0x2e, 0x9b, 0xb2, 0x92, 0xc5, 0x93, 0xb4,
+ 0xa3, 0xcb, 0x22, 0x37, 0xef, 0x42, 0xdd, 0x23, 0x9b, 0xe4, 0x6c, 0xac, 0xfd, 0x10, 0xc6, 0x53,
+ 0x74, 0x45, 0x0b, 0x15, 0x8b, 0xef, 0x81, 0x72, 0x0d, 0x94, 0xba, 0x84, 0xa2, 0xd1, 0x92, 0x2a,
+ 0x18, 0xdf, 0x07, 0x69, 0xc7, 0x96, 0x5e, 0xd3, 0xef, 0x4b, 0xdb, 0x5e, 0x44, 0xec, 0x03, 0x50,
+ 0xfa, 0x35, 0x7b, 0xf9, 0x2a, 0x70, 0xec, 0x45, 0xc4, 0x3e, 0x04, 0x65, 0x50, 0xb7, 0x77, 0xa5,
+ 0x8a, 0xc7, 0x8f, 0x40, 0xda, 0xaa, 0xdb, 0x8b, 0x28, 0x58, 0xa7, 0x5d, 0x53, 0x55, 0x33, 0xf6,
+ 0x31, 0x88, 0x57, 0x41, 0xbc, 0xaa, 0xeb, 0x6a, 0x24, 0x4f, 0x53, 0x1d, 0x32, 0x44, 0x7e, 0x02,
+ 0xea, 0x45, 0x50, 0x6b, 0xd3, 0x2d, 0xf3, 0xee, 0x34, 0xa3, 0x21, 0x92, 0x9f, 0x82, 0xd4, 0xdb,
+ 0xf4, 0xcf, 0xf6, 0xce, 0x9b, 0xe1, 0x10, 0xcb, 0x46, 0x1b, 0x22, 0x62, 0x9f, 0x81, 0xba, 0xdb,
+ 0x6c, 0x43, 0xbe, 0xc2, 0xdd, 0x36, 0x44, 0xc4, 0x3e, 0x07, 0xf5, 0x42, 0xa3, 0x0d, 0x29, 0x36,
+ 0xdb, 0x50, 0x5c, 0x7e, 0x01, 0x5a, 0x82, 0x7d, 0xe8, 0x16, 0x15, 0x9b, 0x96, 0x58, 0xa1, 0xf9,
+ 0x25, 0x88, 0x97, 0x37, 0xfd, 0x9b, 0x67, 0x6e, 0x55, 0x7b, 0x46, 0x3c, 0xad, 0x01, 0x91, 0xce,
+ 0xaf, 0x40, 0xdb, 0x46, 0xad, 0x1e, 0x10, 0x09, 0xbd, 0x40, 0xef, 0x76, 0x76, 0xb1, 0x93, 0xa7,
+ 0xd9, 0x28, 0x1f, 0xb2, 0x57, 0x7d, 0xb9, 0x92, 0xd6, 0xfa, 0x28, 0x1f, 0xc6, 0x81, 0xbd, 0x93,
+ 0x2b, 0x52, 0x10, 0x88, 0x7a, 0xe2, 0xa4, 0x98, 0x41, 0xe2, 0x6b, 0x98, 0xe8, 0x37, 0xf2, 0x9e,
+ 0x96, 0xdf, 0x07, 0x8f, 0xd0, 0xb5, 0x9a, 0x61, 0x92, 0xb3, 0xd7, 0x55, 0x52, 0x9e, 0xe4, 0x66,
+ 0xa9, 0x68, 0x96, 0xe4, 0xc1, 0x45, 0x7a, 0xdc, 0xdd, 0x93, 0xee, 0xf1, 0x0d, 0x5f, 0xae, 0x0b,
+ 0x7b, 0x3c, 0xe6, 0xec, 0x4b, 0x35, 0xf9, 0x68, 0x23, 0x55, 0x75, 0xf9, 0x26, 0xa6, 0xfa, 0xcd,
+ 0x4c, 0xd5, 0x66, 0x9f, 0x06, 0x75, 0xd3, 0x24, 0x67, 0x6f, 0xa9, 0x34, 0xe8, 0xb3, 0xeb, 0x1a,
+ 0x26, 0xf9, 0xbd, 0x82, 0x76, 0x9c, 0xab, 0xb4, 0xf3, 0xbf, 0x01, 0x1e, 0x51, 0xc7, 0xe4, 0xff,
+ 0x10, 0xe6, 0x8a, 0x2d, 0x65, 0x90, 0xe7, 0xdc, 0x07, 0x9c, 0x0b, 0x0e, 0xe6, 0xbd, 0x22, 0x2f,
+ 0x42, 0xe6, 0x9e, 0x80, 0x79, 0x17, 0x20, 0xcf, 0x3a, 0xc2, 0x9c, 0x63, 0x19, 0xf3, 0xfe, 0xc5,
+ 0xf3, 0xdb, 0x9c, 0x6d, 0x98, 0xb8, 0x4c, 0x17, 0xd5, 0xe1, 0x73, 0xe2, 0x1e, 0xda, 0x92, 0xa7,
+ 0xcd, 0x12, 0x6d, 0x6d, 0x5f, 0x8e, 0xaf, 0x76, 0xef, 0x0a, 0x16, 0x29, 0x9c, 0x45, 0x5d, 0x72,
+ 0xe9, 0xb1, 0xed, 0x8b, 0x59, 0x51, 0x64, 0xe3, 0xb4, 0x97, 0x15, 0xe3, 0x24, 0xcf, 0x7a, 0xc5,
+ 0x34, 0xdb, 0x90, 0x87, 0xd8, 0xc6, 0xde, 0xfe, 0x00, 0x7f, 0xdb, 0x5b, 0xcf, 0xd2, 0x7c, 0x3d,
+ 0x2b, 0x36, 0xca, 0x74, 0x56, 0x0e, 0x92, 0x32, 0xc1, 0x70, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0xd7, 0x14, 0x76, 0x33, 0xeb, 0x0f, 0x00, 0x00,
}
diff --git a/cmd/protoc-gen-go/testdata/proto2/fields.proto b/cmd/protoc-gen-go/testdata/proto2/fields.proto
index 1e65c6d..f0a2bb3 100644
--- a/cmd/protoc-gen-go/testdata/proto2/fields.proto
+++ b/cmd/protoc-gen-go/testdata/proto2/fields.proto
@@ -9,7 +9,7 @@
option go_package = "google.golang.org/proto/cmd/protoc-gen-go/testdata/proto2";
message FieldTestMessage {
- optional string optional_bool = 1;
+ optional bool optional_bool = 1;
optional Enum optional_enum = 2;
optional int32 optional_int32 = 3;
optional sint32 optional_sint32 = 4;
@@ -30,7 +30,7 @@
optional string optional_group = 19;
}
- required string required_bool = 101;
+ required bool required_bool = 101;
required Enum required_enum = 102;
required int32 required_int32 = 103;
required sint32 required_sint32 = 104;
@@ -51,7 +51,7 @@
required string required_group = 119;
}
- repeated string repeated_bool = 201;
+ repeated bool repeated_bool = 201;
repeated Enum repeated_enum = 202;
repeated int32 repeated_int32 = 203;
repeated sint32 repeated_sint32 = 204;
@@ -72,6 +72,33 @@
repeated string repeated_group = 219;
}
- enum Enum { ZERO = 0; }
+ optional bool default_bool = 301 [default=true];
+ optional Enum default_enum = 302 [default=ONE];
+ optional int32 default_int32 = 303 [default=1];
+ optional sint32 default_sint32 = 304 [default=1];
+ optional uint32 default_uint32 = 305 [default=1];
+ optional int64 default_int64 = 306 [default=1];
+ optional sint64 default_sint64 = 307 [default=1];
+ optional uint64 default_uint64 = 308 [default=1];
+ optional sfixed32 default_sfixed32 = 309 [default=1];
+ optional fixed32 default_fixed32 = 310 [default=1];
+ optional float default_float = 311 [default=1.5];
+ optional sfixed64 default_sfixed64 = 312 [default=1];
+ optional fixed64 default_fixed64 = 313 [default=1];
+ optional double default_double = 314 [default=1.5];
+ optional string default_string = 315 [default="x,y"];
+ optional bytes default_bytes = 316 [default="x,y"];
+
+ optional float default_float_neginf = 400 [default=-inf];
+ optional float default_float_posinf = 401 [default=inf];
+ optional float default_float_nan = 402 [default=nan];
+ optional double default_double_neginf = 403 [default=-inf];
+ optional double default_double_posinf = 404 [default=inf];
+ optional double default_double_nan = 405 [default=nan];
+
+ enum Enum {
+ ZERO = 0;
+ ONE = 1;
+ }
message Message {}
}