Hi Ladislav,

> the behaviour seems to have more to do with function attributes:
> See the following code samples:
>
>     type? do does [type? do func [] [return make error! ""]] ; == datatype!
>
>     type? do does [type? do func [[throw]] [return make error! ""]] ; ==
> error!
>
>     type? do does [type? do func [[]] [return make error! ""]] ; == error!
>
> The empty attribute is interpreted like the [throw] attribute in this case!
> It looks like an implementation issue.

Yes, we spoke about that some time ago.

But my previous statement:

"no-loop error! seems to have the same beaviour which has any others error,
when a function has at least the attribute []:"

is wrong: no-loop is uncatchable at all, and undisarmable, while orthers
errors in functions with the attribute [] or [throw] can be catched and
disarmed with a function wrapper.

BTW, no-loop is the only one error wich show this behaviour. Neither Syntax
error have its behaviour.

I think that this could be related to the Break behaviour which ignores
functions bound:

 loop 2 [print 1 do does [break]] ;= 1

Break does not requires [throw] to throw the break to the upper function. So a
Break error can only happens at the higher level of code execution and never
inside user code.

>
> Ciao
>     Ladislav

---
Ciao
Romano



-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to