mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2024-12-26 21:24:22 +00:00
cmd/protoc-gen-go: fix generation of enum defaults
Previously, this call strconv.FormatInt with base 32, when the intention is to call it with base 10. Change-Id: I31cdd2415b3a80936cdcdeb5612a486204404ecb Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/331149 Trust: Joe Tsai <joetsai@digital-static.net> Reviewed-by: Damien Neil <dneil@google.com>
This commit is contained in:
parent
49b6f723d3
commit
aa432c0868
@ -706,7 +706,7 @@ func fieldDefaultValue(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo, f
|
||||
// If the enum value is declared in a different Go package,
|
||||
// reference it by number since the name may not be correct.
|
||||
// See https://github.com/golang/protobuf/issues/513.
|
||||
return g.QualifiedGoIdent(field.Enum.GoIdent) + "(" + strconv.FormatInt(int64(val.Desc.Number()), 32) + ")"
|
||||
return g.QualifiedGoIdent(field.Enum.GoIdent) + "(" + strconv.FormatInt(int64(val.Desc.Number()), 10) + ")"
|
||||
}
|
||||
default:
|
||||
return "0"
|
||||
|
159
internal/testprotos/enums/enums.pb.go
Normal file
159
internal/testprotos/enums/enums.pb.go
Normal file
@ -0,0 +1,159 @@
|
||||
// Copyright 2021 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: internal/testprotos/enums/enums.proto
|
||||
|
||||
package enums
|
||||
|
||||
import (
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
type Enum int32
|
||||
|
||||
const (
|
||||
Enum_DEFAULT Enum = 1337
|
||||
Enum_ZERO Enum = 0
|
||||
Enum_ONE Enum = 1
|
||||
Enum_ELEVENT Enum = 11
|
||||
Enum_SEVENTEEN Enum = 17
|
||||
Enum_THIRTYSEVEN Enum = 37
|
||||
Enum_SIXTYSEVEN Enum = 67
|
||||
Enum_NEGATIVE Enum = -1
|
||||
)
|
||||
|
||||
// Enum value maps for Enum.
|
||||
var (
|
||||
Enum_name = map[int32]string{
|
||||
1337: "DEFAULT",
|
||||
0: "ZERO",
|
||||
1: "ONE",
|
||||
11: "ELEVENT",
|
||||
17: "SEVENTEEN",
|
||||
37: "THIRTYSEVEN",
|
||||
67: "SIXTYSEVEN",
|
||||
-1: "NEGATIVE",
|
||||
}
|
||||
Enum_value = map[string]int32{
|
||||
"DEFAULT": 1337,
|
||||
"ZERO": 0,
|
||||
"ONE": 1,
|
||||
"ELEVENT": 11,
|
||||
"SEVENTEEN": 17,
|
||||
"THIRTYSEVEN": 37,
|
||||
"SIXTYSEVEN": 67,
|
||||
"NEGATIVE": -1,
|
||||
}
|
||||
)
|
||||
|
||||
func (x Enum) Enum() *Enum {
|
||||
p := new(Enum)
|
||||
*p = x
|
||||
return p
|
||||
}
|
||||
|
||||
func (x Enum) String() string {
|
||||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||
}
|
||||
|
||||
func (Enum) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_internal_testprotos_enums_enums_proto_enumTypes[0].Descriptor()
|
||||
}
|
||||
|
||||
func (Enum) Type() protoreflect.EnumType {
|
||||
return &file_internal_testprotos_enums_enums_proto_enumTypes[0]
|
||||
}
|
||||
|
||||
func (x Enum) Number() protoreflect.EnumNumber {
|
||||
return protoreflect.EnumNumber(x)
|
||||
}
|
||||
|
||||
// Deprecated: Do not use.
|
||||
func (x *Enum) UnmarshalJSON(b []byte) error {
|
||||
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
*x = Enum(num)
|
||||
return nil
|
||||
}
|
||||
|
||||
// Deprecated: Use Enum.Descriptor instead.
|
||||
func (Enum) EnumDescriptor() ([]byte, []int) {
|
||||
return file_internal_testprotos_enums_enums_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
var File_internal_testprotos_enums_enums_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_internal_testprotos_enums_enums_proto_rawDesc = []byte{
|
||||
0x0a, 0x25, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2f, 0x65, 0x6e, 0x75, 0x6d,
|
||||
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2a, 0x7b, 0x0a, 0x04,
|
||||
0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0c, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10,
|
||||
0xb9, 0x0a, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
|
||||
0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4c, 0x45, 0x56, 0x45, 0x4e, 0x54,
|
||||
0x10, 0x0b, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x45, 0x45, 0x4e, 0x10,
|
||||
0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x48, 0x49, 0x52, 0x54, 0x59, 0x53, 0x45, 0x56, 0x45, 0x4e,
|
||||
0x10, 0x25, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x49, 0x58, 0x54, 0x59, 0x53, 0x45, 0x56, 0x45, 0x4e,
|
||||
0x10, 0x43, 0x12, 0x15, 0x0a, 0x08, 0x4e, 0x45, 0x47, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f, 0x6f,
|
||||
0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
|
||||
0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x65, 0x6e, 0x75, 0x6d,
|
||||
0x73,
|
||||
}
|
||||
|
||||
var (
|
||||
file_internal_testprotos_enums_enums_proto_rawDescOnce sync.Once
|
||||
file_internal_testprotos_enums_enums_proto_rawDescData = file_internal_testprotos_enums_enums_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_internal_testprotos_enums_enums_proto_rawDescGZIP() []byte {
|
||||
file_internal_testprotos_enums_enums_proto_rawDescOnce.Do(func() {
|
||||
file_internal_testprotos_enums_enums_proto_rawDescData = protoimpl.X.CompressGZIP(file_internal_testprotos_enums_enums_proto_rawDescData)
|
||||
})
|
||||
return file_internal_testprotos_enums_enums_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_internal_testprotos_enums_enums_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
||||
var file_internal_testprotos_enums_enums_proto_goTypes = []interface{}{
|
||||
(Enum)(0), // 0: goproto.proto.enums.Enum
|
||||
}
|
||||
var file_internal_testprotos_enums_enums_proto_depIdxs = []int32{
|
||||
0, // [0:0] is the sub-list for method output_type
|
||||
0, // [0:0] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_internal_testprotos_enums_enums_proto_init() }
|
||||
func file_internal_testprotos_enums_enums_proto_init() {
|
||||
if File_internal_testprotos_enums_enums_proto != nil {
|
||||
return
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_internal_testprotos_enums_enums_proto_rawDesc,
|
||||
NumEnums: 1,
|
||||
NumMessages: 0,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_internal_testprotos_enums_enums_proto_goTypes,
|
||||
DependencyIndexes: file_internal_testprotos_enums_enums_proto_depIdxs,
|
||||
EnumInfos: file_internal_testprotos_enums_enums_proto_enumTypes,
|
||||
}.Build()
|
||||
File_internal_testprotos_enums_enums_proto = out.File
|
||||
file_internal_testprotos_enums_enums_proto_rawDesc = nil
|
||||
file_internal_testprotos_enums_enums_proto_goTypes = nil
|
||||
file_internal_testprotos_enums_enums_proto_depIdxs = nil
|
||||
}
|
20
internal/testprotos/enums/enums.proto
Normal file
20
internal/testprotos/enums/enums.proto
Normal file
@ -0,0 +1,20 @@
|
||||
// Copyright 2021 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
syntax = "proto2";
|
||||
|
||||
package goproto.proto.enums;
|
||||
|
||||
option go_package = "google.golang.org/protobuf/internal/testprotos/enums";
|
||||
|
||||
enum Enum {
|
||||
DEFAULT = 1337;
|
||||
ZERO = 0;
|
||||
ONE = 1;
|
||||
ELEVENT = 11;
|
||||
SEVENTEEN = 17;
|
||||
THIRTYSEVEN = 37;
|
||||
SIXTYSEVEN = 67;
|
||||
NEGATIVE = -1;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,7 @@ syntax = "proto2";
|
||||
|
||||
package goproto.proto.test;
|
||||
|
||||
import "google/protobuf/descriptor.proto";
|
||||
import "internal/testprotos/enums/enums.proto";
|
||||
import "internal/testprotos/test/test_import.proto";
|
||||
import public "internal/testprotos/test/test_public.proto";
|
||||
import weak "internal/testprotos/test/weak1/test_weak.proto";
|
||||
@ -384,5 +384,12 @@ message WeirdDefault {
|
||||
}
|
||||
|
||||
message RemoteDefault {
|
||||
optional google.protobuf.FieldDescriptorProto.Type type = 1 [default = TYPE_ENUM];
|
||||
}
|
||||
optional goproto.proto.enums.Enum default = 1;
|
||||
optional goproto.proto.enums.Enum zero = 2 [default = ZERO];
|
||||
optional goproto.proto.enums.Enum one = 3 [default = ONE];
|
||||
optional goproto.proto.enums.Enum elevent = 4 [default = ELEVENT];
|
||||
optional goproto.proto.enums.Enum seventeen = 5 [default = SEVENTEEN];
|
||||
optional goproto.proto.enums.Enum thirtyseven = 6 [default = THIRTYSEVEN];
|
||||
optional goproto.proto.enums.Enum sixtyseven = 7 [default = SIXTYSEVEN];
|
||||
optional goproto.proto.enums.Enum negative = 8 [default = NEGATIVE];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user