Open
Description
Update: this is no longer a soundness hole, see #1305 (comment).
The following program is accepted and produces garbage or segfaults on Racket 8.7:
#lang typed/racket
(define-signature a^ ([x : (Pairof Integer Integer)]))
(define-unit get-x@
(import a^)
(export)
x)
(define v : (Pairof Integer Integer)
(let ()
(define-syntax (x stx)
#'(quote not-an-integer))
(invoke-unit get-x@ (import a^))))
(+ (car v) (cdr v))