@@ -26,8 +26,8 @@ class EnumGenerator {
2626 private let generatorOptions : GeneratorOptions
2727 private let namer : SwiftProtobufNamer
2828
29- /// The values that aren't aliases, as ordered in the .proto .
30- private let mainEnumValueDescriptors : [ EnumValueDescriptor ]
29+ /// The aliasInfo for the values .
30+ private let aliasInfo : EnumDescriptor . ValueAliasInfo
3131 /// The values that aren't aliases, sorted by number.
3232 private let mainEnumValueDescriptorsSorted : [ EnumValueDescriptor ]
3333
@@ -41,11 +41,9 @@ class EnumGenerator {
4141 self . enumDescriptor = descriptor
4242 self . generatorOptions = generatorOptions
4343 self . namer = namer
44+ aliasInfo = EnumDescriptor . ValueAliasInfo ( enumDescriptor: descriptor)
4445
45- mainEnumValueDescriptors = descriptor. values. filter ( {
46- return $0. aliasOf == nil
47- } )
48- mainEnumValueDescriptorsSorted = mainEnumValueDescriptors. sorted ( by: {
46+ mainEnumValueDescriptorsSorted = aliasInfo. mainValues. sorted ( by: {
4947 return $0. number < $1. number
5048 } )
5149
@@ -95,7 +93,7 @@ class EnumGenerator {
9593 " // The compiler won't synthesize support with the \( unrecognizedCaseName) case. " ,
9694 " \( visibility) static let allCases: [ \( swiftFullName) ] = [ " )
9795 p. withIndentation { p in
98- for v in mainEnumValueDescriptors {
96+ for v in aliasInfo . mainValues {
9997 let dottedName = namer. dottedRelativeName ( enumValue: v)
10098 p. print ( " \( dottedName) , " )
10199 }
@@ -124,7 +122,7 @@ class EnumGenerator {
124122 p. print ( )
125123 }
126124 let relativeName = namer. relativeName ( enumValue: enumValueDescriptor)
127- if let aliasOf = enumValueDescriptor . aliasOf {
125+ if let aliasOf = aliasInfo . original ( of : enumValueDescriptor ) {
128126 let aliasOfName = namer. relativeName ( enumValue: aliasOf)
129127 p. print ( " \( comments) \( visibility) static let \( relativeName) = \( aliasOfName) " )
130128 } else {
@@ -145,11 +143,11 @@ class EnumGenerator {
145143 p. print ( " \( visibility) static let _protobuf_nameMap: \( namer. swiftProtobufModuleName) ._NameMap = [ " )
146144 p. withIndentation { p in
147145 for v in mainEnumValueDescriptorsSorted {
148- if v. aliases. isEmpty {
149- p. print ( " \( v. number) : .same(proto: \" \( v. name) \" ), " )
150- } else {
151- let aliasNames = v. aliases. map ( { " \" \( $0. name) \" " } ) . joined ( separator: " , " )
146+ if let aliases = aliasInfo. aliases ( v) {
147+ let aliasNames = aliases. map ( { " \" \( $0. name) \" " } ) . joined ( separator: " , " )
152148 p. print ( " \( v. number) : .aliased(proto: \" \( v. name) \" , aliases: [ \( aliasNames) ]), " )
149+ } else {
150+ p. print ( " \( v. number) : .same(proto: \" \( v. name) \" ), " )
153151 }
154152 }
155153 }
0 commit comments