private void setParameterContext(@NotNull PsiElement element, PsiElement nameIdentifier, @Nullable PsiElement scopeElement) {
        final ParameterInfo nameInfo = builder.findParameterization(nameIdentifier);
        if (nameInfo == null) return;
        nameInfo.setArgumentContext(false);
        final Map<String, ParameterInfo> infos = new HashMap<>();
        infos.put(nameInfo.getName(), nameInfo);
        nameInfo.putUserData(PARAMETER_CONTEXT, infos);
        nameInfo.setElement(element);

        if (scopeElement == null) return;
        scopeElement.accept(new JavaRecursiveElementWalkingVisitor() {
          @Override
          public void visitElement(@NotNull PsiElement element) {
            final String type = element.getText();
            if (MatchUtil.isTypedVariable(type)) {
              final ParameterInfo typeInfo = builder.findParameterization(element);
              if (typeInfo != null) {
                typeInfo.setArgumentContext(false);
                typeInfo.putUserData(PARAMETER_CONTEXT, Collections.emptyMap());
                infos.put(typeInfo.getName(), typeInfo);
                return;
              }
            }
            super.visitElement(element);
          }
        });
        final int length = element.getTextLength() - infos.keySet().stream().mapToInt(key -> key.length() + 2).sum();
        nameInfo.putUserData(PARAMETER_LENGTH, length);
      }
private void setParameterContext(@NotNull PsiElement element, PsiElement nameIdentifier, @Nullable PsiElement scopeElement)