[m-rev.] diff: alternative fix for bug 264 test case

Mark Brown mark at mercurylang.org
Sun Nov 22 17:13:51 AEDT 2015


On Sun, Nov 22, 2015 at 5:11 PM, Mark Brown <mark at mercurylang.org> wrote:
> On Sat, Nov 21, 2015 at 1:59 PM, Mark Brown <mark at mercurylang.org> wrote:
>> While this fixes the test case for the bug, but there may be similar
>> cases that still fail. I think the abstract merge and unify algorithms
>> in inst_util.m need to be checked to ensure that they are properly
>> adhering to the meaning of the ho_inst_info values.
>
> I've now checked these. Abstract unify is not a problem, but merge had
> a similar bug to the ones in inst matching; see the attached diff,
> which has been committed.
>
> With the existing workaround, the test case in this diff gives the
> following output:

I meant with the existing workaround *removed*.

>
> default_ho_inst_2.m:033: In clause for `main(di, uo)':
> default_ho_inst_2.m:033:   mode mismatch in disjunction.
> default_ho_inst_2.m:033:   The variable `F' has these instantiation states:
> default_ho_inst_2.m:033:     line 31: unique(default_ho_inst_2.foo(/* unique
> default_ho_inst_2.m:033:     */(func((ground >> ground)) = (free >> ground) is
> default_ho_inst_2.m:033:     semidet)))
> default_ho_inst_2.m:033:     line 33: ground
>
> Mark



More information about the reviews mailing list