diff options
-rw-r--r-- | chickadee/graphics/seagull.scm | 9 |
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)) |