mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-04 19:56:34 +02:00
Add a type check
This commit is contained in:
parent
ade50748b6
commit
40a2131fef
1 changed files with 31 additions and 30 deletions
|
@ -1623,36 +1623,37 @@
|
||||||
(for-each
|
(for-each
|
||||||
(lambda (l)
|
(lambda (l)
|
||||||
(let ((ast (caddr l)))
|
(let ((ast (caddr l)))
|
||||||
(with-fnc (ast:lambda-id ast) (lambda (fnc)
|
(when (ast:lambda? ast)
|
||||||
(when (and (adbf:well-known fnc)
|
(with-fnc (ast:lambda-id ast) (lambda (fnc)
|
||||||
(equal? (adbf:closure-size fnc) 1))
|
(when (and (adbf:well-known fnc)
|
||||||
(trace:error `(JAE ,l ,fnc))
|
(equal? (adbf:closure-size fnc) 1))
|
||||||
(let* ((params-str (cdadr l))
|
(trace:error `(JAE ,l ,fnc))
|
||||||
(args-str
|
(let* ((params-str (cdadr l))
|
||||||
(string-join
|
(args-str
|
||||||
(cdr
|
(string-join
|
||||||
(string-split
|
(cdr
|
||||||
(string-replace-all params-str "object" "")
|
(string-split
|
||||||
#\,))
|
(string-replace-all params-str "object" "")
|
||||||
#\,))
|
#\,))
|
||||||
)
|
#\,))
|
||||||
(emit*
|
)
|
||||||
"static void __lambda_gc_ret_"
|
(emit*
|
||||||
(number->string (car l))
|
"static void __lambda_gc_ret_"
|
||||||
"(void *data, int argc,"
|
(number->string (car l))
|
||||||
params-str
|
"(void *data, int argc,"
|
||||||
")"
|
params-str
|
||||||
"{"
|
")"
|
||||||
"\nobject obj = "
|
"{"
|
||||||
(mangle (car (adbf:all-params fnc)))
|
"\nobject obj = "
|
||||||
";\n"
|
(mangle (car (adbf:all-params fnc)))
|
||||||
"__lambda_"
|
";\n"
|
||||||
(number->string (car l))
|
"__lambda_"
|
||||||
"(data, argc, obj"
|
(number->string (car l))
|
||||||
(if (> (string-length args-str) 0)
|
"(data, argc, obj"
|
||||||
(string-append "," args-str))
|
(if (> (string-length args-str) 0)
|
||||||
");"
|
(string-append "," args-str))
|
||||||
"}")))))))
|
");"
|
||||||
|
"}"))))))))
|
||||||
lambdas)
|
lambdas)
|
||||||
|
|
||||||
; Print the definitions:
|
; Print the definitions:
|
||||||
|
|
Loading…
Add table
Reference in a new issue