--- Begin Message ---
Subject: |
#:getter procedure returns unexpected value in GOOPS |
Date: |
Sat, 26 Apr 2014 22:43:41 -0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
When using GOOPS, if a class has a second slot, the #:getter procedure
of the first slot returns the value of the second slot when applied to
an instance of a subclass.
--8<---------------cut here---------------start------------->8---
(use-modules (oop goops))
(define-class <foo> ()
(a #:init-form 'foo #:getter foo-a)
(b #:init-form 42))
(define-class <bar> (<foo>)
(a #:init-form 'bar))
--8<---------------cut here---------------end--------------->8---
(foo-a (make <foo>)) => foo
(foo-a (make <bar>)) => 42
I expected:
(foo-a (make <bar>)) => bar
I'm using Guile 2.0.11.
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#17355: #:getter procedure returns unexpected value in GOOPS |
Date: |
Tue, 21 Jun 2016 15:12:22 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Thanks for the report! This is fixed in Guile 2.0.11 and in 2.1.x,
though the full situation is a bit strange.
See: http://thread.gmane.org/gmane.lisp.guile.user/11218/focus=11813
Regards,
Andy
On Sun 27 Apr 2014 03:43, "Diogo F. S. Ramos" <address@hidden> writes:
> When using GOOPS, if a class has a second slot, the #:getter procedure
> of the first slot returns the value of the second slot when applied to
> an instance of a subclass.
>
> (use-modules (oop goops))
>
> (define-class <foo> ()
> (a #:init-form 'foo #:getter foo-a)
> (b #:init-form 42))
>
> (define-class <bar> (<foo>)
> (a #:init-form 'bar))
>
> (foo-a (make <foo>)) => foo
> (foo-a (make <bar>)) => 42
>
> I expected:
>
> (foo-a (make <bar>)) => bar
>
> I'm using Guile 2.0.11.
--- End Message ---