Summary
type-var unification for complex "pair" types not always right
Metadata
- Id: 3a661717aca1952f12b49fdd17d79f80428453cd
- Trac id: 761
- Type: defect
- Reporter: felix
- Owner: felix
- Cc:
- Status: closed
- Component: compiler
- Estimated difficulty:
- Resolution: fixed
- Priority: major
- Milestone: 4.9.0
- Version: 4.7.x
- Changetime: 2012-09-24 21:47:48 UTC
- Created: 2011-12-21 11:42:50 UTC
- Keywords: scrutinizer
Description
Consider:
(print (assq 'foo (the (pair (pair symbol fixnum) (pair (pair char fixnum) list)) x)))
Matching `(list-of (pair a b))` with the argument will unify a and b and then fail on the cdr of the pair type. This needs to be done analogous to a union type instead, so that multiple instantiations of the type variables are handled.
Changes and comments
[2012-01-17 11:39:28 UTC] felix set milestone to 4.8.0
[2012-01-30 08:38:56 UTC] felix changed status from new to closed
[2012-01-30 08:38:56 UTC] felix set resolution to fixed
[2012-09-24 21:47:48 UTC] felix changed milestone from 4.8.0 to 4.9.0
[2012-09-24 21:47:48 UTC] felix wrote:
Milestone 4.8.0 deleted