From b6fab335e28d278a0e57595740ed9067c4b87d15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr>
Date: Wed, 19 Dec 2018 16:17:52 +0100
Subject: [PATCH] [Ival] Removes an include in the BitwiseOperator module.

---
 src/kernel_services/abstract_interp/ival.ml | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/src/kernel_services/abstract_interp/ival.ml b/src/kernel_services/abstract_interp/ival.ml
index 2f193d562f9..ab8fea04807 100644
--- a/src/kernel_services/abstract_interp/ival.ml
+++ b/src/kernel_services/abstract_interp/ival.ml
@@ -2748,11 +2748,10 @@ let reduce_bit = function
 
 module BitwiseOperator (Op : BitOperator) =
 struct
-  include Op
 
   let backward (b : bit_value) = function
-    | On -> backward_on b
-    | Off -> backward_off b
+    | On -> Op.backward_on b
+    | Off -> Op.backward_off b
     | Both -> assert false
 
   (** Bit masks are composed of an array of significant bit values where index 0
@@ -2809,8 +2808,8 @@ struct
     (* whether n1 or n2 is greater, look if the sign bit oped with anything is
        not constant. If it is constant, then the highest bits are irrelevant. *)
     if n1_greater
-    then if forward Both (extract_sign v2) = Both then n1 else n2
-    else if forward (extract_sign v1) Both = Both then n2 else n1
+    then if Op.forward Both (extract_sign v2) = Both then n1 else n2
+    else if Op.forward (extract_sign v1) Both = Both then n2 else n1
 
   exception Do_not_fit_small_sets
 
@@ -2825,14 +2824,14 @@ struct
     let set_bit i acc (r, v1, v2) =
       let b1 = extract_bit i v1
       and b2 = extract_bit i v2 in
-      match forward b1 b2 with
+      match Op.forward b1 b2 with
       | On -> (set_bit_on ~size i r, v1, v2) :: acc
       | Off -> (r, v1, v2) :: acc
       | Both ->
-        let v1_off = reduce_bit i v1 (backward_off b2)
-        and v2_off = reduce_bit i v2 (backward_off b1) in
-        let v1_on = reduce_bit i v1 (backward_on b2)
-        and v2_on = reduce_bit i v2 (backward_on b1) in
+        let v1_off = reduce_bit i v1 (Op.backward_off b2)
+        and v2_off = reduce_bit i v2 (Op.backward_off b1) in
+        let v1_on = reduce_bit i v1 (Op.backward_on b2)
+        and v2_on = reduce_bit i v2 (Op.backward_on b1) in
         (set_bit_on ~size i r, v1_on, v2_on) :: (r, v1_off, v2_off) :: acc
     in
     let acc = ref (set_bit Sign [] (r, v1, v2)) in
@@ -2855,7 +2854,7 @@ struct
       let b1 = extract_bit i v1
       and b2 = extract_bit i v2 in
       let b, v1, v2 =
-        match forward b1 b2 with
+        match Op.forward b1 b2 with
         | On | Off as b -> b, v1, v2 (* Constant bit, no reduction. *)
         | Both ->
           (* Choose the best bit for the searched bound, and reduces [v1] and
-- 
GitLab