about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/types.rs8
-rw-r--r--tests/target/negative-bounds.rs11
2 files changed, 17 insertions, 2 deletions
diff --git a/src/types.rs b/src/types.rs
index 9ebe38cc25f..f548388ed8b 100644
--- a/src/types.rs
+++ b/src/types.rs
@@ -552,8 +552,12 @@ 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,
+                    ast::TraitBoundModifier::Negative => poly_trait_ref
+                        .rewrite(context, shape.offset_left(1)?)
+                        .map(|s| format!("!{}", s)),
+                    ast::TraitBoundModifier::MaybeConstNegative => poly_trait_ref
+                        .rewrite(context, shape.offset_left(8)?)
+                        .map(|s| format!("~const !{}", s)),
                 };
                 rewrite.map(|s| if has_paren { format!("({})", s) } else { s })
             }
diff --git a/tests/target/negative-bounds.rs b/tests/target/negative-bounds.rs
new file mode 100644
index 00000000000..4fb35cccf66
--- /dev/null
+++ b/tests/target/negative-bounds.rs
@@ -0,0 +1,11 @@
+fn negative()
+where
+    i32: !Copy,
+{
+}
+
+fn maybe_const_negative()
+where
+    i32: ~const !Copy,
+{
+}