@@ -79,6 +79,20 @@ struct SwiftProtoTesting_TestMessageSetContainer: Sendable {
7979 fileprivate var _messageSet : SwiftProtoTesting_WireFormat_TestMessageSet ? = nil
8080}
8181
82+ /// A message without the message_set_wire_format option but still supports
83+ /// extensions.
84+ struct SwiftProtoTesting_MessageEx : SwiftProtobuf . ExtensibleMessage , Sendable {
85+ // SwiftProtobuf.Message conformance is added in an extension below. See the
86+ // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
87+ // methods supported on all messages.
88+
89+ var unknownFields = SwiftProtobuf . UnknownStorage ( )
90+
91+ init ( ) { }
92+
93+ var _protobuf_extensionFieldValues = SwiftProtobuf . ExtensionFieldValueSet ( )
94+ }
95+
8296struct SwiftProtoTesting_TestMessageSetExtension1 : Sendable {
8397 // SwiftProtobuf.Message conformance is added in an extension below. See the
8498 // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
@@ -141,6 +155,29 @@ struct SwiftProtoTesting_TestMessageSetExtension2: Sendable {
141155 fileprivate var _str : String ? = nil
142156}
143157
158+ /// This isn't on swift_proto_testing.wire_format.TestMessageSet, so it will be unknown
159+ /// when parsing there.
160+ struct SwiftProtoTesting_TestMessageSetExtension3 : Sendable {
161+ // SwiftProtobuf.Message conformance is added in an extension below. See the
162+ // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
163+ // methods supported on all messages.
164+
165+ var x : Int32 {
166+ get { return _x ?? 0 }
167+ set { _x = newValue}
168+ }
169+ /// Returns true if `x` has been explicitly set.
170+ var hasX : Bool { return self . _x != nil }
171+ /// Clears the value of `x`. Subsequent reads from it will return its default value.
172+ mutating func clearX( ) { self . _x = nil }
173+
174+ var unknownFields = SwiftProtobuf . UnknownStorage ( )
175+
176+ init ( ) { }
177+
178+ fileprivate var _x : Int32 ? = nil
179+ }
180+
144181/// MessageSet wire format is equivalent to this.
145182struct SwiftProtoTesting_RawMessageSet : Sendable {
146183 // SwiftProtobuf.Message conformance is added in an extension below. See the
@@ -222,6 +259,39 @@ struct SwiftProtoTesting_RawBreakableMessageSet: Sendable {
222259// declaration. To avoid naming collisions, the names are prefixed with the name of
223260// the scope where the extend directive occurs.
224261
262+ extension SwiftProtoTesting_MessageEx {
263+
264+ var SwiftProtoTesting_TestMessageSetExtension1_doppelgangerMessageSetExtension : SwiftProtoTesting_TestMessageSetExtension1 {
265+ get { return getExtensionValue ( ext: SwiftProtoTesting_TestMessageSetExtension1 . Extensions. doppelganger_message_set_extension) ?? SwiftProtoTesting_TestMessageSetExtension1 ( ) }
266+ set { setExtensionValue ( ext: SwiftProtoTesting_TestMessageSetExtension1 . Extensions. doppelganger_message_set_extension, value: newValue) }
267+ }
268+ /// Returns true if extension `SwiftProtoTesting_TestMessageSetExtension1.Extensions.doppelganger_message_set_extension`
269+ /// has been explicitly set.
270+ var hasSwiftProtoTesting_TestMessageSetExtension1_doppelgangerMessageSetExtension : Bool {
271+ return hasExtensionValue ( ext: SwiftProtoTesting_TestMessageSetExtension1 . Extensions. doppelganger_message_set_extension)
272+ }
273+ /// Clears the value of extension `SwiftProtoTesting_TestMessageSetExtension1.Extensions.doppelganger_message_set_extension`.
274+ /// Subsequent reads from it will return its default value.
275+ mutating func clearSwiftProtoTesting_TestMessageSetExtension1_doppelgangerMessageSetExtension( ) {
276+ clearExtensionValue ( ext: SwiftProtoTesting_TestMessageSetExtension1 . Extensions. doppelganger_message_set_extension)
277+ }
278+
279+ var SwiftProtoTesting_TestMessageSetExtension3_doppelgangerMessageSetExtension : SwiftProtoTesting_TestMessageSetExtension3 {
280+ get { return getExtensionValue ( ext: SwiftProtoTesting_TestMessageSetExtension3 . Extensions. doppelganger_message_set_extension) ?? SwiftProtoTesting_TestMessageSetExtension3 ( ) }
281+ set { setExtensionValue ( ext: SwiftProtoTesting_TestMessageSetExtension3 . Extensions. doppelganger_message_set_extension, value: newValue) }
282+ }
283+ /// Returns true if extension `SwiftProtoTesting_TestMessageSetExtension3.Extensions.doppelganger_message_set_extension`
284+ /// has been explicitly set.
285+ var hasSwiftProtoTesting_TestMessageSetExtension3_doppelgangerMessageSetExtension : Bool {
286+ return hasExtensionValue ( ext: SwiftProtoTesting_TestMessageSetExtension3 . Extensions. doppelganger_message_set_extension)
287+ }
288+ /// Clears the value of extension `SwiftProtoTesting_TestMessageSetExtension3.Extensions.doppelganger_message_set_extension`.
289+ /// Subsequent reads from it will return its default value.
290+ mutating func clearSwiftProtoTesting_TestMessageSetExtension3_doppelgangerMessageSetExtension( ) {
291+ clearExtensionValue ( ext: SwiftProtoTesting_TestMessageSetExtension3 . Extensions. doppelganger_message_set_extension)
292+ }
293+ }
294+
225295extension SwiftProtoTesting_WireFormat_TestMessageSet {
226296
227297 var SwiftProtoTesting_TestMessageSetExtension1_messageSetExtension : SwiftProtoTesting_TestMessageSetExtension1 {
@@ -264,7 +334,9 @@ extension SwiftProtoTesting_WireFormat_TestMessageSet {
264334/// a larger `SwiftProtobuf.SimpleExtensionMap`.
265335let SwiftProtoTesting_UnittestMset_Extensions : SwiftProtobuf . SimpleExtensionMap = [
266336 SwiftProtoTesting_TestMessageSetExtension1 . Extensions. message_set_extension,
267- SwiftProtoTesting_TestMessageSetExtension2 . Extensions. message_set_extension
337+ SwiftProtoTesting_TestMessageSetExtension1 . Extensions. doppelganger_message_set_extension,
338+ SwiftProtoTesting_TestMessageSetExtension2 . Extensions. message_set_extension,
339+ SwiftProtoTesting_TestMessageSetExtension3 . Extensions. doppelganger_message_set_extension
268340]
269341
270342// Extension Objects - The only reason these might be needed is when manually
@@ -277,6 +349,11 @@ extension SwiftProtoTesting_TestMessageSetExtension1 {
277349 _protobuf_fieldNumber: 1545008 ,
278350 fieldName: " swift_proto_testing.TestMessageSetExtension1 "
279351 )
352+
353+ static let doppelganger_message_set_extension = SwiftProtobuf . MessageExtension < SwiftProtobuf . OptionalMessageExtensionField < SwiftProtoTesting_TestMessageSetExtension1 > , SwiftProtoTesting_MessageEx > (
354+ _protobuf_fieldNumber: 1545008 ,
355+ fieldName: " swift_proto_testing.TestMessageSetExtension1.doppelganger_message_set_extension "
356+ )
280357 }
281358}
282359
@@ -289,6 +366,15 @@ extension SwiftProtoTesting_TestMessageSetExtension2 {
289366 }
290367}
291368
369+ extension SwiftProtoTesting_TestMessageSetExtension3 {
370+ enum Extensions {
371+ static let doppelganger_message_set_extension = SwiftProtobuf . MessageExtension < SwiftProtobuf . OptionalMessageExtensionField < SwiftProtoTesting_TestMessageSetExtension3 > , SwiftProtoTesting_MessageEx > (
372+ _protobuf_fieldNumber: 1547770 ,
373+ fieldName: " swift_proto_testing.TestMessageSetExtension3.doppelganger_message_set_extension "
374+ )
375+ }
376+ }
377+
292378// MARK: - Code below here is support for the SwiftProtobuf runtime.
293379
294380fileprivate let _protobuf_package = " swift_proto_testing "
@@ -334,6 +420,35 @@ extension SwiftProtoTesting_TestMessageSetContainer: SwiftProtobuf.Message, Swif
334420 }
335421}
336422
423+ extension SwiftProtoTesting_MessageEx : SwiftProtobuf . Message , SwiftProtobuf . _MessageImplementationBase , SwiftProtobuf . _ProtoNameProviding {
424+ static let protoMessageName : String = _protobuf_package + " .MessageEx "
425+ static let _protobuf_nameMap = SwiftProtobuf . _NameMap ( )
426+
427+ public var isInitialized : Bool {
428+ if !_protobuf_extensionFieldValues. isInitialized { return false }
429+ return true
430+ }
431+
432+ mutating func decodeMessage< D: SwiftProtobuf . Decoder > ( decoder: inout D ) throws {
433+ while let fieldNumber = try decoder. nextFieldNumber ( ) {
434+ if ( 4 <= fieldNumber && fieldNumber < 536870912 ) {
435+ try decoder. decodeExtensionField ( values: & _protobuf_extensionFieldValues, messageType: SwiftProtoTesting_MessageEx . self, fieldNumber: fieldNumber)
436+ }
437+ }
438+ }
439+
440+ func traverse< V: SwiftProtobuf . Visitor > ( visitor: inout V ) throws {
441+ try visitor. visitExtensionFields ( fields: _protobuf_extensionFieldValues, start: 4 , end: 536870912 )
442+ try unknownFields. traverse ( visitor: & visitor)
443+ }
444+
445+ static func == ( lhs: SwiftProtoTesting_MessageEx , rhs: SwiftProtoTesting_MessageEx ) -> Bool {
446+ if lhs. unknownFields != rhs. unknownFields { return false }
447+ if lhs. _protobuf_extensionFieldValues != rhs. _protobuf_extensionFieldValues { return false }
448+ return true
449+ }
450+ }
451+
337452extension SwiftProtoTesting_TestMessageSetExtension1 : SwiftProtobuf . Message , SwiftProtobuf . _MessageImplementationBase , SwiftProtobuf . _ProtoNameProviding {
338453 static let protoMessageName : String = _protobuf_package + " .TestMessageSetExtension1 "
339454 static let _protobuf_nameMap : SwiftProtobuf . _NameMap = [
@@ -423,6 +538,42 @@ extension SwiftProtoTesting_TestMessageSetExtension2: SwiftProtobuf.Message, Swi
423538 }
424539}
425540
541+ extension SwiftProtoTesting_TestMessageSetExtension3 : SwiftProtobuf . Message , SwiftProtobuf . _MessageImplementationBase , SwiftProtobuf . _ProtoNameProviding {
542+ static let protoMessageName : String = _protobuf_package + " .TestMessageSetExtension3 "
543+ static let _protobuf_nameMap : SwiftProtobuf . _NameMap = [
544+ 26 : . same( proto: " x " ) ,
545+ ]
546+
547+ mutating func decodeMessage< D: SwiftProtobuf . Decoder > ( decoder: inout D ) throws {
548+ while let fieldNumber = try decoder. nextFieldNumber ( ) {
549+ // The use of inline closures is to circumvent an issue where the compiler
550+ // allocates stack space for every case branch when no optimizations are
551+ // enabled. https://github.com/apple/swift-protobuf/issues/1034
552+ switch fieldNumber {
553+ case 26 : try { try decoder. decodeSingularInt32Field ( value: & self . _x) } ( )
554+ default : break
555+ }
556+ }
557+ }
558+
559+ func traverse< V: SwiftProtobuf . Visitor > ( visitor: inout V ) throws {
560+ // The use of inline closures is to circumvent an issue where the compiler
561+ // allocates stack space for every if/case branch local when no optimizations
562+ // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and
563+ // https://github.com/apple/swift-protobuf/issues/1182
564+ try { if let v = self . _x {
565+ try visitor. visitSingularInt32Field ( value: v, fieldNumber: 26 )
566+ } } ( )
567+ try unknownFields. traverse ( visitor: & visitor)
568+ }
569+
570+ static func == ( lhs: SwiftProtoTesting_TestMessageSetExtension3 , rhs: SwiftProtoTesting_TestMessageSetExtension3 ) -> Bool {
571+ if lhs. _x != rhs. _x { return false }
572+ if lhs. unknownFields != rhs. unknownFields { return false }
573+ return true
574+ }
575+ }
576+
426577extension SwiftProtoTesting_RawMessageSet : SwiftProtobuf . Message , SwiftProtobuf . _MessageImplementationBase , SwiftProtobuf . _ProtoNameProviding {
427578 static let protoMessageName : String = _protobuf_package + " .RawMessageSet "
428579 static let _protobuf_nameMap : SwiftProtobuf . _NameMap = [
0 commit comments