From: Mark Thom Date: Mon, 15 Mar 2021 20:22:54 +0000 (-0600) Subject: don't warn about overwriting a clause asserted to a dynamic predicate whose clauses... X-Git-Tag: v0.9.0~128 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=914fb09ed07a652aff849f4212e5fffbcc6ff816;p=scryer-prolog.git don't warn about overwriting a clause asserted to a dynamic predicate whose clauses have all been retracted (#870) --- diff --git a/src/machine/compile.rs b/src/machine/compile.rs index eea744a2..b45b58e2 100644 --- a/src/machine/compile.rs +++ b/src/machine/compile.rs @@ -1297,6 +1297,7 @@ fn print_overwrite_warning( compilation_target: &CompilationTarget, code_ptr: IndexPtr, key: &PredicateKey, + is_dynamic: bool, ) { if let CompilationTarget::Module(ref module_name) = compilation_target { match module_name.as_str() { @@ -1307,6 +1308,7 @@ fn print_overwrite_warning( match code_ptr { IndexPtr::DynamicUndefined | IndexPtr::Undefined => return, + _ if is_dynamic => return, _ => {} } @@ -1460,7 +1462,12 @@ impl<'a> LoadState<'a> { } } - print_overwrite_warning(&predicates.compilation_target, code_index.get(), &key); + print_overwrite_warning( + &predicates.compilation_target, + code_index.get(), + &key, + settings.is_dynamic(), + ); set_code_index( &mut self.retraction_info,