This is the mail archive of the kawa@sources.redhat.com mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

bug in Kawa 1.6.98 and 1.7: overriding rest argument with non-list value


Hi,

To anybody: if you got SSAX/SXML to compile and fully validate using Kawa, I'd like to hear from you!

Here's what I believe a bug in Kawa, which I can observe both in 1.6.98 and 1.7. I discovered it using SSAX/SXML code.

Compilation of SSAX/lib/look-for-str.scm yields
;s:/src/CVS/ssax/SSAX/lib/look-for-str.scm:40:4: warning - cannot convert literal (of type java.lang.Boolean) to gnu.lists.LList

A small test case extracted from the above
(define bar (lambda (str . max-no-char)
  (set! max-no-char (if (null? max-no-char) #f (car max-no-char)))
  (list str max-no-char)
))
;(bar "abc")
;(bar "abc" 1)

Attempting to invoke bar yields to either
Invalid parameter, was: java.lang.Boolean
Invalid parameter, was: gnu.math.IntNum
depending on the above call form.

It seems like the compiler tries to assert type information (kawa list type) for max-no-char which is wrong here because the #!rest variable gets superseeded by a non-list value by the assignment.

;(bar "abc" '(1 2 3))
works -- assigned value is still a list

Regards,
	Jörg Höhle.
Kawa-1.7.jar using JDK (1.3.1?) on MS-Windows-2k


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]