PsiJavaFile:SwitchRulesWithPattern8.java
  PsiSwitchLabeledRule
    PsiKeyword:case('case')
    PsiWhiteSpace(' ')
    PsiCaseLabelElementList
      PsiDeconstructionPattern
        PsiModifierList:
          <empty list>
        PsiTypeElement:R
          PsiJavaCodeReferenceElement:R
            PsiIdentifier:R('R')
            PsiReferenceParameterList
              <empty list>
        PsiDeconstructionList
          PsiJavaToken:LPARENTH('(')
          PsiTypeTestPattern
            PsiPatternVariable:i
              PsiModifierList:
                <empty list>
              PsiTypeElement:int
                PsiKeyword:int('int')
              PsiWhiteSpace(' ')
              PsiIdentifier:i('i')
          PsiJavaToken:RPARENTH(')')
    PsiWhiteSpace(' ')
    PsiKeyword:when('when')
    PsiWhiteSpace(' ')
    PsiBinaryExpression:a < b
      PsiReferenceExpression:a
        PsiReferenceParameterList
          <empty list>
        PsiIdentifier:a('a')
      PsiWhiteSpace(' ')
      PsiJavaToken:LT('<')
      PsiWhiteSpace(' ')
      PsiReferenceExpression:b
        PsiReferenceParameterList
          <empty list>
        PsiIdentifier:b('b')
    PsiWhiteSpace(' ')
    PsiJavaToken:ARROW('->')
    PsiWhiteSpace(' ')
    PsiBlockStatement
      PsiCodeBlock
        PsiJavaToken:LBRACE('{')
        PsiJavaToken:RBRACE('}')