@Override
  public boolean processDeclarations(@NotNull PsiScopeProcessor processor,
                                     @NotNull ResolveState state,
                                     PsiElement lastParent,
                                     @NotNull PsiElement place) {
    processor.handleEvent(PsiScopeProcessor.Event.SET_DECLARATION_HOLDER, this);

    boolean shouldContinue = getDeconstructionList().processDeclarations(processor, state, lastParent, place);
    if (!shouldContinue) return false;

    PsiPatternVariable variable = getPatternVariable();
    if (variable != lastParent && variable != null) {
      return processor.execute(variable, state);
    }
    return true;
  }
@Override
  public boolean processDeclarations(@NotNull PsiScopeProcessor processor,
                                     @NotNull ResolveState state,
                                     PsiElement lastParent,
                                     @NotNull PsiElement place)