DynamicElementSettings (GrReferenceExpression referenceExpression) { DynamicElementSettings settings = new DynamicElementSettings(); final PsiClass containingClass = findTargetClass(referenceExpression); assert containingClass != null; String className = containingClass.getQualifiedName(); className = className == null ? containingClass.getContainingFile().getName() : className; if (isStaticCall(referenceExpression)) { settings.setStatic(true); } settings.setContainingClassName(className); settings.setName(referenceExpression.getReferenceName()); if (PsiUtil.isCall(referenceExpression)) { List<PsiType> unboxedTypes = new ArrayList<>(); for (PsiType type : PsiUtil.getArgumentTypes(referenceExpression, false)) { unboxedTypes.add(TypesUtil.unboxPrimitiveTypeWrapperAndEraseGenerics(type)); } final PsiType[] types = unboxedTypes.toArray(PsiType.createArray(unboxedTypes.size())); final String[] names = GroovyNamesUtil.getMethodArgumentsNames(referenceExpression.getProject(), types); final List<ParamInfo> infos = swapArgumentsAndTypes(names, types); settings.setMethod(true); settings.setParams(infos); } else { settings.setMethod(false); } return settings; }