Object match(Object value, EvaluationContextImpl context) throws EvaluateException {
      // According to JEP 406, to maintain backward compatibility with the old
      // semantics of switch, the default label does not match a null selector.
      if (myDefaultCase && value != null) {
        return true;
      }
      for (Evaluator evaluator : myEvaluators) {
        if (evaluator instanceof PatternLabelEvaluator) {
          if (((BooleanValue)evaluator.evaluate(context)).booleanValue() &&
              (myGuardEvaluator == null || myGuardEvaluator.evaluate(context) instanceof BooleanValue bool && bool.booleanValue())) {
            return true;
          }
          continue;
        }
        Object labelValue = evaluator.evaluate(context);
        Object unboxedLabelValue = labelValue != null ? UnBoxingEvaluator.unbox(labelValue, context) : null;
        if (resultsEquals(value, unboxedLabelValue)) {
          return true;
        }
      }
      return false;
    }
Object match(Object value, EvaluationContextImpl context)