From 45314ee84b8f09230b6183f1e686d6e68b1e8048 Mon Sep 17 00:00:00 2001 From: Eric Dobson Date: Thu, 30 Jun 2011 13:54:10 -0400 Subject: [PATCH] Changed order type annotations are processed. Closes PR 11560. original commit: e3c4955ac9f7fb10f1281bc93bd08fe594bc728d --- collects/tests/typed-scheme/fail/pr11560.rkt | 2 ++ collects/tests/typed-scheme/succeed/pr11560.rkt | 2 ++ collects/typed-scheme/private/type-annotation.rkt | 14 +++++++++----- 3 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 collects/tests/typed-scheme/fail/pr11560.rkt create mode 100644 collects/tests/typed-scheme/succeed/pr11560.rkt diff --git a/collects/tests/typed-scheme/fail/pr11560.rkt b/collects/tests/typed-scheme/fail/pr11560.rkt new file mode 100644 index 00000000..ed3515de --- /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 00000000..5aaa5e68 --- /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 2072b606..b642589e 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)