The following code result in an IndexOutOfBoundsException rather than a Scheme error.
--8<----8<----8<----8<----8<----8<----8<--
(import generic-procedures)
(import oo)
(import type-system)
(define-generics :id :id!)
; a class <c> w/ uid "c"
(define-nongenerative-class (<c>) c
(id :id :id!))
(define-method (initialize (<c> c) (<value> id))
(:id! c id))
; a child class <c:c> w/ THE SAME uid "c"
(define-nongenerative-class (<c:c> <c>) c)
(make <c:c> (gensym))
; => Error in record-set!: <java.lang.ArrayIndexOutOfBoundsException>: 0
--8<----8<----8<----8<----8<----8<----8<--
I believe we see two bugs here:
1) The error happens during instantiation, while one would expect the incorrect condition to be resolved during class definition with an appropriate error or warning.
2) record-set! generates a Java exception rather than a Scheme error message.
Logged In: YES
user_id=25869
Originator: NO
Fixed #2 so far in CVS. The first is a bit trickier.