@@ -79,6 +79,20 @@ struct SwiftProtoTesting_TestMessageSetContainer: Sendable {
79
79
fileprivate var _messageSet : SwiftProtoTesting_WireFormat_TestMessageSet ? = nil
80
80
}
81
81
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
+
82
96
struct SwiftProtoTesting_TestMessageSetExtension1 : Sendable {
83
97
// SwiftProtobuf.Message conformance is added in an extension below. See the
84
98
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
@@ -141,6 +155,29 @@ struct SwiftProtoTesting_TestMessageSetExtension2: Sendable {
141
155
fileprivate var _str : String ? = nil
142
156
}
143
157
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
+
144
181
/// MessageSet wire format is equivalent to this.
145
182
struct SwiftProtoTesting_RawMessageSet : Sendable {
146
183
// SwiftProtobuf.Message conformance is added in an extension below. See the
@@ -222,6 +259,39 @@ struct SwiftProtoTesting_RawBreakableMessageSet: Sendable {
222
259
// declaration. To avoid naming collisions, the names are prefixed with the name of
223
260
// the scope where the extend directive occurs.
224
261
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
+
225
295
extension SwiftProtoTesting_WireFormat_TestMessageSet {
226
296
227
297
var SwiftProtoTesting_TestMessageSetExtension1_messageSetExtension : SwiftProtoTesting_TestMessageSetExtension1 {
@@ -264,7 +334,9 @@ extension SwiftProtoTesting_WireFormat_TestMessageSet {
264
334
/// a larger `SwiftProtobuf.SimpleExtensionMap`.
265
335
let SwiftProtoTesting_UnittestMset_Extensions : SwiftProtobuf . SimpleExtensionMap = [
266
336
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
268
340
]
269
341
270
342
// Extension Objects - The only reason these might be needed is when manually
@@ -277,6 +349,11 @@ extension SwiftProtoTesting_TestMessageSetExtension1 {
277
349
_protobuf_fieldNumber: 1545008 ,
278
350
fieldName: " swift_proto_testing.TestMessageSetExtension1 "
279
351
)
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
+ )
280
357
}
281
358
}
282
359
@@ -289,6 +366,15 @@ extension SwiftProtoTesting_TestMessageSetExtension2 {
289
366
}
290
367
}
291
368
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
+
292
378
// MARK: - Code below here is support for the SwiftProtobuf runtime.
293
379
294
380
fileprivate let _protobuf_package = " swift_proto_testing "
@@ -334,6 +420,35 @@ extension SwiftProtoTesting_TestMessageSetContainer: SwiftProtobuf.Message, Swif
334
420
}
335
421
}
336
422
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
+
337
452
extension SwiftProtoTesting_TestMessageSetExtension1 : SwiftProtobuf . Message , SwiftProtobuf . _MessageImplementationBase , SwiftProtobuf . _ProtoNameProviding {
338
453
static let protoMessageName : String = _protobuf_package + " .TestMessageSetExtension1 "
339
454
static let _protobuf_nameMap : SwiftProtobuf . _NameMap = [
@@ -423,6 +538,42 @@ extension SwiftProtoTesting_TestMessageSetExtension2: SwiftProtobuf.Message, Swi
423
538
}
424
539
}
425
540
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
+
426
577
extension SwiftProtoTesting_RawMessageSet : SwiftProtobuf . Message , SwiftProtobuf . _MessageImplementationBase , SwiftProtobuf . _ProtoNameProviding {
427
578
static let protoMessageName : String = _protobuf_package + " .RawMessageSet "
428
579
static let _protobuf_nameMap : SwiftProtobuf . _NameMap = [
0 commit comments