diff options
author | Ludovic Courtès <ludo@gnu.org> | 2009-10-25 22:49:28 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2009-10-25 22:49:28 +0100 |
commit | 288bbc44cf6f3839331a03649933f25d2361e06f (patch) | |
tree | daaa744451b0f98cffb059faab2a005a8d963369 /test-suite/tests/goops.test | |
parent | 9a8eb5fb4641bd9ea83903624c8c71192fe0d0f6 (diff) | |
download | guile-288bbc44cf6f3839331a03649933f25d2361e06f.tar.gz |
Fix GOOPS `class-of' for nameless structs.
* libguile/goops.c (scm_class_of): Fix second argument for
`scm_make_extended_class_from_symbol ()' for nameless structs.
* test-suite/tests/goops.test ("classes for built-in types")["struct
vtable"]: New test case.
Diffstat (limited to 'test-suite/tests/goops.test')
-rw-r--r-- | test-suite/tests/goops.test | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/test-suite/tests/goops.test b/test-suite/tests/goops.test index c060d12a6..c7a03d633 100644 --- a/test-suite/tests/goops.test +++ b/test-suite/tests/goops.test @@ -139,7 +139,12 @@ (eq? (class-of "foo") <string>)) (pass-if "port" - (is-a? (%make-void-port "w") <port>))) + (is-a? (%make-void-port "w") <port>)) + + (pass-if "struct vtable" + ;; Previously, `class-of' would fail for nameless structs, i.e., structs + ;; for which `struct-vtable-name' is #f. + (is-a? (class-of (make-vtable-vtable "prprpr" 0)) <class>))) (with-test-prefix "defining classes" |