From 4f1abc27576680b3aa92c3fd660a8d5677f42086 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Thu, 11 Apr 2019 18:40:19 -0400 Subject: [PATCH] Cleanup, omit macros from arg checking --- scheme/cyclone/cps-optimizations.sld | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scheme/cyclone/cps-optimizations.sld b/scheme/cyclone/cps-optimizations.sld index 71517274..1d58f191 100644 --- a/scheme/cyclone/cps-optimizations.sld +++ b/scheme/cyclone/cps-optimizations.sld @@ -2391,11 +2391,15 @@ ;; Does the given function call pass enough arguments? (define (validate:num-function-args ast) (and-let* (((app? ast)) + ;; Prims are checked elsewhere ((not (prim? (car ast)))) ((ref? (car ast))) + ;; Do not validate macros + ((not (env:lookup (car ast) (macro:get-env) #f))) (var (adb:get/default (car ast) #f)) (lam* (adbv:assigned-value var)) ((pair? lam*)) + ;; Assigned value is boxed in a cell, extract it (lam (car lam*)) ((ast:lambda? lam)) (formals-type (ast:lambda-formals-type lam))