- // Grab the "TraitA + TraitB" from `impl TraitA + TraitB`,
- // by looking up the projections associated with the def_id.
- let substs = tcx.lift(&substs)
- .expect("could not lift for printing");
- let bounds = tcx.predicates_of(def_id).instantiate(tcx, substs);
-
- let mut first = true;
- let mut is_sized = false;
- write!(f, "impl")?;
- for predicate in bounds.predicates {
- if let Some(trait_ref) = predicate.to_opt_poly_trait_ref() {
- // Don't print +Sized, but rather +?Sized if absent.
- if Some(trait_ref.def_id()) == tcx.lang_items().sized_trait() {
- is_sized = true;
- continue;
- }
-
- print!(f, cx,
- write("{}", if first { " " } else { "+" }),
- print(trait_ref))?;
- first = false;
+ return Ok(());
+ }
+ // Grab the "TraitA + TraitB" from `impl TraitA + TraitB`,
+ // by looking up the projections associated with the def_id.
+ let substs = cx.tcx.lift(&substs)
+ .expect("could not lift for printing");
+ let bounds = cx.tcx.predicates_of(def_id).instantiate(cx.tcx, substs);
+
+ let mut first = true;
+ let mut is_sized = false;
+ write!(f, "impl")?;
+ for predicate in bounds.predicates {
+ if let Some(trait_ref) = predicate.to_opt_poly_trait_ref() {
+ // Don't print +Sized, but rather +?Sized if absent.
+ if Some(trait_ref.def_id()) == cx.tcx.lang_items().sized_trait() {
+ is_sized = true;
+ continue;