func traverse()

in Reference/google/protobuf/unittest_lite.pb.swift [4257:4507]


  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      // The use of inline closures is to circumvent an issue where the compiler
      // allocates stack space for every if/case branch local when no optimizations
      // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and
      // https://github.com/apple/swift-protobuf/issues/1182
      try { if let v = _storage._optionalInt32 {
        try visitor.visitSingularInt32Field(value: v, fieldNumber: 1)
      } }()
      try { if let v = _storage._optionalInt64 {
        try visitor.visitSingularInt64Field(value: v, fieldNumber: 2)
      } }()
      try { if let v = _storage._optionalUint32 {
        try visitor.visitSingularUInt32Field(value: v, fieldNumber: 3)
      } }()
      try { if let v = _storage._optionalUint64 {
        try visitor.visitSingularUInt64Field(value: v, fieldNumber: 4)
      } }()
      try { if let v = _storage._optionalSint32 {
        try visitor.visitSingularSInt32Field(value: v, fieldNumber: 5)
      } }()
      try { if let v = _storage._optionalSint64 {
        try visitor.visitSingularSInt64Field(value: v, fieldNumber: 6)
      } }()
      try { if let v = _storage._optionalFixed32 {
        try visitor.visitSingularFixed32Field(value: v, fieldNumber: 7)
      } }()
      try { if let v = _storage._optionalFixed64 {
        try visitor.visitSingularFixed64Field(value: v, fieldNumber: 8)
      } }()
      try { if let v = _storage._optionalSfixed32 {
        try visitor.visitSingularSFixed32Field(value: v, fieldNumber: 9)
      } }()
      try { if let v = _storage._optionalSfixed64 {
        try visitor.visitSingularSFixed64Field(value: v, fieldNumber: 10)
      } }()
      try { if let v = _storage._optionalFloat {
        try visitor.visitSingularFloatField(value: v, fieldNumber: 11)
      } }()
      try { if let v = _storage._optionalDouble {
        try visitor.visitSingularDoubleField(value: v, fieldNumber: 12)
      } }()
      try { if let v = _storage._optionalBool {
        try visitor.visitSingularBoolField(value: v, fieldNumber: 13)
      } }()
      try { if let v = _storage._optionalString {
        try visitor.visitSingularStringField(value: v, fieldNumber: 14)
      } }()
      try { if let v = _storage._optionalBytes {
        try visitor.visitSingularBytesField(value: v, fieldNumber: 15)
      } }()
      try { if let v = _storage._optionalGroup {
        try visitor.visitSingularGroupField(value: v, fieldNumber: 16)
      } }()
      try { if let v = _storage._optionalNestedMessage {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 18)
      } }()
      try { if let v = _storage._optionalForeignMessage {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 19)
      } }()
      try { if let v = _storage._optionalImportMessage {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 20)
      } }()
      try { if let v = _storage._optionalNestedEnum {
        try visitor.visitSingularEnumField(value: v, fieldNumber: 21)
      } }()
      try { if let v = _storage._optionalForeignEnum {
        try visitor.visitSingularEnumField(value: v, fieldNumber: 22)
      } }()
      try { if let v = _storage._optionalImportEnum {
        try visitor.visitSingularEnumField(value: v, fieldNumber: 23)
      } }()
      try { if let v = _storage._optionalStringPiece {
        try visitor.visitSingularStringField(value: v, fieldNumber: 24)
      } }()
      try { if let v = _storage._optionalCord {
        try visitor.visitSingularStringField(value: v, fieldNumber: 25)
      } }()
      try { if let v = _storage._optionalPublicImportMessage {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 26)
      } }()
      try { if let v = _storage._optionalLazyMessage {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 27)
      } }()
      if !_storage._repeatedInt32.isEmpty {
        try visitor.visitRepeatedInt32Field(value: _storage._repeatedInt32, fieldNumber: 31)
      }
      if !_storage._repeatedInt64.isEmpty {
        try visitor.visitRepeatedInt64Field(value: _storage._repeatedInt64, fieldNumber: 32)
      }
      if !_storage._repeatedUint32.isEmpty {
        try visitor.visitRepeatedUInt32Field(value: _storage._repeatedUint32, fieldNumber: 33)
      }
      if !_storage._repeatedUint64.isEmpty {
        try visitor.visitRepeatedUInt64Field(value: _storage._repeatedUint64, fieldNumber: 34)
      }
      if !_storage._repeatedSint32.isEmpty {
        try visitor.visitRepeatedSInt32Field(value: _storage._repeatedSint32, fieldNumber: 35)
      }
      if !_storage._repeatedSint64.isEmpty {
        try visitor.visitRepeatedSInt64Field(value: _storage._repeatedSint64, fieldNumber: 36)
      }
      if !_storage._repeatedFixed32.isEmpty {
        try visitor.visitRepeatedFixed32Field(value: _storage._repeatedFixed32, fieldNumber: 37)
      }
      if !_storage._repeatedFixed64.isEmpty {
        try visitor.visitRepeatedFixed64Field(value: _storage._repeatedFixed64, fieldNumber: 38)
      }
      if !_storage._repeatedSfixed32.isEmpty {
        try visitor.visitRepeatedSFixed32Field(value: _storage._repeatedSfixed32, fieldNumber: 39)
      }
      if !_storage._repeatedSfixed64.isEmpty {
        try visitor.visitRepeatedSFixed64Field(value: _storage._repeatedSfixed64, fieldNumber: 40)
      }
      if !_storage._repeatedFloat.isEmpty {
        try visitor.visitRepeatedFloatField(value: _storage._repeatedFloat, fieldNumber: 41)
      }
      if !_storage._repeatedDouble.isEmpty {
        try visitor.visitRepeatedDoubleField(value: _storage._repeatedDouble, fieldNumber: 42)
      }
      if !_storage._repeatedBool.isEmpty {
        try visitor.visitRepeatedBoolField(value: _storage._repeatedBool, fieldNumber: 43)
      }
      if !_storage._repeatedString.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._repeatedString, fieldNumber: 44)
      }
      if !_storage._repeatedBytes.isEmpty {
        try visitor.visitRepeatedBytesField(value: _storage._repeatedBytes, fieldNumber: 45)
      }
      if !_storage._repeatedGroup.isEmpty {
        try visitor.visitRepeatedGroupField(value: _storage._repeatedGroup, fieldNumber: 46)
      }
      if !_storage._repeatedNestedMessage.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedNestedMessage, fieldNumber: 48)
      }
      if !_storage._repeatedForeignMessage.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedForeignMessage, fieldNumber: 49)
      }
      if !_storage._repeatedImportMessage.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedImportMessage, fieldNumber: 50)
      }
      if !_storage._repeatedNestedEnum.isEmpty {
        try visitor.visitRepeatedEnumField(value: _storage._repeatedNestedEnum, fieldNumber: 51)
      }
      if !_storage._repeatedForeignEnum.isEmpty {
        try visitor.visitRepeatedEnumField(value: _storage._repeatedForeignEnum, fieldNumber: 52)
      }
      if !_storage._repeatedImportEnum.isEmpty {
        try visitor.visitRepeatedEnumField(value: _storage._repeatedImportEnum, fieldNumber: 53)
      }
      if !_storage._repeatedStringPiece.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._repeatedStringPiece, fieldNumber: 54)
      }
      if !_storage._repeatedCord.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._repeatedCord, fieldNumber: 55)
      }
      if !_storage._repeatedLazyMessage.isEmpty {
        try visitor.visitRepeatedMessageField(value: _storage._repeatedLazyMessage, fieldNumber: 57)
      }
      try { if let v = _storage._defaultInt32 {
        try visitor.visitSingularInt32Field(value: v, fieldNumber: 61)
      } }()
      try { if let v = _storage._defaultInt64 {
        try visitor.visitSingularInt64Field(value: v, fieldNumber: 62)
      } }()
      try { if let v = _storage._defaultUint32 {
        try visitor.visitSingularUInt32Field(value: v, fieldNumber: 63)
      } }()
      try { if let v = _storage._defaultUint64 {
        try visitor.visitSingularUInt64Field(value: v, fieldNumber: 64)
      } }()
      try { if let v = _storage._defaultSint32 {
        try visitor.visitSingularSInt32Field(value: v, fieldNumber: 65)
      } }()
      try { if let v = _storage._defaultSint64 {
        try visitor.visitSingularSInt64Field(value: v, fieldNumber: 66)
      } }()
      try { if let v = _storage._defaultFixed32 {
        try visitor.visitSingularFixed32Field(value: v, fieldNumber: 67)
      } }()
      try { if let v = _storage._defaultFixed64 {
        try visitor.visitSingularFixed64Field(value: v, fieldNumber: 68)
      } }()
      try { if let v = _storage._defaultSfixed32 {
        try visitor.visitSingularSFixed32Field(value: v, fieldNumber: 69)
      } }()
      try { if let v = _storage._defaultSfixed64 {
        try visitor.visitSingularSFixed64Field(value: v, fieldNumber: 70)
      } }()
      try { if let v = _storage._defaultFloat {
        try visitor.visitSingularFloatField(value: v, fieldNumber: 71)
      } }()
      try { if let v = _storage._defaultDouble {
        try visitor.visitSingularDoubleField(value: v, fieldNumber: 72)
      } }()
      try { if let v = _storage._defaultBool {
        try visitor.visitSingularBoolField(value: v, fieldNumber: 73)
      } }()
      try { if let v = _storage._defaultString {
        try visitor.visitSingularStringField(value: v, fieldNumber: 74)
      } }()
      try { if let v = _storage._defaultBytes {
        try visitor.visitSingularBytesField(value: v, fieldNumber: 75)
      } }()
      try { if let v = _storage._defaultNestedEnum {
        try visitor.visitSingularEnumField(value: v, fieldNumber: 81)
      } }()
      try { if let v = _storage._defaultForeignEnum {
        try visitor.visitSingularEnumField(value: v, fieldNumber: 82)
      } }()
      try { if let v = _storage._defaultImportEnum {
        try visitor.visitSingularEnumField(value: v, fieldNumber: 83)
      } }()
      try { if let v = _storage._defaultStringPiece {
        try visitor.visitSingularStringField(value: v, fieldNumber: 84)
      } }()
      try { if let v = _storage._defaultCord {
        try visitor.visitSingularStringField(value: v, fieldNumber: 85)
      } }()
      switch _storage._oneofField {
      case .oneofUint32?: try {
        guard case .oneofUint32(let v)? = _storage._oneofField else { preconditionFailure() }
        try visitor.visitSingularUInt32Field(value: v, fieldNumber: 111)
      }()
      case .oneofNestedMessage?: try {
        guard case .oneofNestedMessage(let v)? = _storage._oneofField else { preconditionFailure() }
        try visitor.visitSingularMessageField(value: v, fieldNumber: 112)
      }()
      case .oneofString?: try {
        guard case .oneofString(let v)? = _storage._oneofField else { preconditionFailure() }
        try visitor.visitSingularStringField(value: v, fieldNumber: 113)
      }()
      case .oneofBytes?: try {
        guard case .oneofBytes(let v)? = _storage._oneofField else { preconditionFailure() }
        try visitor.visitSingularBytesField(value: v, fieldNumber: 114)
      }()
      case .oneofLazyNestedMessage?: try {
        guard case .oneofLazyNestedMessage(let v)? = _storage._oneofField else { preconditionFailure() }
        try visitor.visitSingularMessageField(value: v, fieldNumber: 115)
      }()
      default: break
      }
      try { if let v = _storage._deceptivelyNamedList {
        try visitor.visitSingularInt32Field(value: v, fieldNumber: 116)
      } }()
      try { if case .oneofNestedMessage2(let v)? = _storage._oneofField {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 117)
      } }()
    }
    try unknownFields.traverse(visitor: &visitor)
  }