private void findParametersUsage(final PsiMethod method,
                                   ArrayList<? super UsageInfo> result,
                                   PsiMethod[] overriders,
                                   PsiDeconstructionPattern[] deconstructions) {
    if (JavaLanguage.INSTANCE.equals(myChangeInfo.getLanguage())) {
      PsiClass aClass = method.getContainingClass();
      PsiRecordComponent[] components = null;
      if (aClass != null && JavaPsiRecordUtil.isCanonicalConstructor(method)) {
        components = aClass.getRecordComponents();
      } 
      PsiParameter[] parameters = method.getParameterList().getParameters();
      for (ParameterInfo info : myChangeInfo.getNewParameters()) {
        if (info.getOldIndex() >= 0) {
          PsiParameter parameter = parameters[info.getOldIndex()];
          boolean nameChanged = !info.getName().equals(parameter.getName());
          if (nameChanged) {
            addParameterUsages(parameter, result, info);
            for (PsiMethod overrider : overriders) {
              PsiParameter parameter1 = overrider.getParameterList().getParameters()[info.getOldIndex()];
              if (parameter1 != null && Comparing.strEqual(parameter.getName(), parameter1.getName())) {
                addParameterUsages(parameter1, result, info);
              }
            }
            for (PsiDeconstructionPattern deconstruction : deconstructions) {
              PsiPattern[] component = deconstruction.getDeconstructionList().getDeconstructionComponents();
              PsiPatternVariable patternVariable = JavaPsiPatternUtil.getPatternVariable(component[info.getOldIndex()]);
              if (patternVariable != null && Comparing.strEqual(parameter.getName(), patternVariable.getName())) {
                addParameterUsages(patternVariable, result, info);
              }
            }
          }
          if (components != null && components.length > info.getOldIndex()) {
            PsiRecordComponent component = components[info.getOldIndex()];
            if (nameChanged) {
              PsiField field = JavaPsiRecordUtil.getFieldForComponent(component);
              if (field != null) {
                for (PsiReferenceExpression reference : VariableAccessUtils.getVariableReferences(field, aClass)) {
                  UsageInfo usageInfo = new ChangeSignatureParameterUsageInfo(reference, parameter.getName(), info.getName());
                  result.add(usageInfo);
                }
              }
            }
            PsiMethod explicitGetter = ContainerUtil
              .find(aClass.findMethodsByName(parameter.getName(), false), m -> m.getParameterList().isEmpty());
            if (explicitGetter != null) {
              if (nameChanged) {
                addParameterUsages(explicitGetter, result, info);
              }
              if (!(explicitGetter instanceof LightRecordMethod) && 
                  (nameChanged || !parameter.getType().equalsToText(info.getTypeText()))) {
                result.add(new RecordGetterDeclarationUsageInfo(explicitGetter, info.getName(), info.getTypeText()));
              }
            }
          }
        }
      }
    }
  }
private void findParametersUsage(final PsiMethod method,
                                   ArrayList<? super UsageInfo> result,
                                   PsiMethod[] overriders,
                                   PsiDeconstructionPattern[] deconstructions)