225225 (if lb (list lb ub) (list ub))
226226 (if lb (list lb '(core Any)) '())))))
227227
228- ;; check if x is of the form (method <name>) or (method (outerref <name>))
229228(define (is-method? x)
230229 (if (and (pair? x) (eq? (car x) 'method))
231230 (let ((name (cadr x)))
232- (if (and (pair? name) (eq? (car name) 'outerref ))
233- (let ((name (cadr name)))
231+ (if (and (pair? name) (eq? (car name) 'globalref ))
232+ (let ((name (caddr name)))
234233 (if (symbol? name)
235234 #t
236235 #f))
@@ -3553,7 +3552,7 @@ f(x) = yt(x)
35533552
35543553(define (convert-lambda lam fname interp capt-sp opaq parsed-method-stack)
35553554 (let ((body (add-box-inits-to-body
3556- lam (cl-convert- (cadddr lam) fname lam (table) (table) #f interp opaq parsed-method-stack (table) (vinfo-to-table (car (lam: vinfo lam)))))))
3555+ lam (cl-convert (cadddr lam) fname lam (table) (table) #f interp opaq parsed-method-stack (table) (vinfo-to-table (car (lam: vinfo lam)))))))
35573556 `(lambda ,(lam: args lam)
35583557 (,(clear-capture-bits (car (lam: vinfo lam)))
35593558 ()
@@ -3646,7 +3645,7 @@ f(x) = yt(x)
36463645 (equal? rhs0 '(the_exception)))
36473646 rhs0
36483647 (make-ssavalue)))
3649- (rhs (convert-for-type-decl rhs1 (cl-convert- vt fname lam #f #f #f interp opaq parsed-method-stack (table) locals) #t lam))
3648+ (rhs (convert-for-type-decl rhs1 (cl-convert vt fname lam #f #f #f interp opaq parsed-method-stack (table) locals) #t lam))
36503649 (ex (cond (closed `(call (core setfield!)
36513650 ,(if interp
36523651 `($ ,var)
@@ -3933,14 +3932,14 @@ f(x) = yt(x)
39333932(define (map-cl-convert exprs fname lam namemap defined toplevel interp opaq parsed-method-stack (globals (table)) (locals (table)))
39343933 (if toplevel
39353934 (map (lambda (x)
3936- (let ((tl (lift-toplevel (cl-convert- x fname lam namemap defined
3935+ (let ((tl (lift-toplevel (cl-convert x fname lam namemap defined
39373936 (and toplevel (toplevel-preserving? x))
39383937 interp opaq parsed-method-stack globals locals))))
39393938 (if (null? (cdr tl))
39403939 (car tl)
39413940 `(block ,@(cdr tl) ,(car tl)))))
39423941 exprs)
3943- (map (lambda (x) (cl-convert- x fname lam namemap defined #f interp opaq parsed-method-stack globals locals)) exprs)))
3942+ (map (lambda (x) (cl-convert x fname lam namemap defined #f interp opaq parsed-method-stack globals locals)) exprs)))
39443943
39453944(define (prepare-lambda! lam)
39463945 ;; mark all non-arguments as assigned, since locals that are never assigned
@@ -3955,7 +3954,7 @@ f(x) = yt(x)
39553954 (char=? (string.char str 0) #\#)
39563955 (char-numeric? (string.char str 1))))
39573956
3958- (define (cl-convert-- e fname lam namemap defined toplevel interp opaq parsed-method-stack (globals (table)) (locals (table)))
3957+ (define (cl-convert- e fname lam namemap defined toplevel interp opaq parsed-method-stack (globals (table)) (locals (table)))
39593958 (if (and (not lam)
39603959 (not (and (pair? e) (memq (car e) '(lambda method macro opaque_closure)))))
39613960 (if (atom? e) e
@@ -3978,7 +3977,7 @@ f(x) = yt(x)
39783977 (val (if (equal? typ '(core Any))
39793978 val
39803979 `(call (core typeassert) ,val
3981- ,(cl-convert- typ fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)))))
3980+ ,(cl-convert typ fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)))))
39823981 `(block
39833982 ,@(if (eq? box access) '() `((= ,access ,box)))
39843983 ,undefcheck
@@ -4010,7 +4009,7 @@ f(x) = yt(x)
40104009 e)
40114010 ((=)
40124011 (let ((var (cadr e))
4013- (rhs (cl-convert- (caddr e) fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)))
4012+ (rhs (cl-convert (caddr e) fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)))
40144013 (convert-assignment var rhs fname lam interp opaq parsed-method-stack globals locals)))
40154014 ((local-def) ;; make new Box for local declaration of defined variable
40164015 (let ((vi (get locals (cadr e) #f)))
@@ -4100,14 +4099,14 @@ f(x) = yt(x)
41004099 ((null? cvs)
41014100 `(block
41024101 ,@sp -inits
4103- (method ,(cadr e) ,(cl-convert-
4102+ (method ,(cadr e) ,(cl-convert
41044103 ;; anonymous functions with keyword args generate global
41054104 ;; functions that refer to the type of a local function
41064105 (rename-sig-types sig namemap)
41074106 fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)
41084107 ,(let ((body (add-box-inits-to-body
41094108 lam2
4110- (cl-convert- (cadddr lam2) 'anon lam2 (table) (table) #f interp opaq parsed-method-stack (table)
4109+ (cl-convert (cadddr lam2) 'anon lam2 (table) (table) #f interp opaq parsed-method-stack (table)
41114110 (vinfo-to-table (car (lam: vinfo lam2)))))))
41124111 `(lambda ,(cadr lam2)
41134112 (,(clear-capture-bits (car vis))
@@ -4119,7 +4118,7 @@ f(x) = yt(x)
41194118 (newlam (compact-and-renumber (linearize (car exprs)) 'none 0)))
41204119 `(toplevel-butfirst
41214120 (block ,@sp -inits
4122- (method ,(cadr e) ,(cl-convert- sig fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)
4121+ (method ,(cadr e) ,(cl-convert sig fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)
41234122 ,(julia-bq-macro newlam)))
41244123 ,@top -stmts))))
41254124
@@ -4224,7 +4223,7 @@ f(x) = yt(x)
42244223 (append (map (lambda (gs tvar)
42254224 (make-assignment gs `(call (core TypeVar) ',tvar (core Any))))
42264225 closure-param-syms closure-param-names)
4227- `((method #f ,(cl-convert- arg-defs fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)
4226+ `((method #f ,(cl-convert arg-defs fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)
42284227 ,(convert-lambda lam2
42294228 (if iskw
42304229 (caddr (lam: args lam2))
@@ -4284,15 +4283,15 @@ f(x) = yt(x)
42844283 (block ,@body ))))
42854284 ;; remaining `::` expressions are type assertions
42864285 ((|::|)
4287- (cl-convert- `(call (core typeassert) ,@(cdr e)) fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals))
4286+ (cl-convert `(call (core typeassert) ,@(cdr e)) fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals))
42884287 ;; remaining `decl` expressions are only type assertions if the
42894288 ;; argument is global or a non-symbol.
42904289 ((decl)
42914290 (cond ((and (symbol? (cadr e))
42924291 (local-in? (cadr e) lam locals))
42934292 '(null))
42944293 (else
4295- (cl-convert-
4294+ (cl-convert
42964295 (let ((ref (binding-to-globalref (cadr e))))
42974296 (if ref
42984297 (begin
@@ -4305,21 +4304,17 @@ f(x) = yt(x)
43054304 fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals))))
43064305 ;; `with-static-parameters` expressions can be removed now; used only by analyze-vars
43074306 ((with-static-parameters)
4308- (cl-convert- (cadr e) fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals))
4307+ (cl-convert (cadr e) fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals))
43094308 (else
43104309 (cons (car e)
43114310 (map-cl-convert (cdr e) fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals))))))))
43124311
4313- ;; wrapper for `cl-convert-- `
4314- (define (cl-convert- e fname lam namemap defined toplevel interp opaq parsed-method-stack (globals (table)) (locals (table)))
4312+ ;; wrapper for `cl-convert-`
4313+ (define (cl-convert e fname lam namemap defined toplevel interp opaq ( parsed-method-stack '()) (globals (table)) (locals (table)))
43154314 (if (is-method? e)
43164315 (let ((name (method-expr-name e)))
4317- (cl-convert-- e fname lam namemap defined toplevel interp opaq (cons name parsed-method-stack) globals locals))
4318- (cl-convert-- e fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)))
4319-
4320- (define (cl-convert e fname lam namemap defined toplevel interp opaq (globals (table)) (locals (table)))
4321- (let ((parsed-method-stack '()))
4322- (cl-convert-- e fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)))
4316+ (cl-convert- e fname lam namemap defined toplevel interp opaq (cons name parsed-method-stack) globals locals))
4317+ (cl-convert- e fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)))
43234318
43244319(define (closure-convert e) (cl-convert e #f #f (table) (table) #f #f #f))
43254320
0 commit comments