summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chickadee/graphics/seagull.scm9
1 files changed, 7 insertions, 2 deletions
diff --git a/chickadee/graphics/seagull.scm b/chickadee/graphics/seagull.scm
index 4488c04..a1adb1d 100644
--- a/chickadee/graphics/seagull.scm
+++ b/chickadee/graphics/seagull.scm
@@ -1947,8 +1947,13 @@
('mat3 type:mat3)
('mat4 type:mat4)
('sampler-2d type:sampler-2d)
- (('array desc* (? exact-integer? length))
- (array-type (type-descriptor->type desc*) length))))
+ (('array desc* (? exact-integer? length) (? exact-integer? rest) ...)
+ (let loop ((rest rest)
+ (prev (array-type (type-descriptor->type desc*) length)))
+ (match rest
+ (() prev)
+ ((length . rest)
+ (loop rest (array-type prev length))))))))
(define-syntax-rule (a+b->c (ta tb tc) ...)
(let ((a (fresh-variable-type))