void (@NotNull PsiPattern pattern) { PsiPatternVariable patternVariable = JavaPsiPatternUtil.getPatternVariable(pattern); if (patternVariable != null) { generateWriteInstruction(patternVariable); } if (pattern instanceof PsiDeconstructionPattern) { PsiDeconstructionPattern deconstructionPattern = (PsiDeconstructionPattern)pattern; PsiPattern[] deconstructionComponents = deconstructionPattern.getDeconstructionList().getDeconstructionComponents(); for (PsiPattern deconstructionComponent : deconstructionComponents) { ProgressManager.checkCanceled(); processPattern(deconstructionComponent); } } }