Resolve names in overlap in TR. Closes PR11392.
original commit: 53ce20d3f9edc9d405a33a8fb2e031b67dad7a09
This commit is contained in:
parent
b911bd4d36
commit
536ed6c037
12
collects/tests/typed-racket/succeed/pr11392.rkt
Normal file
12
collects/tests/typed-racket/succeed/pr11392.rkt
Normal file
|
@ -0,0 +1,12 @@
|
|||
#lang typed/racket
|
||||
(struct: foo ((n : Number)))
|
||||
(struct: bar ((n : Number)))
|
||||
|
||||
|
||||
(define-type foobar (U foo bar))
|
||||
(define-predicate foobar? foobar)
|
||||
|
||||
(: baz ((List) -> "two"))
|
||||
|
||||
(define (baz x)
|
||||
(if (foobar? x) 2 "two"))
|
|
@ -26,6 +26,10 @@
|
|||
[(list (Name: n) (Name: n*))
|
||||
(or (free-identifier=? n n*)
|
||||
(overlap (resolve-once t1) (resolve-once t2)))]
|
||||
[(list _ (Name: _))
|
||||
(overlap t1 (resolve-once t2))]
|
||||
[(list (Name: _) _)
|
||||
(overlap (resolve-once t1) t2)]
|
||||
[(list (? Mu?) _) (overlap (unfold t1) t2)]
|
||||
[(list _ (? Mu?)) (overlap t1 (unfold t2))]
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user