diff --git a/collects/tests/typed-scheme/fail/pr11560.rkt b/collects/tests/typed-scheme/fail/pr11560.rkt new file mode 100644 index 0000000000..ed3515dec0 --- /dev/null +++ b/collects/tests/typed-scheme/fail/pr11560.rkt @@ -0,0 +1,2 @@ +#lang typed/racket/base +(ann (ann 5 Real) Integer) diff --git a/collects/tests/typed-scheme/succeed/pr11560.rkt b/collects/tests/typed-scheme/succeed/pr11560.rkt new file mode 100644 index 0000000000..5aaa5e6872 --- /dev/null +++ b/collects/tests/typed-scheme/succeed/pr11560.rkt @@ -0,0 +1,2 @@ +#lang typed/racket/base +(ann (ann 5 Integer) Real) diff --git a/collects/typed-scheme/private/type-annotation.rkt b/collects/typed-scheme/private/type-annotation.rkt index 2072b606f2..b642589e1d 100644 --- a/collects/typed-scheme/private/type-annotation.rkt +++ b/collects/typed-scheme/private/type-annotation.rkt @@ -69,9 +69,10 @@ [(syntax-property stx type-ascrip-symbol) => (lambda (prop) - (if (pair? prop) - (pt (car prop)) - (pt prop)))] + (let loop ((prop prop)) + (if (pair? prop) + (loop (cdr prop)) + (pt prop))))] [else #f])) (define (remove-ascription stx) @@ -81,8 +82,11 @@ => (lambda (prop) (if (pair? prop) - (cdr prop) - #f))] + (let loop ((prop (cdr prop)) (last (car prop))) + (if (pair? prop) + (cons last (loop (cdr prop) (car prop))) + last)) + #f))] [else #f]))) (define (log/ann stx ty)