compiler.crossref: add next-method dependency
parent
a13c2fb856
commit
c438e84bd0
|
@ -72,9 +72,19 @@ TUPLE: depends-on-classes-disjoint class1 class2 ;
|
|||
M: depends-on-classes-disjoint satisfied?
|
||||
[ class1>> ] [ class2>> ] bi classes-intersect? not ;
|
||||
|
||||
TUPLE: depends-on-next-method class generic next-method ;
|
||||
|
||||
: depends-on-next-method ( class generic next-method -- )
|
||||
over depends-on-conditionally
|
||||
\ depends-on-next-method add-conditional-dependency ;
|
||||
|
||||
M: depends-on-next-method satisfied?
|
||||
[ [ class>> ] [ generic>> ] bi next-method ] [ next-method>> ] bi eq? ;
|
||||
|
||||
TUPLE: depends-on-method class generic method ;
|
||||
|
||||
: depends-on-method ( class generic method -- )
|
||||
over depends-on-conditionally
|
||||
\ depends-on-method add-conditional-dependency ;
|
||||
|
||||
M: depends-on-method satisfied?
|
||||
|
|
|
@ -124,15 +124,15 @@ IN: stack-checker.transforms
|
|||
|
||||
\ 3|| t "no-compile" set-word-prop
|
||||
|
||||
\ (call-next-method) [
|
||||
[
|
||||
: add-next-method-dependency ( method -- )
|
||||
[ "method-class" word-prop ]
|
||||
[ "method-generic" word-prop ] bi
|
||||
depends-on-generic
|
||||
] [
|
||||
[ next-method-quot ]
|
||||
[ '[ _ no-next-method ] ] bi or
|
||||
] bi
|
||||
2dup next-method
|
||||
depends-on-next-method ;
|
||||
|
||||
\ (call-next-method) [
|
||||
[ add-next-method-dependency ]
|
||||
[ [ next-method-quot ] [ '[ _ no-next-method ] ] bi or ] bi
|
||||
] 1 define-transform
|
||||
|
||||
\ (call-next-method) t "no-compile" set-word-prop
|
||||
|
|
Loading…
Reference in New Issue