-
Notifications
You must be signed in to change notification settings - Fork 72
Open
Labels
DRMDRM compliance issuesDRM compliance issues
Description
I think this is a bug in block
:
block ()
signal(make(<simple-error>))
exception (e :: <simple-error>)
format-out("<simple-error> clause\n");
// I think that the exception clause below should not be in effect when signal is called here.
signal(e)
exception (e :: <error>)
format-out("<error> clause\n");
end;
// output is:
// <simple-error> clause
// <error> clause
From the DRM:
// https://opendylan.org/books/drm/Statement_Macros#IX-2062
//
// DRM: "Note that when the expressions in an exception body are executed, all handlers
// established by the block are no longer active."
//
// DRM: "All exception clauses are executed in the same dynamic environment. None of
// the handlers established in the block are visible during the execution of one of the
// handlers. This can be thought of as parallel installation of the handlers."
So to be clear, I think the output just just be "<simple-error>
clause" and it should get an unhandled exception.
Run it in the playground here: https://play.opendylan.org/shared/f8e882a15e63415b
Metadata
Metadata
Assignees
Labels
DRMDRM compliance issuesDRM compliance issues