docs: @Override
    protected void visitSwitchNode(SwitchNode node) {
  
      Expression switchOn = coerceTypeForSwitchComparison(node.getExpr());
      SwitchBuilder switchBuilder = switchValue(switchOn);
      for (SoyNode child : node.getChildren()) {
        if (child instanceof SwitchCaseNode) {
          SwitchCaseNode scn = (SwitchCaseNode) child;
          ImmutableList.Builder<Expression> caseChunks = ImmutableList.builder();
          for (ExprNode caseExpr : scn.getExprList()) {
            Expression caseChunk = translateExpr(caseExpr);
            caseChunks.add(caseChunk);
          }
          Statement body = visitChildrenReturningCodeChunk(scn);
          switchBuilder.addCase(caseChunks.build(), body);
        } else if (child instanceof SwitchDefaultNode) {
          Statement body = visitChildrenReturningCodeChunk((SwitchDefaultNode) child);
          switchBuilder.setDefault(body);
        } else {
          throw new AssertionError();
        }
      }
      jsCodeBuilder.append(switchBuilder.build());
    }