PsiJavaFile:SwitchRulesWithPattern3.java
  PsiSwitchLabeledRule
    PsiKeyword:case('case')
    PsiWhiteSpace(' ')
    PsiCaseLabelElementList
      PsiTypeTestPattern
        PsiPatternVariable:when
          PsiModifierList:
            <empty list>
          PsiTypeElement:A
            PsiJavaCodeReferenceElement:A
              PsiIdentifier:A('A')
              PsiReferenceParameterList
                <empty list>
          PsiWhiteSpace(' ')
          PsiIdentifier:when('when')
    PsiWhiteSpace(' ')
    PsiKeyword:when('when')
    PsiWhiteSpace(' ')
    PsiMethodCallExpression:when.foo()
      PsiReferenceExpression:when.foo
        PsiReferenceExpression:when
          PsiReferenceParameterList
            <empty list>
          PsiIdentifier:when('when')
        PsiJavaToken:DOT('.')
        PsiReferenceParameterList
          <empty list>
        PsiIdentifier:foo('foo')
      PsiExpressionList
        PsiJavaToken:LPARENTH('(')
        PsiJavaToken:RPARENTH(')')
    PsiWhiteSpace(' ')
    PsiJavaToken:ARROW('->')
    PsiWhiteSpace(' ')
    PsiBlockStatement
      PsiCodeBlock
        PsiJavaToken:LBRACE('{')
        PsiJavaToken:RBRACE('}')