From 16682ee9fcef7df7c2849920323948b9f684705e Mon Sep 17 00:00:00 2001 From: Peter Bex Date: Thu, 20 Apr 2017 21:36:36 +0200 Subject: [PATCH] Strip the syntax of operator type instead of injecting it We could inject, but then we'd have to also inject all the symbols we're comparing against (and use the "compare" procedure to do so). Instead, because these identifiers are treated as plain symbols, it's easier to strip the syntax. This was always broken, but actually got exposed due to CHICKEN core commit 41d48cdba2e46645c7dd157525652aa3953aed6c, which fixed an obscure bug related to double renaming. --- ssql.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ssql.scm b/ssql.scm index 48f2382..c3c6d2a 100644 --- a/ssql.scm +++ b/ssql.scm @@ -28,7 +28,8 @@ (let ((ssql-op (first op)) (type (second op))) - (unless (memq (i type) '(infix infix* suffix prefix suffix* prefix* function)) + (unless (memq (strip-syntax type) + '(infix infix* suffix prefix suffix* prefix* function)) (error "unknown operator syntax type" type)) (let-optionals (cddr op) @@ -358,4 +359,4 @@ clauses))))) -) \ No newline at end of file +)