   ///
   ///     default-label → attributes? 'default' ':'
   @_spi(RawSyntax)
-  public mutating func parseSwitchDefaultLabel() -> RawSwitchDefaultLabelSyntax {
-    let (unexpectedBeforeDefaultKeyword, defaultKeyword) = self.expect(.defaultKeyword)
+  public mutating func parseSwitchDefaultLabel(
+    _ handle: RecoveryConsumptionHandle
+  ) -> RawSwitchDefaultLabelSyntax {
+    let (unexpectedBeforeDefaultKeyword, defaultKeyword) = self.eat(handle)
     let (unexpectedBeforeColon, colon) = self.expect(.colon)
     return RawSwitchDefaultLabelSyntax(
       unexpectedBeforeDefaultKeyword,

  ///     case-label → attributes? case case-item-list ':'
  ///     case-item-list → pattern where-clause? | pattern where-clause? ',' case-item-list
  @_spi(RawSyntax)
  public mutating func parseSwitchCaseLabel() -> RawSwitchCaseLabelSyntax {
    let (unexpectedBeforeCaseKeyword, caseKeyword) = self.expect(.caseKeyword)
    var caseItems = [RawCaseItemSyntax]()
    do {
      var keepGoing: RawTokenSyntax? = nil


    let label: RawSyntax
    switch self.canRecoverTo(anyIn: SwitchCaseStart.self) {
    case (.caseKeyword, let handle)?:
      label = RawSyntax(self.parseSwitchCaseLabel(handle))
    case (.defaultKeyword, let handle)?:
      label = RawSyntax(self.parseSwitchDefaultLabel(handle))
    case nil:
      label = RawSyntax(RawMissingSyntax(arena: self.arena))
    }


