(0000490)
|
pbone
|
2013-01-04 11:53
|
|
Bug271 is caused by the handling of multiple typeclass infos for the same
type where existentially typed variables are also present. When the
compiler knows that a typeclass info value is a constant it is allocated
statically on backends that support this. When the typeclass info value is
seen a second time (on any execution path) the previously created static
value is used for the typeclass info. However, if a predicate call's
arguments include both a constrained universally quantified variable, and an
existentially quantified variable, then polymorphism.m attempts to create a
new value, regardless of whether there is an existing value. When it
records the new value in the table of constant typeclass instance values, it
crashes as this key is already present. |
|