@Override
  public void processDynamicElements(@NotNull PsiType qualifierType,
                                     @Nullable PsiClass aClass,
                                     @NotNull PsiScopeProcessor processor,
                                     @NotNull PsiElement place,
                                     @NotNull ResolveState state) {
    if (aClass == null) {
      return;
    }
    ElementClassHint classHint = processor.getHint(ElementClassHint.KEY);
    boolean shouldProcessProperties = ResolveUtil.shouldProcessProperties(classHint);
    boolean shouldProcessMethods = ResolveUtil.shouldProcessMethods(classHint);
    if (!shouldProcessMethods && !shouldProcessProperties) return;
    GrMethod method = PsiTreeUtil.getParentOfType(place, GrMethod.class);
    if (method == null) return;
    if (shouldProcessProperties && SpecificationKt.isSpockSpecification(aClass) && aClass == method.getContainingClass()) {
      Map<String, SpockVariableDescriptor> cachedValue = SpockUtils.getVariableMap(method);

      String nameHint = ResolveUtil.getNameHint(processor);
      if (nameHint == null) {
        for (SpockVariableDescriptor spockVar : cachedValue.values()) {
          if (!processor.execute(spockVar.getVariable(), state)) return;
        }
      }
      else {
        SpockVariableDescriptor spockVar = cachedValue.get(nameHint);
        if (spockVar != null && spockVar.getNavigationElement() != place) {
          processor.execute(spockVar.getVariable(), state);
        }
        if (UNDERSCORES.matcher(nameHint).matches()) {
          GrLightVariable variable = new GrLightVariable(place.getManager(), nameHint, PsiTypes.nullType(), List.of(), method);
          processor.execute(variable, state);
        }
      }
    }
    if (shouldProcessMethods) {
      processUseAnnotation(qualifierType, place, processor, state);
    }
  }
@Override
  public void processDynamicElements(@NotNull PsiType qualifierType,
                                     @Nullable PsiClass aClass,
                                     @NotNull PsiScopeProcessor processor,
                                     @NotNull PsiElement place,
                                     @NotNull ResolveState state)