From 79266fcf3689d2b3051249f3455e580e7a8fb6e6 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 24 Jan 2013 15:44:45 -0700 Subject: [PATCH] ffi/com: improve handling of `type-described' Use a type description when an automation-supplied type is just 'any. --- collects/ffi/unsafe/com.rkt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/collects/ffi/unsafe/com.rkt b/collects/ffi/unsafe/com.rkt index c85f60a43f..44740f818d 100644 --- a/collects/ffi/unsafe/com.rkt +++ b/collects/ffi/unsafe/com.rkt @@ -1590,7 +1590,15 @@ (define (scheme-to-variant! var a elem-desc scheme-type #:mode [mode '(in)]) (cond [(type-described? a) - (scheme-to-variant! var (type-described-value a) elem-desc scheme-type #:mode mode)] + (scheme-to-variant! var + (type-described-value a) + (if (any-type? scheme-type) + #f + elem-desc) + (if (any-type? scheme-type) + (type-described-description a) + scheme-type) + #:mode mode)] [(and (pair? scheme-type) (eq? 'variant (car scheme-type))) (scheme-to-variant! var a elem-desc (cadr scheme-type) #:mode mode)] [(eq? a com-omit)