diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2014-10-09 17:17:49 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2014-10-09 17:19:53 -0400 |
| commit | 7a07f2a78092b3381d44a86330eb2de364aafb95 (patch) | |
| tree | 2dc35b4c21dc7c383eef41001161452aba16a44c | |
| parent | 2bb0796ae27b3b1c0563f1779680e63b2ca322c3 (diff) | |
| download | rust-7a07f2a78092b3381d44a86330eb2de364aafb95.tar.gz rust-7a07f2a78092b3381d44a86330eb2de364aafb95.zip | |
Add a few more debug statements
| -rw-r--r-- | src/librustc/middle/traits/select.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/librustc/middle/traits/select.rs b/src/librustc/middle/traits/select.rs index 64931b49435..305528a9af8 100644 --- a/src/librustc/middle/traits/select.rs +++ b/src/librustc/middle/traits/select.rs @@ -109,6 +109,7 @@ enum BuiltinBoundConditions { AmbiguousBuiltin } +#[deriving(Show)] enum EvaluationResult { EvaluatedToOk, EvaluatedToErr, @@ -246,7 +247,9 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> { 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 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> { // 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 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> { .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; } |
