225
225
(if lb (list lb ub) (list ub))
226
226
(if lb (list lb ' (core Any)) '() )))))
227
227
228
- ; ; check if x is of the form (method <name>) or (method (outerref <name>))
229
228
(define (is-method? x )
230
229
(if (and (pair? x) (eq? (car x) 'method ))
231
230
(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)))
234
233
(if (symbol? name)
235
234
#t
236
235
#f ))
@@ -3553,7 +3552,7 @@ f(x) = yt(x)
3553
3552
3554
3553
(define (convert-lambda lam fname interp capt-sp opaq parsed-method-stack )
3555
3554
(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)))))))
3557
3556
`(lambda ,(lam:args lam)
3558
3557
(,(clear-capture-bits (car (lam:vinfo lam)))
3559
3558
()
@@ -3646,7 +3645,7 @@ f(x) = yt(x)
3646
3645
(equal? rhs0 ' (the_exception)))
3647
3646
rhs0
3648
3647
(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))
3650
3649
(ex (cond (closed `(call (core setfield!)
3651
3650
,(if interp
3652
3651
`($ ,var)
@@ -3933,14 +3932,14 @@ f(x) = yt(x)
3933
3932
(define (map-cl-convert exprs fname lam namemap defined toplevel interp opaq parsed-method-stack (globals (table)) (locals (table)))
3934
3933
(if toplevel
3935
3934
(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
3937
3936
(and toplevel (toplevel-preserving? x))
3938
3937
interp opaq parsed-method-stack globals locals))))
3939
3938
(if (null? (cdr tl))
3940
3939
(car tl)
3941
3940
`(block ,@(cdr tl) ,(car tl)))))
3942
3941
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)))
3944
3943
3945
3944
(define (prepare-lambda! lam )
3946
3945
; ; mark all non-arguments as assigned, since locals that are never assigned
@@ -3955,7 +3954,7 @@ f(x) = yt(x)
3955
3954
(char=? (string.char str 0 ) #\# )
3956
3955
(char-numeric? (string.char str 1 ))))
3957
3956
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)))
3959
3958
(if (and (not lam)
3960
3959
(not (and (pair? e) (memq (car e) ' (lambda method macro opaque_closure)))))
3961
3960
(if (atom? e) e
@@ -3978,7 +3977,7 @@ f(x) = yt(x)
3978
3977
(val (if (equal? typ ' (core Any))
3979
3978
val
3980
3979
`(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)))))
3982
3981
`(block
3983
3982
,@(if (eq? box access) '() `((= ,access ,box)))
3984
3983
,undefcheck
@@ -4010,7 +4009,7 @@ f(x) = yt(x)
4010
4009
e)
4011
4010
((=)
4012
4011
(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)))
4014
4013
(convert-assignment var rhs fname lam interp opaq parsed-method-stack globals locals)))
4015
4014
((local-def) ; ; make new Box for local declaration of defined variable
4016
4015
(let ((vi (get locals (cadr e) #f )))
@@ -4100,14 +4099,14 @@ f(x) = yt(x)
4100
4099
((null? cvs)
4101
4100
`(block
4102
4101
,@sp-inits
4103
- (method ,(cadr e) ,(cl-convert-
4102
+ (method ,(cadr e) ,(cl-convert
4104
4103
; ; anonymous functions with keyword args generate global
4105
4104
; ; functions that refer to the type of a local function
4106
4105
(rename-sig-types sig namemap)
4107
4106
fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals)
4108
4107
,(let ((body (add-box-inits-to-body
4109
4108
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)
4111
4110
(vinfo-to-table (car (lam:vinfo lam2)))))))
4112
4111
`(lambda ,(cadr lam2)
4113
4112
(,(clear-capture-bits (car vis))
@@ -4119,7 +4118,7 @@ f(x) = yt(x)
4119
4118
(newlam (compact-and-renumber (linearize (car exprs)) 'none 0 )))
4120
4119
`(toplevel-butfirst
4121
4120
(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)
4123
4122
,(julia-bq-macro newlam)))
4124
4123
,@top-stmts))))
4125
4124
@@ -4224,7 +4223,7 @@ f(x) = yt(x)
4224
4223
(append (map (lambda (gs tvar )
4225
4224
(make-assignment gs `(call (core TypeVar) ',tvar (core Any))))
4226
4225
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)
4228
4227
,(convert-lambda lam2
4229
4228
(if iskw
4230
4229
(caddr (lam:args lam2))
@@ -4284,15 +4283,15 @@ f(x) = yt(x)
4284
4283
(block ,@body))))
4285
4284
; ; remaining `::` expressions are type assertions
4286
4285
((|::|)
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))
4288
4287
; ; remaining `decl` expressions are only type assertions if the
4289
4288
; ; argument is global or a non-symbol.
4290
4289
((decl)
4291
4290
(cond ((and (symbol? (cadr e))
4292
4291
(local-in? (cadr e) lam locals))
4293
4292
' (null))
4294
4293
(else
4295
- (cl-convert-
4294
+ (cl-convert
4296
4295
(let ((ref (binding-to-globalref (cadr e))))
4297
4296
(if ref
4298
4297
(begin
@@ -4305,21 +4304,17 @@ f(x) = yt(x)
4305
4304
fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals))))
4306
4305
; ; `with-static-parameters` expressions can be removed now; used only by analyze-vars
4307
4306
((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))
4309
4308
(else
4310
4309
(cons (car e)
4311
4310
(map-cl-convert (cdr e) fname lam namemap defined toplevel interp opaq parsed-method-stack globals locals))))))))
4312
4311
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)))
4315
4314
(if (is-method? e)
4316
4315
(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)))
4323
4318
4324
4319
(define (closure-convert e ) (cl-convert e #f #f (table) (table) #f #f #f ))
4325
4320
0 commit comments