diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs
index 297120da284..1c6810bdaf9 100644
--- a/src/librustdoc/html/format.rs
+++ b/src/librustdoc/html/format.rs
@@ -439,6 +439,7 @@ impl clean::GenericBound {
let modifier_str = match modifier {
hir::TraitBoundModifier::None => "",
hir::TraitBoundModifier::Maybe => "?",
+ hir::TraitBoundModifier::Negative => "!",
// ~const is experimental; do not display those bounds in rustdoc
hir::TraitBoundModifier::MaybeConst => "",
};
diff --git a/src/librustdoc/json/conversions.rs b/src/librustdoc/json/conversions.rs
index 62aab46fa7e..b5bebb70593 100644
--- a/src/librustdoc/json/conversions.rs
+++ b/src/librustdoc/json/conversions.rs
@@ -533,6 +533,10 @@ pub(crate) fn from_trait_bound_modifier(
None => TraitBoundModifier::None,
Maybe => TraitBoundModifier::Maybe,
MaybeConst => TraitBoundModifier::MaybeConst,
+ // FIXME(negative-bounds): This bound should be rendered negative, but
+ // since that's experimental, maybe let's not add it to the rustdoc json
+ // API just now...
+ Negative => TraitBoundModifier::None,
}
}
diff --git a/src/tools/rustfmt/src/types.rs b/src/tools/rustfmt/src/types.rs
index 01e2fb6e61e..9ebe38cc25f 100644
--- a/src/tools/rustfmt/src/types.rs
+++ b/src/tools/rustfmt/src/types.rs
@@ -552,6 +552,8 @@ impl Rewrite for ast::GenericBound {
ast::TraitBoundModifier::MaybeConstMaybe => poly_trait_ref
.rewrite(context, shape.offset_left(8)?)
.map(|s| format!("~const ?{}", s)),
+ rustc_ast::TraitBoundModifier::Negative
+ | rustc_ast::TraitBoundModifier::MaybeConstNegative => None,
};
rewrite.map(|s| if has_paren { format!("({})", s) } else { s })
}