Files
mercury/tests/valid/agc_ite.m
Julien Fischer e631146960 Fix a failing test.
tests/valid/agc_ite.m:
    Avoid an ambiguity.
2021-07-28 01:32:43 +10:00

41 lines
1.0 KiB
Mathematica

%---------------------------------------------------------------------------%
% vim: ts=4 sw=4 et ft=mercury
%---------------------------------------------------------------------------%
%
% Regression test.
%
% Description of bug:
% The liveness of polymorphic type variables for accurate gc
% wasn't being computed correctly in the case of if-then-else.
%
% Symptom(s) of bug:
% A sanity check in liveness.m is failed.
%
% Software error: branches of if-then-else disagree on liveness
% Then: HeadVar__3 TypeInfo_for_Y
% Else: HeadVar__3 TypeInfo_for_X TypeInfo_for_Y
%
%
% Date bug existed: 19-June-1997
% Author: trd
:- module agc_ite.
:- interface.
:- import_module list.
:- pred filter_map(pred(X, Y)::in(pred(in, out) is semidet),
list(X)::in, list(Y)::out) is det.
:- implementation.
filter_map(_, [], []).
filter_map(Pred, [Head0 | Tail0], List) :-
( if call(Pred, Head0, Head) then
List = [Head | List1]
else
List = List1
),
agc_ite.filter_map(Pred, Tail0, List1).