Skip to content

Commit e286c26

Browse files
author
Pouya Yarandi
committed
Rename protocol to proto applying
1 parent 0806a07 commit e286c26

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

Sources/SwiftProtobuf/ProtobufMirror.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,6 @@ public enum MessageModificationError: Error {
138138
case invalidFieldNumber
139139
}
140140

141-
public protocol MessageModifier: Message {
141+
public protocol _ProtoApplying: Message {
142142
func applying(_ value: Any, for fieldNumber: Int) throws -> Self
143143
}

Sources/protoc-gen-swift/MessageGenerator.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ class MessageGenerator {
196196
func generateRuntimeSupport(printer p: inout CodePrinter, file: FileGenerator, parent: MessageGenerator?) {
197197
p.print(
198198
"",
199-
"extension \(swiftFullName): \(namer.swiftProtobufModulePrefix)Message, \(namer.swiftProtobufModulePrefix)_MessageImplementationBase, \(namer.swiftProtobufModulePrefix)_ProtoNameProviding, \(namer.swiftProtobufModulePrefix)MessageModifier {")
199+
"extension \(swiftFullName): \(namer.swiftProtobufModulePrefix)Message, \(namer.swiftProtobufModulePrefix)_MessageImplementationBase, \(namer.swiftProtobufModulePrefix)_ProtoNameProviding, \(namer.swiftProtobufModulePrefix)_ProtoApplying {")
200200
p.withIndentation { p in
201201
if let parent = parent {
202202
p.print("\(visibility)static let protoMessageName: String = \(parent.swiftFullName).protoMessageName + \".\(descriptor.name)\"")
@@ -406,6 +406,13 @@ class MessageGenerator {
406406

407407
private func generateMessageApplying(printer p: inout CodePrinter) {
408408
p.print("\(visibility)func applying(_ value: Any, for fieldNumber: Int) throws -> \(swiftFullName) {")
409+
if fields.isEmpty {
410+
p.withIndentation { p in
411+
p.print("throw \(namer.swiftProtobufModulePrefix)MessageModificationError.invalidFieldNumber")
412+
}
413+
p.print("}")
414+
return
415+
}
409416
p.withIndentation { p in
410417
p.print("""
411418
func valueAs<T>(_ type: T.Type) throws -> T {

0 commit comments

Comments
 (0)