]> git.lizzy.rs Git - rust.git/commitdiff
Add a few more debug statements
authorNiko Matsakis <niko@alum.mit.edu>
Thu, 9 Oct 2014 21:17:49 +0000 (17:17 -0400)
committerNiko Matsakis <niko@alum.mit.edu>
Thu, 9 Oct 2014 21:19:53 +0000 (17:19 -0400)
src/librustc/middle/traits/select.rs

index 64931b4943572a39635bb50d763c1e9b1ec614db..305528a9af8fa95806eec0ab2e5eaee27607a4a3 100644 (file)
@@ -109,6 +109,7 @@ enum BuiltinBoundConditions {
     AmbiguousBuiltin
 }
 
+#[deriving(Show)]
 enum EvaluationResult {
     EvaluatedToOk,
     EvaluatedToErr,
@@ -246,7 +247,9 @@ fn evaluate_obligation_recursively(&mut self,
                obligation.repr(self.tcx()));
 
         let stack = self.push_stack(previous_stack.map(|x| x), obligation);
-        self.evaluate_stack(&stack)
+        let result = self.evaluate_stack(&stack);
+        debug!("result: {}", result);
+        result
     }
 
     fn evaluate_stack(&mut self,
@@ -259,6 +262,8 @@ fn evaluate_stack(&mut self,
         // that does provide an impl.
         let input_types = &stack.skol_trait_ref.substs.types;
         if input_types.iter().any(|&t| ty::type_is_skolemized(t)) {
+            debug!("evaluate_stack({}) --> unbound argument, must be ambiguous",
+                   stack.skol_trait_ref.repr(self.tcx()));
             return EvaluatedToAmbig;
         }
 
@@ -286,6 +291,8 @@ fn evaluate_stack(&mut self,
             .skip(1) // skip top-most frame
             .any(|prev| stack.skol_trait_ref == prev.skol_trait_ref)
         {
+            debug!("evaluate_stack({}) --> recursive",
+                   stack.skol_trait_ref.repr(self.tcx()));
             return EvaluatedToOk;
         }