Thanks Alexander, you are right. I fixed it accidentally when I was
unintentionally quoting random things inside manually.

If you interested in specifics, please check this
https://gitlab.com/Abel-ze-Normand/pgint.l/commit/1d5307af26bafdb012ddeb2fcd4ff165677c7441#351b402b0cf612cf18c60eaca9c2b8be18f8ae51_161_183
line, which was causing such problem. So, (pg-trans) and (assert-throws)
both are functions with manual arguments evaluation. My referenced line was
throwing an error
```
!? ...
pg-db-err -- Tag not found
```
But after I quoted (pg-trans ...) call, this test works like a charm.

So I have a question, is there a reason to quote functions used as args for
functions with manually evaluated arguments? I thought that there is no
such reason to quote this sub S-expressions because they are not evaluated
anyway (due to function declaration like for pg-trans or assert-throws)

Thanks, Nail.

пт, 18 янв. 2019 г. в 23:45, Alexander Burger <[email protected]>:

> Hi Abel,
>
> > Hello everyone, can someone help me please to understand why (catch)
> around
> > manually-evaluated function args is not actually catching thrown tag?
> > -------------------
> > (de manual-eval X
> >   (mapc eval X) )
> >
> > (de throw-err () (throw 'my-err) )
> >
> > # this does not evaluate
> >
> > (catch 'my-err
> >   (manual-eval
> >     (throw-err) ) )
>
> I think it works fine. The error is correctly thrown and caught.
>
> You can easily make a negative test. Change the tag 'my-err' in the
> 'catch' tag to something else, and you get
>
>    !? (throw 'my-err)
>    my-err -- Tag not found
>    ?
>
> ☺/ A!ex
>
> --
> UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe
>


-- 
С уважением, Наиль.

Reply via email to