%---------------------------------------------------------------------------%
% vim: ts=4 sw=4 et ft=mercury
%---------------------------------------------------------------------------%
%
% This is a regression test. The propagation solver approach to constraints
% based mode analysis was failing to consider implied modes and therefore
% failing, because the `in' mode of foo implied X wouldn't be produced,
% but the `out' mode of bar implied the call should produce it.

:- module mc_implied_modes.

:- interface.

:- import_module int.

:- pred foo(int::in, int::out) is nondet.

:- implementation.

foo(X, Y) :-
    bar(X, Y).

:- pred bar(int::out, int::out) is multi.

bar(1, 1).
bar(2, 2).
bar(3, 3).
bar(4, 4).
