boolean (@NotNull PsiDeconstructionPattern who, @Nullable PsiDeconstructionPattern overWhom) { if (overWhom == null) return false; PsiPattern[] whoComponents = who.getDeconstructionList().getDeconstructionComponents(); PsiPattern[] overWhomComponents = overWhom.getDeconstructionList().getDeconstructionComponents(); if (whoComponents.length != overWhomComponents.length) return false; for (int i = 0; i < whoComponents.length; i++) { PsiPattern whoComponent = whoComponents[i]; PsiPattern overWhomComponent = overWhomComponents[i]; if (!dominates(whoComponent, overWhomComponent)) return false; } return true; }