void (@NotNull GrSwitchElement switchElement) { final GrCondition condition = switchElement.getCondition(); if (condition != null) { condition.accept(this); } final InstructionImpl instruction = startNode(switchElement); final GrCaseSection[] sections = switchElement.getCaseSections(); if (!containsAllCases(switchElement)) { addPendingEdge(switchElement, instruction); } FList<ConditionInstruction> conditionsBefore = myConditions; for (GrCaseSection section : sections) { myConditions = conditionsBefore; myHead = instruction; GrExpression[] expressionPatterns = section.getExpressions(); if (!section.isDefault() && expressionPatterns.length > 0 && ContainerUtil.and(expressionPatterns, expr -> expr instanceof GrReferenceExpression && ((GrReferenceExpression)expr).getStaticReference().resolve() instanceof PsiClass)) { GrExpression expressionPattern = expressionPatterns[0]; if (expressionPattern != null && expressionPattern.getParent() instanceof GrExpressionList) { ConditionInstruction cond = registerCondition(section, false); addNodeAndCheckPending(cond); addNode(new InstanceOfInstruction((GroovyPsiElement)expressionPattern.getParent(), cond, myVariableMapping)); } } section.accept(this); } myConditions = conditionsBefore; finishNode(instruction); }