Make valuesdots subtyping not cause contract violations.

original commit: 2533effb2fdc02e29f149cfc55767a26ff88fbf1
This commit is contained in:
Eric Dobson 2014-05-13 22:26:23 -07:00
parent 871f8a5ca3
commit d9c7180a00
2 changed files with 5 additions and 1 deletions

View File

@ -555,7 +555,9 @@
;; subtyping on values is pointwise
[((Values: vals1) (Values: vals2)) (subtypes* A0 vals1 vals2)]
[((ValuesDots: s-rs s-dty dbound) (ValuesDots: t-rs t-dty dbound))
(subtype* (subtypes* A0 s-rs t-rs) s-dty t-dty)]
(subtype-seq A0
(subtypes* s-rs t-rs)
(subtype* s-dty t-dty))]
[((Result: t (FilterSet: ft ff) o) (Result: t* (FilterSet: ft* ff*) o))
(subtype-seq A0
(subtype* t t*)

View File

@ -261,6 +261,8 @@
[FAIL (make-ListDots (-box (make-F 'a)) 'a) (-lst (-box Univ))]
[(make-ListDots (-> -Symbol (make-F 'a)) 'a) (-lst (-> -Symbol Univ))]
[FAIL (make-ValuesDots (list) -Symbol 'a) (make-ValuesDots (list (-result -String)) -String 'a)]
;; keyword function types
[(->key #:x -Symbol #f Univ) (->key Univ)]
[FAIL (->key #:x -Symbol #t Univ) (->key Univ)]