]> Repositorios git - scryer-prolog.git/commitdiff
Removed value method and use deref to get type
authorFayeed Pawaskar <[email protected]>
Sun, 10 Sep 2023 16:10:22 +0000 (21:40 +0530)
committerFayeed Pawaskar <[email protected]>
Sun, 10 Sep 2023 16:10:22 +0000 (21:40 +0530)
src/arena.rs
src/arithmetic.rs
src/indexing.rs
src/machine/arithmetic_ops.rs
src/machine/heap.rs
src/machine/loader.rs
src/machine/machine_state.rs
src/machine/machine_state_impl.rs
src/machine/preprocessor.rs
src/machine/system_calls.rs
src/machine/unify.rs

index 8a12fdf3200868d4aa96ae9907ffc44c82b4a6f6..9434b28d76cc06f75a55d2681345bf3c28232265 100644 (file)
@@ -187,12 +187,6 @@ impl ArenaHeader {
 #[derive(Debug)]
 pub struct TypedArenaPtr<T: ?Sized>(ptr::NonNull<T>);
 
-impl TypedArenaPtr<Integer> {
-    pub fn value(&self) -> Integer {
-        unsafe { self.0.as_ref().clone() }
-    }
-}
-
 impl<T: ?Sized + PartialOrd> PartialOrd for TypedArenaPtr<T> {
     fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
         (**self).partial_cmp(&**other)
index d3d97c4d00034120d0808d631986990c505d188f..a13510b7cd934a7f41824d4f3a3f193211a8d22f 100644 (file)
@@ -372,7 +372,7 @@ impl<'a> ArithmeticEvaluator<'a> {
 pub(crate) fn rnd_i<'a>(n: &'a Number, arena: &mut Arena) -> Number {
     match n {
         &Number::Integer(i) => {
-            let result = i.value().try_into();
+            let result = (&*i).try_into();
             if let Ok(value) = result{
                 fixnum!(Number, value, arena)
             } else {
index 67a2b5e7688d13ce1669d96742a2c588d1dbed88..54beced1b24b3c508f2f953aaaf5b8c510bf0a4f 100644 (file)
@@ -1116,7 +1116,7 @@ pub(crate) fn constant_key_alternatives(
         }
         */
         Literal::Integer(ref n) => {
-            let result = n.value().try_into();
+            let result = (&**n).try_into();
             if let Ok(value) = result {
                 Fixnum::build_with_checked(value).map(|n| {
                     constants.push(Literal::Fixnum(n));
index 80b4153fd9c068b4b459248f77009d45d0f95b19..da2f28d6d5b2cecfcb16cb435bf7bc9b3c7f9632 100644 (file)
@@ -614,7 +614,7 @@ pub(crate) fn idiv(n1: Number, n2: Number, arena: &mut Arena) -> Result<Number,
                 Err(zero_divisor_eval_error(stub_gen))
             } else {
                 Ok(Number::arena_from(
-                    <(Integer, Integer)>::from(n1.value().div_rem(&*n2)).0,
+                    <(Integer, Integer)>::from((&*n1).div_rem(&*n2)).0,
                     arena,
                 ))
             }
@@ -668,7 +668,7 @@ pub(crate) fn shr(n1: Number, n2: Number, arena: &mut Arena) -> Result<Number, M
         (Number::Fixnum(n1), Number::Integer(n2)) => {
             let n1 = Integer::from(n1.get_num());
 
-            let result: Result<usize, _> = n2.value().try_into();
+            let result: Result<usize, _> = (&*n2).try_into();
 
             match result {
                 Ok(n2) => {
@@ -686,7 +686,7 @@ pub(crate) fn shr(n1: Number, n2: Number, arena: &mut Arena) -> Result<Number, M
                },
         },
         (Number::Integer(n1), Number::Integer(n2)) => {
-            let result: Result<usize, _> = n2.value().try_into();
+            let result: Result<usize, _> = (&*n2).try_into();
 
             match result {
                 Ok(n2) => {
@@ -729,7 +729,7 @@ pub(crate) fn shl(n1: Number, n2: Number, arena: &mut Arena) -> Result<Number, M
         (Number::Fixnum(n1), Number::Integer(n2)) => {
             let n1 = Integer::from(n1.get_num());
 
-            match n2.value().try_into() as Result<u32, _> {
+            match (&*n2).try_into() as Result<u32, _> {
                 Ok(n2) => {
                     let n1: u64 = n1.try_into().unwrap();
                     Ok(Number::arena_from(n1 << n2, arena))
@@ -745,9 +745,9 @@ pub(crate) fn shl(n1: Number, n2: Number, arena: &mut Arena) -> Result<Number, M
                        Ok(Number::arena_from(Integer::from(&*n1 << usize::max_value()),arena))
                    }
         },
-        (Number::Integer(n1), Number::Integer(n2)) => match n2.value().try_into() as Result<u32, _> {
+        (Number::Integer(n1), Number::Integer(n2)) => match (&*n2).try_into() as Result<u32, _> {
             Ok(n2) => {
-                let n1: u64 = n1.value().try_into().unwrap();
+                let n1: u64 = (&*n1).try_into().unwrap();
                 Ok(Number::arena_from(Integer::from(n1 << n2), arena))
             },
             _ => {
@@ -881,7 +881,7 @@ pub(crate) fn modulus(x: Number, y: Number, arena: &mut Arena) -> Result<Number,
             } else {
                 let n2 = Integer::from(n2_i);
                 Ok(Number::arena_from(
-                    <(Integer, Integer)>::from(n1.value().div_rem(&n2)).1,
+                    <(Integer, Integer)>::from((&*n1).div_rem(&n2)).1,
                     arena,
                 ))
             }
@@ -891,7 +891,7 @@ pub(crate) fn modulus(x: Number, y: Number, arena: &mut Arena) -> Result<Number,
                 Err(zero_divisor_eval_error(stub_gen))
             } else {
                 Ok(Number::arena_from(
-                    <(Integer, Integer)>::from(x.value().div_rem(&*y)).1,
+                    <(Integer, Integer)>::from((&*x).div_rem(&*y)).1,
                     arena,
                 ))
             }
@@ -980,7 +980,7 @@ pub(crate) fn gcd(n1: Number, n2: Number, arena: &mut Arena) -> Result<Number, M
         }
         (Number::Integer(n1), Number::Integer(n2)) => {
             let n1_clone: Integer = (*n1).clone();
-            let n2: isize = n2.value().try_into().unwrap();
+            let n2: isize = (&*n2).try_into().unwrap();
             Ok(Number::arena_from(Integer::from(n1_clone.gcd(&Integer::from(n2))) as IBig, arena))
         }
         (Number::Float(f), _) | (_, Number::Float(f)) => {
index 1fc757d128f6cc8e0cd9df56f56ca30e688b655d..c479162e1c1ebbc8e6ca37c1120739053eb276d9 100644 (file)
@@ -259,7 +259,7 @@ pub(crate) fn to_local_code_ptr(heap: &Heap, addr: HeapCellValue) -> Option<usiz
         match Number::try_from(heap[s]) {
             Ok(Number::Fixnum(n)) => usize::try_from(n.get_num()).ok(),
             Ok(Number::Integer(n)) => {
-                let value: usize = n.value().try_into().unwrap();
+                let value: usize = (&*n).try_into().unwrap();
                 Some(value)
             },
             _ => None,
index e51aa23c87bdef152c39eaaea7cd0fab676e6053..a25804924f585211c23cd1f09cbb9cce6d6cee92 100644 (file)
@@ -1653,7 +1653,7 @@ impl Machine {
         let arity = self.deref_register(3);
         let arity = match Number::try_from(arity) {
             Ok(Number::Integer(n)) if &*n >= &Integer::from(0) && &*n <= &Integer::from(MAX_ARITY) => {
-                let value: usize = n.value().try_into().unwrap();
+                let value: usize = (&*n).try_into().unwrap();
                 Ok(value)
             },
             Ok(Number::Fixnum(n)) if n.get_num() >= 0 && n.get_num() <= MAX_ARITY as i64 => {
@@ -2230,7 +2230,7 @@ impl Machine {
 
         let target_pos = match Number::try_from(target_pos) {
             Ok(Number::Integer(n)) => {
-                let value: usize = n.value().try_into().unwrap();
+                let value: usize = (&*n).try_into().unwrap();
                 value
             },
             Ok(Number::Fixnum(n)) => usize::try_from(n.get_num()).unwrap(),
index 47911e9af6e515378b65879dfc7085bd92d02746..b8f0a7a406a31842b37e1453f74300213addbdbf 100644 (file)
@@ -872,7 +872,7 @@ impl MachineState {
                         }
                     }
                     Ok(Number::Integer(n)) => {
-                        let result = n.value().try_into();
+                        let result = (&*n).try_into();
 
                         if let Ok(value) = result {
                             printer.max_depth = value;
index 854c7152bb5e0249a92aeedf3c6f2dedd19cc5e5..90adee3832c9c53b41f710c52b7b160662f92266 100644 (file)
@@ -1183,7 +1183,7 @@ impl MachineState {
                 let n = match n {
                     Number::Fixnum(n) => n.get_num() as usize,
                     Number::Integer(n) if (*n).num_ge(&0) && (*n).num_le(&std::usize::MAX) => {
-                        let value: usize = n.value().try_into().unwrap();
+                        let value: usize = (&*n).try_into().unwrap();
                         value
                     },
                     _ => {
@@ -1408,7 +1408,7 @@ impl MachineState {
                     },
                     Ok(Number::Fixnum(n)) => n.get_num(),
                     Ok(Number::Integer(n)) => {
-                        let value: i64 = n.value().try_into().unwrap();
+                        let value: i64 = (&*n).try_into().unwrap();
                         value
                     },
                     Err(_) => {
@@ -1691,7 +1691,7 @@ impl MachineState {
                             Err(_) => {}
                         },
                         Ok(Number::Integer(n)) => {
-                            let b: u8 = n.value().try_into().unwrap();
+                            let b: u8 = (&*n).try_into().unwrap();
                             
                             bytes.push(b);
                         }
index cc831d9496fb3b9d958d3f408541de85aec01ef8..f7fa110feed75dff9280ef6b138e2438342ef90e 100644 (file)
@@ -66,7 +66,7 @@ fn setup_predicate_indicator(term: &mut Term) -> Result<PredicateKey, Compilatio
 
             let arity = match arity {
                 Term::Literal(_, Literal::Integer(n)) => {
-                    let value: usize = n.value().try_into().unwrap();
+                    let value: usize = (&*n).try_into().unwrap();
                     Some(value)
                 },
                 Term::Literal(_, Literal::Fixnum(n)) => usize::try_from(n.get_num()).ok(),
index 96ccd59b799aba5615a61fa15a144d723610f525..609bcdcd081b8fe8052fe58b4e81ac45636be626 100644 (file)
@@ -751,7 +751,7 @@ impl MachineState {
             let max_steps_n = match max_steps {
                 Ok(Number::Fixnum(n)) => Some(n.get_num()),
                 Ok(Number::Integer(n)) => {
-                    let value: i64 = n.value().try_into().unwrap();
+                    let value: i64 = (&*n).try_into().unwrap();
 
                     Some(value)
                 },
@@ -1116,7 +1116,7 @@ impl MachineState {
                     }
                 }
                 Ok(Number::Integer(n)) => {
-                    let n: u32 = n.value().try_into().unwrap();
+                    let n: u32 = (&*n).try_into().unwrap();
                     if let Some(c) = std::char::from_u32(n) {
                         string.push(c);
                         continue;
@@ -1763,7 +1763,7 @@ impl Machine {
         let n = match Number::try_from(reg) {
             Ok(Number::Fixnum(n)) => usize::try_from(n.get_num()).ok(),
             Ok(Number::Integer(n)) => {
-                let value: usize = n.value().try_into().unwrap();
+                let value: usize = (&*n).try_into().unwrap();
                 Some(value)
             },
             _ => {
@@ -2478,7 +2478,7 @@ impl Machine {
             addr if addr.is_var() => addr,
             addr => match Number::try_from(addr) {
                 Ok(Number::Integer(n)) => {
-                    let result: Result<u8, _> = n.value().try_into();
+                    let result: Result<u8, _> = (&*n).try_into();
                     if let Ok(value) = result {
                         fixnum_as_cell!(Fixnum::build_with(value as i64))
                     } else {
@@ -2676,7 +2676,7 @@ impl Machine {
             _ => {
                 match Number::try_from(a2) {
                     Ok(Number::Integer(n)) => {
-                        let n: u32 = n.value().try_into().unwrap();
+                        let n: u32 = (&*n).try_into().unwrap();
 
                         let n = std::char::from_u32(n).and_then(|_| Some(n));
 
@@ -2846,7 +2846,7 @@ impl Machine {
             _ => {
                 match Number::try_from(a2) {
                     Ok(Number::Integer(n)) => {
-                        let n: u32 = n.value().try_into().unwrap();
+                        let n: u32 = (&*n).try_into().unwrap();
                         let n = std::char::from_u32(n);
                         let c = match n {
                             Some(c) => c,
@@ -3083,7 +3083,7 @@ impl Machine {
         } else {
             match Number::try_from(addr) {
                 Ok(Number::Integer(n)) => {
-                    let n: u32 = n.value().try_into().unwrap();
+                    let n: u32 = (&*n).try_into().unwrap();
                     let n = char::try_from(n);
                     if let Some(c) = n.ok() {
                         write!(&mut stream, "{}", c).unwrap();
@@ -3222,7 +3222,7 @@ impl Machine {
         } else {
             match Number::try_from(addr) {
                 Ok(Number::Integer(n)) => {
-                    let n: u8 = n.value().try_into().unwrap();
+                    let n: u8 = (&*n).try_into().unwrap();
                     
                     match n {
                         nb => {
@@ -3307,7 +3307,7 @@ impl Machine {
                     fixnum_as_cell!(Fixnum::build_with(-1))
                 }
                 Ok(Number::Integer(n)) => {
-                    let n: Result<u8, _> = n.value().try_into();
+                    let n: Result<u8, _> = (&*n).try_into();
 
                     if let Ok(value) = n {
                         fixnum_as_cell!(Fixnum::build_with(value as i64))
@@ -3463,7 +3463,7 @@ impl Machine {
 
         let num = match Number::try_from(self.deref_register(2)) {
             Ok(Number::Fixnum(n)) => usize::try_from(n.get_num()).unwrap(),
-            Ok(Number::Integer(n)) => match n.value().try_into() as Result<usize, _> {
+            Ok(Number::Integer(n)) => match (&*n).try_into() as Result<usize, _> {
                 Ok(u) => {
                     u
                 }
@@ -3563,7 +3563,7 @@ impl Machine {
         } else {
             match Number::try_from(addr) {
                 Ok(Number::Integer(n)) => {
-                    let n: u32 = n.value().try_into().unwrap();
+                    let n: u32 = (&*n).try_into().unwrap();
                     let n = std::char::from_u32(n);
 
                     if let Some(n) = n {
@@ -3914,7 +3914,7 @@ impl Machine {
             let arity = match Number::try_from(arity) {
                 Ok(Number::Fixnum(n)) => Some(n.get_num() as usize),
                 Ok(Number::Integer(n)) => {
-                    let value: usize = n.value().try_into().unwrap();
+                    let value: usize = (&*n).try_into().unwrap();
                     Some(value)
                 },
                 _ => None,
@@ -4240,7 +4240,7 @@ impl Machine {
 
         let n = match Number::try_from(len) {
             Ok(Number::Fixnum(n)) => n.get_num() as usize,
-            Ok(Number::Integer(n)) => match n.value().try_into() as Result<usize, _> {
+            Ok(Number::Integer(n)) => match (&*n).try_into() as Result<usize, _> {
                 Ok(n) => n,
                 Err(_) => {
                     let err = self.machine_st.resource_error(len);
@@ -4525,7 +4525,7 @@ impl Machine {
        let status_code: u16 = match Number::try_from(status_code) {
            Ok(Number::Fixnum(n)) => n.get_num() as u16,
            Ok(Number::Integer(n)) => {
-            let n: Result<u16, _> = n.value().try_into();
+            let n: Result<u16, _> = (&*n).try_into();
             
             if let Ok(value) = n {
                 value
@@ -4806,7 +4806,7 @@ impl Machine {
 
         let priority = match Number::try_from(priority) {
             Ok(Number::Integer(n)) => {
-                let n: u16 = n.value().try_into().unwrap();
+                let n: u16 = (&*n).try_into().unwrap();
                 n
             },
             Ok(Number::Fixnum(n)) => u16::try_from(n.get_num()).unwrap(),
@@ -4959,7 +4959,7 @@ impl Machine {
 
         let b = match Number::try_from(addr) {
             Ok(Number::Integer(n)) => {
-                let value: usize = n.value().try_into().unwrap();
+                let value: usize = (&*n).try_into().unwrap();
                 Some(value)
             },
             Ok(Number::Fixnum(n)) => usize::try_from(n.get_num()).ok(),
@@ -5331,7 +5331,7 @@ impl Machine {
         let code = match Number::try_from(code) {
             Ok(Number::Fixnum(n)) => u8::try_from(n.get_num()).unwrap(),
             Ok(Number::Integer(n)) => {
-                let n: u8 = n.value().try_into().unwrap();
+                let n: u8 = (&*n).try_into().unwrap();
                 n
             },
             Ok(Number::Rational(r)) => {
@@ -5370,7 +5370,7 @@ impl Machine {
         let n = match Number::try_from(a2) {
             Ok(Number::Fixnum(bp)) => bp.get_num() as usize,
             Ok(Number::Integer(n)) => {
-                let value: usize = n.value().try_into().unwrap();
+                let value: usize = (&*n).try_into().unwrap();
                 value
             },
             _ => {
@@ -5417,7 +5417,7 @@ impl Machine {
         let arity = match Number::try_from(a3) {
             Ok(Number::Fixnum(n))  => n.get_num() as usize,
             Ok(Number::Integer(n)) => {
-                let result = n.value().try_into();
+                let result = (&*n).try_into();
 
                 if let Ok(value) = result {
                     value
@@ -6065,7 +6065,7 @@ impl Machine {
                 let _: StdRng = SeedableRng::seed_from_u64(n);
             },
             Ok(Number::Integer(n)) => {
-                let n: u64 = n.value().try_into().unwrap();
+                let n: u64 = (&*n).try_into().unwrap();
                 let _: StdRng = SeedableRng::seed_from_u64(n);
             },
             Ok(Number::Rational(n)) => {
@@ -6476,7 +6476,7 @@ impl Machine {
         let position = match Number::try_from(position) {
             Ok(Number::Fixnum(n)) => n.get_num() as u64,
             Ok(Number::Integer(n)) => {
-                let n: Result<u64, _> = n.value().try_into();
+                let n: Result<u64, _> = (&*n).try_into();
                 if let Ok(n) = n {
                     n
                 } else {
@@ -6754,7 +6754,7 @@ impl Machine {
         let arity = match Number::try_from(arity) {
             Ok(Number::Fixnum(n)) => n.get_num() as usize,
             Ok(Number::Integer(n)) => {
-                let value: usize = n.value().try_into().unwrap();
+                let value: usize = (&*n).try_into().unwrap();
                 value
             },
             _ => {
@@ -6812,7 +6812,7 @@ impl Machine {
         let index_ptr = match Number::try_from(index_ptr) {
             Ok(Number::Fixnum(n)) => n.get_num() as usize,
             Ok(Number::Integer(n)) => {
-                let value: usize = n.value().try_into().unwrap();
+                let value: usize = (&*n).try_into().unwrap();
                 value
             },
             _ => {
@@ -7116,7 +7116,7 @@ impl Machine {
 
         let length = match Number::try_from(length) {
             Ok(Number::Fixnum(n)) => usize::try_from(n.get_num()).unwrap(),
-            Ok(Number::Integer(n)) => match n.value().try_into() as Result<usize, _> {
+            Ok(Number::Integer(n)) => match (&*n).try_into() as Result<usize, _> {
                 Ok(u) => u,
                 _ => {
                     self.machine_st.fail = true;
@@ -7179,7 +7179,7 @@ impl Machine {
         let iterations = match Number::try_from(iterations) {
             Ok(Number::Fixnum(n)) => u64::try_from(n.get_num()).unwrap(),
             Ok(Number::Integer(n)) => {
-                let n: Result<u64, _> = n.value().try_into(); 
+                let n: Result<u64, _> = (&*n).try_into(); 
                 match n {
                     Ok(i) => i,
                     _ => {
@@ -7754,7 +7754,7 @@ impl Machine {
             }
             Ok(Number::Integer(n)) => {
                 let value: usize = if n.sign() == Sign::Positive {
-                    UBig::from(n.value().into_parts().1).count_ones()
+                    UBig::from((&*n).clone().into_parts().1).count_ones()
                 } else { 0 };
                 Number::arena_from(value, &mut self.machine_st.arena)
             }
index ed14f296a9215c1f05613a6cfedd37a0e24bc8f4..64a9ee0433b547002a62e0e457bbd4d23b2828b2 100644 (file)
@@ -474,8 +474,8 @@ pub(crate) trait Unifier: DerefMut<Target = MachineState> {
         match Number::try_from(value) {
             Ok(n2) => match n2 {
                 Number::Fixnum(n2) if (*n1).num_eq(&n2.get_num()) => {}
-                Number::Integer(n2) if (*n1).num_eq(&n2.value()) => {}
-                Number::Rational(n2) if (*n2).num_eq(&n1.value()) => {}
+                Number::Integer(n2) if (*n1).num_eq(&*n2) => {}
+                Number::Rational(n2) if (*n2).num_eq(&*n1) => {}
                 _ => {
                     self.fail = true;
                 }
@@ -495,7 +495,7 @@ pub(crate) trait Unifier: DerefMut<Target = MachineState> {
         match Number::try_from(value) {
             Ok(n2) => match n2 {
                 Number::Fixnum(n2) if (*n1).num_eq(&Integer::from(n2.get_num())) => {}
-                Number::Integer(n2) if (*n1).num_eq(&n2.value()) => {}
+                Number::Integer(n2) if (*n1).num_eq(&*n2) => {}
                 Number::Rational(n2) if n1 == n2 => {}
                 _ => {
                     self.fail = true;