diff options
Diffstat (limited to 'libguile/goops.c')
-rw-r--r-- | libguile/goops.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libguile/goops.c b/libguile/goops.c index ca850fa8c..97129851b 100644 --- a/libguile/goops.c +++ b/libguile/goops.c @@ -254,7 +254,10 @@ SCM_DEFINE (scm_class_of, "class-of", 1, 0, 0, else return scm_class_procedure; case scm_tc7_program: - return scm_class_procedure; + if (SCM_PROGRAM_IS_PRIMITIVE_GENERIC (x) && *SCM_SUBR_GENERIC (x)) + return scm_class_primitive_generic; + else + return scm_class_procedure; case scm_tc7_smob: { |