How do result builders handle if/else-if, without plain else, chains?

Depending on what you mean by "maps", yes! :wink: (You need both buildEithers, for else to compile, but they don't actually get called unless necessary.)

@resultBuilder enum ResultBuilder {
  static func buildEither(first: some Any) -> Never { fatalError() }
  static func buildEither(second: some Any) -> Never { fatalError() }
  static func buildOptional(_: Never?) -> Int { 1 }
  static func buildBlock(_ value: Int) -> Int { value }
}
@ResultBuilder var value: Int {
  if false { 0 } else if false { 0 } 
}
#expect(value == 1)
1 Like