Fix GENERIC# with out of bounds dispatch position

db4
Slava Pestov 2009-05-12 20:47:20 -05:00
parent 5e2b985d9e
commit fd3a568191
2 changed files with 11 additions and 2 deletions

View File

@ -275,3 +275,8 @@ M: growable call-next-hooker call-next-method "growable " prepend ;
[ f ] [ "xyz" "generic.single.tests" lookup pic-def>> ] unit-test [ f ] [ "xyz" "generic.single.tests" lookup pic-def>> ] unit-test
[ f ] [ "xyz" "generic.single.tests" lookup "decision-tree" word-prop ] unit-test [ f ] [ "xyz" "generic.single.tests" lookup "decision-tree" word-prop ] unit-test
! Corner case
[ "IN: generic.single.tests GENERIC# broken-generic# -1 ( a -- b )" eval( -- ) ]
[ error>> bad-dispatch-position? ]
must-fail-with

View File

@ -6,9 +6,13 @@ generic.single.private quotations kernel.private
assocs arrays layouts make ; assocs arrays layouts make ;
IN: generic.standard IN: generic.standard
ERROR: bad-dispatch-position # ;
TUPLE: standard-combination < single-combination # ; TUPLE: standard-combination < single-combination # ;
C: <standard-combination> standard-combination : <standard-combination> ( # -- standard-combination )
dup 0 < [ bad-dispatch-position ] when
standard-combination boa ;
PREDICATE: standard-generic < generic PREDICATE: standard-generic < generic
"combination" word-prop standard-combination? ; "combination" word-prop standard-combination? ;