Remove duplicate constraints when taking their meet.
This commit is contained in:
parent
3d43724e4c
commit
bd301912c0
|
@ -6,7 +6,9 @@
|
||||||
(utils tc-utils)
|
(utils tc-utils)
|
||||||
unstable/sequence unstable/hash
|
unstable/sequence unstable/hash
|
||||||
"signatures.rkt" "constraint-structs.rkt"
|
"signatures.rkt" "constraint-structs.rkt"
|
||||||
racket/match)
|
unstable/debug
|
||||||
|
racket/match
|
||||||
|
racket/list)
|
||||||
|
|
||||||
(import restrict^ dmap^)
|
(import restrict^ dmap^)
|
||||||
(export constraints^)
|
(export constraints^)
|
||||||
|
@ -67,8 +69,8 @@
|
||||||
[((struct cset (maps1)) (struct cset (maps2)))
|
[((struct cset (maps1)) (struct cset (maps2)))
|
||||||
(let ([maps (filter values
|
(let ([maps (filter values
|
||||||
(for*/list
|
(for*/list
|
||||||
([(map1 dmap1) (in-pairs maps1)]
|
([(map1 dmap1) (in-pairs (remove-duplicates maps1))]
|
||||||
[(map2 dmap2) (in-pairs maps2)])
|
[(map2 dmap2) (in-pairs (remove-duplicates maps2))])
|
||||||
(with-handlers ([exn:infer? (lambda (_) #f)])
|
(with-handlers ([exn:infer? (lambda (_) #f)])
|
||||||
(cons
|
(cons
|
||||||
(hash-union map1 map2 #:combine c-meet)
|
(hash-union map1 map2 #:combine c-meet)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user