@Override
    @Nullable
    @SuppressWarnings({ "RawUseOfParameterizedType" })
    public Object call(Context context, List list) throws FunctionCallException {
        final Object arg;
        if (list.size() == 0) {
            arg = context.getNodeSet().get(0);
        } else {
            final Object o = list.get(0);
            arg = o instanceof List ? ((List<?>)o).get(0) : o;
        }
        if (!(arg instanceof PsiElement)) {
            throw new FunctionCallException("NodeSet expected");
        }
        final PsiFile psiFile = ((PsiElement)arg).getContainingFile();

        assert psiFile != null;
        return extractInfo(psiFile);
    }
@Override
    @Nullable
    @SuppressWarnings({ "RawUseOfParameterizedType" })
    public Object call(Context context, List list)