Skip to content

syntax->annotation and improper list. #1011

@uu27183141

Description

@uu27183141

Hi.

At first, I'm not native english speaker.
I am trying scheme's improper list and chezscheme's annotation.

(import (chezscheme))
(define-syntax (test-1 stx) 
 (syntax-case stx () 
  ((this (a . b)) 
   (begin 
    (assert (annotation? (syntax->annotation #'a))) 
    (display '(test-1 (assert (annotation? (syntax->annotation #'a))))) (newline)
    ; this is ok.
    (assert (annotation? (syntax->annotation #'b))) 
    (display '(test-1 (assert (annotation? (syntax->annotation #'b))))) (newline)
    #'(void)))))
(define-syntax (test-2 stx) 
 (syntax-case stx () 
  ((this (a0 ... a . b)) 
   (begin 
    (for-each 
     (lambda (c) 
      (assert (annotation? (syntax->annotation c)))) 
     #'(a0 ...)) 
    (display '(test-2 (assert (annotation? (syntax->annotation #'(a0 ...)))))) (newline)
    (assert (annotation? (syntax->annotation #'a))) 
    (display '(test-2 (assert (annotation? (syntax->annotation #'a))))) (newline)
    ; i think that this should be ok too.
    (assert (annotation? (syntax->annotation #'b))) 
    (display '(test-2 (assert (annotation? (syntax->annotation #'b))))) (newline)
    #'(void)))))
(test-1 (1 . 2))
(test-2 (1 2 . 3))

this is output.

(test-1 (assert (annotation? (syntax->annotation #'a))))
(test-1 (assert (annotation? (syntax->annotation #'b))))
(test-2 (assert (annotation? (syntax->annotation #'(a0 ...)))))
(test-2 (assert (annotation? (syntax->annotation #'a))))
Exception: failed assertion (annotation? (syntax->annotation (syntax b))) at line 24, char 13 of /data/data/com.termux/files/home/bug-report.scm
Type (debug) to enter the debugger.

this is implementation version information.

Chez Scheme Version 10.3.0
Copyright 1984-2025 Cisco Systems, Inc.
>

this is my machine information.

         -o          o-             u0_a326@localhost
          +hydNNNNdyh+              -----------------
        +mMMMMMMMMMMMMm+            OS: Android REL 13 aarch64
      `dMMm:NMMMMMMN:mMMd`          Host: samsung SM-P610
      hMMMMMMMMMMMMMMMMMMh          Kernel: Linux 4.14.113-27209537
  ..  yyyyyyyyyyyyyyyyyyyy  ..      Uptime: 51 days, 14 hours, 51 mins
.mMMm`MMMMMMMMMMMMMMMMMMMM`mMMm.    Packages: 293 (dpkg)
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:    Shell: bash
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:    DE: TP1A.220624.014.P610KSU4FWH7
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:    WM: WindowManager (SurfaceFlinger)
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:    Terminal: Termux googleplay.2025.10.05
-MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM-    Terminal Font: monospace
 +yy+ MMMMMMMMMMMMMMMMMMMM +yy+     CPU: 2 x Exynos 9611 (8) @ 2.31 GHz
      mMMMMMMMMMMMMMMMMMMm          GPU: ARM Mali-G72
      `/++MMMMh++hMMMM++/`          Memory: 3.05 GiB / 3.62 GiB (84%)
          MMMMo  oMMMM              Swap: 1.91 GiB / 4.00 GiB (48%)
          MMMMo  oMMMM              Disk (/): 4.29 GiB / 4.31 GiB (99%) - ext4 [Read-only]
          oNMm-  -mMNs              Disk (/storage/emulated): 15.53 GiB / 50.49 GiB (31%) - fuse
                                    Local IP (wlan0): 192.168.15.202/24
                                    Locale: en_US.UTF-8


In this code, the code (assert (annotation? (syntax->annotation #'b))) does not work as my expectation.
I can't make sure whether this is a bug or not.
Can anyone verify this?

Thanks for reading.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions