Skip to content

Commit ffc4b6c

Browse files
committed
Update generation to use normalized extension ranges.
Fixes some extension out of order cases, but also collapses the ranges to make slightly better code.
1 parent 83e3c14 commit ffc4b6c

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

Sources/protoc-gen-swift/Descriptor+Extensions.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ extension Descriptor {
7979
/// This expression list is suitable as a pattern match in a `case`
8080
/// statement. For example, `"case 5..<10, 20..<30:"`.
8181
var swiftExtensionRangeExpressions: String {
82-
return extensionRanges.lazy.map {
82+
return normalizedExtensionRanges.lazy.map {
8383
$0.swiftRangeExpression
8484
}.joined(separator: ", ")
8585
}
@@ -90,7 +90,7 @@ extension Descriptor {
9090
/// - Parameter variable: The name of the variable to test in the expression.
9191
/// - Returns: A `String` containing the Boolean expression.
9292
func swiftExtensionRangeBooleanExpression(variable: String) -> String {
93-
return extensionRanges.lazy.map {
93+
return normalizedExtensionRanges.lazy.map {
9494
"(\($0.swiftBooleanExpression(variable: variable)))"
9595
}.joined(separator: " || ")
9696
}

Sources/protoc-gen-swift/MessageGenerator.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ class MessageGenerator {
331331
let visitExtensionsName =
332332
descriptor.useMessageSetWireFormat ? "visitExtensionFieldsAsMessageSet" : "visitExtensionFields"
333333

334-
var ranges = descriptor.extensionRanges.makeIterator()
334+
var ranges = descriptor.normalizedExtensionRanges.makeIterator()
335335
var nextRange = ranges.next()
336336
for f in fieldsSortedByNumber {
337337
while nextRange != nil && Int(nextRange!.start) < f.number {

Sources/protoc-gen-swift/OneofGenerator.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ class OneofGenerator {
150150
// from each extension range as an easy way to check for them being
151151
// mixed in between the fields.
152152
var parentNumbers = descriptor.containingType.fields.map { Int($0.number) }
153-
parentNumbers.append(contentsOf: descriptor.containingType.extensionRanges.map { Int($0.start) })
153+
parentNumbers.append(contentsOf: descriptor.containingType.normalizedExtensionRanges.map { Int($0.start) })
154154
var parentNumbersIterator = parentNumbers.sorted(by: { $0 < $1 }).makeIterator()
155155
var nextParentFieldNumber = parentNumbersIterator.next()
156156
var grouped = [[MemberFieldGenerator]]()

0 commit comments

Comments
 (0)