tweak recursive call site checking to consider declared-effects equivalent to their wrapped values
parent
339cc8f04e
commit
63ad397cc1
|
@ -119,9 +119,15 @@ SYMBOL: enter-out
|
|||
: trimmed-enter-out ( label -- stack )
|
||||
dup enter-out>> trim-stack ;
|
||||
|
||||
GENERIC: (undeclared-known) ( value -- known )
|
||||
M: object (undeclared-known) ;
|
||||
M: declared-effect (undeclared-known) value>> known (undeclared-known) ;
|
||||
|
||||
: undeclared-known ( value -- known ) known (undeclared-known) ;
|
||||
|
||||
: check-call-site-stack ( label -- )
|
||||
[ ] [ call-site-stack ] [ trimmed-enter-out ] tri
|
||||
[ dup known [ [ known ] bi@ = ] [ 2drop t ] if ] 2all?
|
||||
[ dup undeclared-known [ [ undeclared-known ] bi@ = ] [ 2drop t ] if ] 2all?
|
||||
[ drop ] [ word>> inconsistent-recursive-call-error inference-error ] if ;
|
||||
|
||||
: check-call ( label -- )
|
||||
|
|
Loading…
Reference in New Issue