Fix bug #241: a typo was preventing require_semidet scopes from being

Branches: main, 11.07

Fix bug #241: a typo was preventing require_semidet scopes from being
recognised.

compiler/prog_io.m;
	Fix a typo: s/require_semi/require_semidet/

tests/valid/Mmakefile:
tests/valid/require_bug.m:
	Add a test the above.
This commit is contained in:
Julien Fischer
2011-12-03 13:35:16 +00:00
parent 71fda0b7f8
commit 05ce757fdf
3 changed files with 18 additions and 1 deletions

View File

@@ -568,7 +568,7 @@ parse_goal_2(Functor, Args, Context, ContextPieces, MaybeGoal, !VarSet) :-
Functor = "require_det",
Detism = detism_det
;
Functor = "require_semi",
Functor = "require_semidet",
Detism = detism_semi
;
Functor = "require_multi",

View File

@@ -217,6 +217,7 @@ OTHER_PROGS= \
record_syntax_bug_5 \
recursive_no_tag_type \
reg_bug \
require_bug \
same_length_2 \
semidet_disj \
shape_type \

16
tests/valid/require_bug.m Normal file
View File

@@ -0,0 +1,16 @@
% rotd-2011-12-03 nad before didn't recongise the require_semidet
% scope.
:- module require_bug.
:- interface.
:- pred foo(int::out, int::out) is failure.
:- implementation.
foo(Y, Z) :-
require_det true,
require_semidet semidet_succeed,
require_multi (Y = 1; Y = 2),
require_nondet ((Z = 1; Z = 2), semidet_succeed),
require_failure false.