From: Nicolas Luck Date: Fri, 21 Jul 2023 15:07:40 +0000 (+0200) Subject: Explicitly dereference pointer to avoid calling neg() on reference X-Git-Tag: v0.9.2~23^2^2~5 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=b1963864d2d66f9245e90d6efd2af4d7a0ab3e50;p=scryer-prolog.git Explicitly dereference pointer to avoid calling neg() on reference --- diff --git a/src/parser/parser.rs b/src/parser/parser.rs index 20f53e5b..5d637e02 100644 --- a/src/parser/parser.rs +++ b/src/parser/parser.rs @@ -959,12 +959,14 @@ impl<'a, R: CharRead> Parser<'a, R> { fn shift_token(&mut self, token: Token, op_dir: &CompositeOpDir) -> Result<(), ParserError> { fn negate_int_rc(mut t: TypedArenaPtr) -> TypedArenaPtr { - let mut data = t.neg(); + let i: Integer = (*t).clone(); + let mut data = i.neg(); TypedArenaPtr::new(&mut data) } - fn negate_rat_rc(mut t: TypedArenaPtr) -> TypedArenaPtr { - let mut data = t.neg(); + fn negate_rat_rc(t: TypedArenaPtr) -> TypedArenaPtr { + let r: Rational = (*t).clone(); + let mut data = r.neg(); TypedArenaPtr::new(&mut data) }