From 5b1475435a1719790f0aa76f8701f9bbc04865d9 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Fri, 9 Feb 2018 00:09:34 -0700 Subject: [PATCH] fix crashes caused by inlined optimization. --- src/prolog/ast.rs | 1 - src/tests.rs | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/prolog/ast.rs b/src/prolog/ast.rs index 8c419f93..4d82a194 100644 --- a/src/prolog/ast.rs +++ b/src/prolog/ast.rs @@ -900,7 +900,6 @@ impl ControlInstruction { &ControlInstruction::GotoExecute(..) => true, &ControlInstruction::GroundCall => true, &ControlInstruction::GroundExecute => true, - &ControlInstruction::Proceed => true, &ControlInstruction::IsCall(..) => true, &ControlInstruction::IsExecute(..) => true, &ControlInstruction::JmpByCall(..) => true, diff --git a/src/tests.rs b/src/tests.rs index 07ddd886..c4382421 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -1297,6 +1297,7 @@ fn test_queries_on_builtins() assert_prolog_failure!(&mut wam, "?- float(atom)."); assert_prolog_failure!(&mut wam, "?- float(structure(functor))."); assert_prolog_failure!(&mut wam, "?- float([1,2,3])."); + assert_prolog_failure!(&mut wam, "?- float([1,2,X])."); assert_prolog_failure!(&mut wam, "?- X is 3 rdiv 4, float(X)."); assert_prolog_success!(&mut wam, "?- X is 3 rdiv 4, rational(X)."); @@ -1305,6 +1306,7 @@ fn test_queries_on_builtins() assert_prolog_failure!(&mut wam, "?- rational(atom)."); assert_prolog_failure!(&mut wam, "?- rational(structure(functor))."); assert_prolog_failure!(&mut wam, "?- rational([1,2,3])."); + assert_prolog_failure!(&mut wam, "?- rational([1,2,X])."); assert_prolog_success!(&mut wam, "?- compound(functor(compound))."); assert_prolog_failure!(&mut wam, "?- compound(3.14159269)."); @@ -1312,6 +1314,7 @@ fn test_queries_on_builtins() assert_prolog_failure!(&mut wam, "?- compound(\"sdfsa\")."); assert_prolog_failure!(&mut wam, "?- compound(atom)."); assert_prolog_failure!(&mut wam, "?- compound([1,2,3])."); + assert_prolog_failure!(&mut wam, "?- compound([1,2,X])."); assert_prolog_failure!(&mut wam, "?- string(functor(string))."); assert_prolog_failure!(&mut wam, "?- string(3.14159269)."); @@ -1319,6 +1322,7 @@ fn test_queries_on_builtins() assert_prolog_success!(&mut wam, "?- string(\"sdfsa\")."); assert_prolog_failure!(&mut wam, "?- string(atom)."); assert_prolog_failure!(&mut wam, "?- string([1,2,3])."); + assert_prolog_failure!(&mut wam, "?- string([1,2,X])."); assert_prolog_success!(&mut wam, "?- X = nonvar, nonvar(X)."); assert_prolog_failure!(&mut wam, "?- nonvar(X)."); @@ -1328,6 +1332,7 @@ fn test_queries_on_builtins() assert_prolog_success!(&mut wam, "?- nonvar(\"sdfsa\")."); assert_prolog_success!(&mut wam, "?- nonvar(atom)."); assert_prolog_success!(&mut wam, "?- nonvar([1,2,3])."); + assert_prolog_success!(&mut wam, "?- nonvar([1,2,X])."); assert_prolog_success!(&mut wam, "?- A = f(A), ground(f(f(A))), ground(f(A)), ground(A)."); assert_prolog_failure!(&mut wam, "?- B = f(A), ground(B)."); -- 2.54.0