diff --git a/collects/tests/typed-scheme/fail/dotted-identity.ss b/collects/tests/typed-scheme/fail/dotted-identity.ss new file mode 100644 index 0000000000..543f46c312 --- /dev/null +++ b/collects/tests/typed-scheme/fail/dotted-identity.ss @@ -0,0 +1,11 @@ +#lang typed-scheme + +;; I don't believe the below should work, but it points out where that internal error is coming from. + +(: f (All (a ...) ((a ... a -> Integer) -> (a ... a -> Integer)))) +(define (f x) x) + +(: g (All (b ...) ( -> (b ... b -> Integer)))) +(define (g) (lambda xs 0)) + +(f (g)) \ No newline at end of file diff --git a/collects/tests/typed-scheme/succeed/dotted-identity.ss b/collects/tests/typed-scheme/succeed/dotted-identity.ss index df07474f0a..78a839766b 100644 --- a/collects/tests/typed-scheme/succeed/dotted-identity.ss +++ b/collects/tests/typed-scheme/succeed/dotted-identity.ss @@ -13,11 +13,6 @@ ((f z) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18) -#; #{(f z) :: (Integer * -> Integer)} +(f z) -;; I don't believe the below should work, but it points out where that internal error is coming from. - -(: g (All (b ...) ( -> (b ... b -> Integer)))) -(define (g) (lambda xs 0)) - -(f (g)) \ No newline at end of file +#{(f z) :: (Integer * -> Integer)} diff --git a/collects/tests/typed-scheme/succeed/unholy-terror.ss b/collects/tests/typed-scheme/succeed/unholy-terror.ss index 4802241a42..93aa200f2c 100644 --- a/collects/tests/typed-scheme/succeed/unholy-terror.ss +++ b/collects/tests/typed-scheme/succeed/unholy-terror.ss @@ -1,5 +1,6 @@ #lang typed-scheme +#; (apply (plambda: (a ...) [ys : (a ... a -> Number) *] (lambda: [zs : a ... a] (map (lambda: ([y : (a ... a -> Number)]) @@ -9,7 +10,7 @@ (lambda: ([x : Number] [y : Number]) (- x y)) (lambda: ([x : Number] [y : Number]) (* x y)) (lambda: ([x : Number] [y : Number]) (/ x y)))) - +#; ((apply (plambda: (a ...) [ys : (a ... a -> Number) *] (lambda: [zs : a ... a] (map (lambda: ([y : (a ... a -> Number)]) @@ -21,10 +22,14 @@ (lambda: ([x : Number] [y : Number]) (/ x y)))) 3 4) +(apply (plambda: (a ...) [ys : (a ... a -> Number) *] + (lambda: [zs : a ... a] + (map (lambda: ([y : (a ... a -> Number)]) + (apply y zs)) + ys))) + (list + - * /)) (apply (plambda: (a ...) [ys : (a ... a -> Number) *] (lambda: [zs : a ... a] - (map (lambda: ([y : (a ... a -> Number)]) - (apply y zs)) - ys))) + #{(error 'foo) :: (Listof Number)})) (list + - * /)) \ No newline at end of file