diff --git a/tests/rustdoc-html/impl/impl-restriction-document-private.rs b/tests/rustdoc-html/impl/impl-restriction-document-private.rs
new file mode 100644
index 000000000000..6ea55eff54cf
--- /dev/null
+++ b/tests/rustdoc-html/impl/impl-restriction-document-private.rs
@@ -0,0 +1,15 @@
+//@ compile-flags: --document-private-items
+#![crate_name = "c"]
+#![feature(impl_restriction)]
+
+//@ matches c/trait.Foo.html '//*[@class="stab impl_restriction"]' \
+// 'This trait cannot be implemented outside c.$'
+//@ has c/trait.Foo.html '//*[@class="stab impl_restriction"]//code' 'c'
+pub impl(crate) trait Foo {}
+
+pub mod inner {
+ //@ matches c/inner/trait.Bar.html '//*[@class="stab impl_restriction"]' \
+ // 'This trait cannot be implemented outside c::inner.$'
+ //@ has c/inner/trait.Bar.html '//*[@class="stab impl_restriction"]//code' 'c::inner'
+ pub impl(self) trait Bar {}
+}
diff --git a/tests/rustdoc-html/impl/impl-restriction.rs b/tests/rustdoc-html/impl/impl-restriction.rs
new file mode 100644
index 000000000000..11df67425f9b
--- /dev/null
+++ b/tests/rustdoc-html/impl/impl-restriction.rs
@@ -0,0 +1,14 @@
+#![crate_name = "c"]
+#![feature(impl_restriction)]
+
+//@ matches c/trait.Foo.html '//*[@class="stab impl_restriction"]' \
+// 'This trait cannot be implemented outside c.$'
+//@ has c/trait.Foo.html '//*[@class="stab impl_restriction"]//code' 'c'
+pub impl(crate) trait Foo {}
+
+pub mod inner {
+ //@ matches c/inner/trait.Bar.html '//*[@class="stab impl_restriction"]' \
+ // 'This trait cannot be implemented outside c.$'
+ //@ has c/inner/trait.Bar.html '//*[@class="stab impl_restriction"]//code' 'c'
+ pub impl(self) trait Bar {}
+}