From 019dc8eb46d040a4c049f3533631ad57c7ad0f35 Mon Sep 17 00:00:00 2001 From: Jameson Nash Date: Tue, 12 Dec 2023 01:24:04 +0000 Subject: [PATCH] changes --- src/julia-syntax.scm | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/julia-syntax.scm b/src/julia-syntax.scm index 9369c042345ae..e5be48ac877ae 100644 --- a/src/julia-syntax.scm +++ b/src/julia-syntax.scm @@ -3428,8 +3428,7 @@ f(x) = yt(x) (define (type-for-closure-parameterized name P names fields types super) (let ((n (length P)) (s (make-ssavalue))) - `((thunk - (lambda () + `((thunk ,(linearize `(lambda () (() () 0 ()) (block (global ,name) (const ,name) ,@(map (lambda (p n) `(= ,p (call (core TypeVar) ',n (core Any)))) P names) @@ -3440,22 +3439,22 @@ f(x) = yt(x) (call (core _setsuper!) ,s ,super) (= (outerref ,name) ,s) (call (core _typebody!) ,s (call (core svec) ,@types)) - (return (null)))))))) + (return (null))))))))) (define (type-for-closure name fields super) (let ((s (make-ssavalue))) - `((thunk (lambda () - (() () 0 ()) - (block (global ,name) (const ,name) - (= ,s (call (core _structtype) (thismodule) (inert ,name) (call (core svec)) - (call (core svec) ,@(map quotify fields)) - (call (core svec)) - (false) ,(length fields))) - (call (core _setsuper!) ,s ,super) - (= (outerref ,name) ,s) - (call (core _typebody!) ,s - (call (core svec) ,@(map (lambda (v) '(core Box)) fields))) - (return (null)))))))) + `((thunk ,(linearize `(lambda () + (() () 0 ()) + (block (global ,name) (const ,name) + (= ,s (call (core _structtype) (thismodule) (inert ,name) (call (core svec)) + (call (core svec) ,@(map quotify fields)) + (call (core svec)) + (false) ,(length fields))) + (call (core _setsuper!) ,s ,super) + (= (outerref ,name) ,s) + (call (core _typebody!) ,s + (call (core svec) ,@(map (lambda (v) '(core Box)) fields))) + (return (null))))))))) ;; better versions of above, but they get handled wrong in many places ;; need to fix that in order to handle #265 fully (and use the definitions)