File tree Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -4119,7 +4119,7 @@ f(x) = yt(x)
4119
4119
(cons (car e)
4120
4120
(map-cl-convert (cdr e) fname lam namemap defined toplevel interp opaq globals))))))))
4121
4121
4122
- (define (closure-convert e) (cl-convert e #f #f #f #f #f #f #f))
4122
+ (define (closure-convert e) (cl-convert e #f #f (table) (table) #f #f #f))
4123
4123
4124
4124
;; pass 5: convert to linear IR
4125
4125
@@ -4403,7 +4403,10 @@ f(x) = yt(x)
4403
4403
(else
4404
4404
(compile-args (cdr e) break-labels))))
4405
4405
(callex (cons (car e) args)))
4406
- (cond (tail (emit-return callex))
4406
+ (cond (tail (let ((tmp (make-ssavalue)))
4407
+ ;; can't just do (emit-return callex), since we might linearize code twice
4408
+ (emit `(= ,tmp ,callex))
4409
+ (emit-return tmp)))
4407
4410
(value callex)
4408
4411
(else (emit callex)))))
4409
4412
((=)
Original file line number Diff line number Diff line change @@ -3276,3 +3276,7 @@ end
3276
3276
@test m. Foo. bar === 1
3277
3277
@test Core. get_binding_type (m. Foo, :bar ) == Any
3278
3278
end
3279
+
3280
+ # issue 44723
3281
+ demo44723 (thunk):: Any = Base. Experimental. @opaque () -> true ? 1 : 2
3282
+ @test demo44723 (7 )() == 1
You can’t perform that action at this time.
0 commit comments