about summary refs log tree commit diff
path: root/src/test/ui/rustdoc
diff options
context:
space:
mode:
authorJoshua Nelson <jyn514@gmail.com>2021-03-05 10:04:22 -0500
committerJoshua Nelson <jyn514@gmail.com>2021-03-08 09:17:04 -0500
commitbc1fbf55db9671be7bb04bbf5f68b48f8ee17b2e (patch)
tree52ebdd60eb1597aa9470cd71d2e371f9b367f7c0 /src/test/ui/rustdoc
parent66ec64ccf31883cd2c28d045912a76179c0c6ed2 (diff)
downloadrust-bc1fbf55db9671be7bb04bbf5f68b48f8ee17b2e.tar.gz
rust-bc1fbf55db9671be7bb04bbf5f68b48f8ee17b2e.zip
Move rustdoc UI tests into a subdirectory
This also adds a little leeway to the test limit.
Diffstat (limited to 'src/test/ui/rustdoc')
-rw-r--r--src/test/ui/rustdoc/README.md3
-rw-r--r--src/test/ui/rustdoc/cfg-rustdoc.rs6
-rw-r--r--src/test/ui/rustdoc/cfg-rustdoc.stderr9
-rw-r--r--src/test/ui/rustdoc/check-doc-alias-attr-location.rs25
-rw-r--r--src/test/ui/rustdoc/check-doc-alias-attr-location.stderr26
-rw-r--r--src/test/ui/rustdoc/check-doc-alias-attr.rs16
-rw-r--r--src/test/ui/rustdoc/check-doc-alias-attr.stderr58
-rw-r--r--src/test/ui/rustdoc/doc-alias-crate-level.rs8
-rw-r--r--src/test/ui/rustdoc/doc-alias-crate-level.stderr14
-rw-r--r--src/test/ui/rustdoc/doc-alias-same-name.rs4
-rw-r--r--src/test/ui/rustdoc/doc-alias-same-name.stderr8
-rw-r--r--src/test/ui/rustdoc/doc_keyword.rs12
-rw-r--r--src/test/ui/rustdoc/doc_keyword.stderr20
-rw-r--r--src/test/ui/rustdoc/unterminated-doc-comment.rs1
-rw-r--r--src/test/ui/rustdoc/unterminated-doc-comment.stderr9
15 files changed, 219 insertions, 0 deletions
diff --git a/src/test/ui/rustdoc/README.md b/src/test/ui/rustdoc/README.md
new file mode 100644
index 00000000000..1c98ab038ab
--- /dev/null
+++ b/src/test/ui/rustdoc/README.md
@@ -0,0 +1,3 @@
+This directory is for tests that have to do with rustdoc, but test the behavior
+of rustc. For example, rustc should not warn that an attribute rustdoc uses is
+unknown.
diff --git a/src/test/ui/rustdoc/cfg-rustdoc.rs b/src/test/ui/rustdoc/cfg-rustdoc.rs
new file mode 100644
index 00000000000..dd8e1ed97c4
--- /dev/null
+++ b/src/test/ui/rustdoc/cfg-rustdoc.rs
@@ -0,0 +1,6 @@
+#[cfg(doc)]
+pub struct Foo;
+
+fn main() {
+    let f = Foo; //~ ERROR
+}
diff --git a/src/test/ui/rustdoc/cfg-rustdoc.stderr b/src/test/ui/rustdoc/cfg-rustdoc.stderr
new file mode 100644
index 00000000000..c687d186989
--- /dev/null
+++ b/src/test/ui/rustdoc/cfg-rustdoc.stderr
@@ -0,0 +1,9 @@
+error[E0425]: cannot find value `Foo` in this scope
+  --> $DIR/cfg-rustdoc.rs:5:13
+   |
+LL |     let f = Foo;
+   |             ^^^ not found in this scope
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0425`.
diff --git a/src/test/ui/rustdoc/check-doc-alias-attr-location.rs b/src/test/ui/rustdoc/check-doc-alias-attr-location.rs
new file mode 100644
index 00000000000..007d2ae6506
--- /dev/null
+++ b/src/test/ui/rustdoc/check-doc-alias-attr-location.rs
@@ -0,0 +1,25 @@
+#![crate_type="lib"]
+
+pub struct Bar;
+pub trait Foo {
+    type X;
+    fn foo() -> Self::X;
+}
+
+#[doc(alias = "foo")] //~ ERROR
+extern "C" {}
+
+#[doc(alias = "bar")] //~ ERROR
+impl Bar {
+    #[doc(alias = "const")]
+    const A: u32 = 0;
+}
+
+#[doc(alias = "foobar")] //~ ERROR
+impl Foo for Bar {
+    #[doc(alias = "assoc")] //~ ERROR
+    type X = i32;
+    fn foo() -> Self::X {
+        0
+    }
+}
diff --git a/src/test/ui/rustdoc/check-doc-alias-attr-location.stderr b/src/test/ui/rustdoc/check-doc-alias-attr-location.stderr
new file mode 100644
index 00000000000..a66e9939eaf
--- /dev/null
+++ b/src/test/ui/rustdoc/check-doc-alias-attr-location.stderr
@@ -0,0 +1,26 @@
+error: `#[doc(alias = "...")]` isn't allowed on extern block
+  --> $DIR/check-doc-alias-attr-location.rs:9:7
+   |
+LL | #[doc(alias = "foo")]
+   |       ^^^^^^^^^^^^^
+
+error: `#[doc(alias = "...")]` isn't allowed on implementation block
+  --> $DIR/check-doc-alias-attr-location.rs:12:7
+   |
+LL | #[doc(alias = "bar")]
+   |       ^^^^^^^^^^^^^
+
+error: `#[doc(alias = "...")]` isn't allowed on implementation block
+  --> $DIR/check-doc-alias-attr-location.rs:18:7
+   |
+LL | #[doc(alias = "foobar")]
+   |       ^^^^^^^^^^^^^^^^
+
+error: `#[doc(alias = "...")]` isn't allowed on type alias in implementation block
+  --> $DIR/check-doc-alias-attr-location.rs:20:11
+   |
+LL |     #[doc(alias = "assoc")]
+   |           ^^^^^^^^^^^^^^^
+
+error: aborting due to 4 previous errors
+
diff --git a/src/test/ui/rustdoc/check-doc-alias-attr.rs b/src/test/ui/rustdoc/check-doc-alias-attr.rs
new file mode 100644
index 00000000000..912e35f9165
--- /dev/null
+++ b/src/test/ui/rustdoc/check-doc-alias-attr.rs
@@ -0,0 +1,16 @@
+#![crate_type = "lib"]
+
+#[doc(alias = "foo")] // ok!
+pub struct Bar;
+
+#[doc(alias)] //~ ERROR
+#[doc(alias = 0)] //~ ERROR
+#[doc(alias("bar"))] //~ ERROR
+#[doc(alias = "\"")] //~ ERROR
+#[doc(alias = "\n")] //~ ERROR
+#[doc(alias = "
+")] //~^ ERROR
+#[doc(alias = "\t")] //~ ERROR
+#[doc(alias = " hello")] //~ ERROR
+#[doc(alias = "hello ")] //~ ERROR
+pub struct Foo;
diff --git a/src/test/ui/rustdoc/check-doc-alias-attr.stderr b/src/test/ui/rustdoc/check-doc-alias-attr.stderr
new file mode 100644
index 00000000000..1c7fc83bb8d
--- /dev/null
+++ b/src/test/ui/rustdoc/check-doc-alias-attr.stderr
@@ -0,0 +1,58 @@
+error: doc alias attribute expects a string: #[doc(alias = "a")]
+  --> $DIR/check-doc-alias-attr.rs:6:7
+   |
+LL | #[doc(alias)]
+   |       ^^^^^
+
+error: doc alias attribute expects a string: #[doc(alias = "a")]
+  --> $DIR/check-doc-alias-attr.rs:7:7
+   |
+LL | #[doc(alias = 0)]
+   |       ^^^^^^^^^
+
+error: doc alias attribute expects a string: #[doc(alias = "a")]
+  --> $DIR/check-doc-alias-attr.rs:8:7
+   |
+LL | #[doc(alias("bar"))]
+   |       ^^^^^^^^^^^^
+
+error: '\"' character isn't allowed in `#[doc(alias = "...")]`
+  --> $DIR/check-doc-alias-attr.rs:9:15
+   |
+LL | #[doc(alias = "\"")]
+   |               ^^^^
+
+error: '\n' character isn't allowed in `#[doc(alias = "...")]`
+  --> $DIR/check-doc-alias-attr.rs:10:15
+   |
+LL | #[doc(alias = "\n")]
+   |               ^^^^
+
+error: '\n' character isn't allowed in `#[doc(alias = "...")]`
+  --> $DIR/check-doc-alias-attr.rs:11:15
+   |
+LL |   #[doc(alias = "
+   |  _______________^
+LL | | ")]
+   | |_^
+
+error: '\t' character isn't allowed in `#[doc(alias = "...")]`
+  --> $DIR/check-doc-alias-attr.rs:13:15
+   |
+LL | #[doc(alias = "\t")]
+   |               ^^^^
+
+error: `#[doc(alias = "...")]` cannot start or end with ' '
+  --> $DIR/check-doc-alias-attr.rs:14:15
+   |
+LL | #[doc(alias = " hello")]
+   |               ^^^^^^^^
+
+error: `#[doc(alias = "...")]` cannot start or end with ' '
+  --> $DIR/check-doc-alias-attr.rs:15:15
+   |
+LL | #[doc(alias = "hello ")]
+   |               ^^^^^^^^
+
+error: aborting due to 9 previous errors
+
diff --git a/src/test/ui/rustdoc/doc-alias-crate-level.rs b/src/test/ui/rustdoc/doc-alias-crate-level.rs
new file mode 100644
index 00000000000..c7783aae5ea
--- /dev/null
+++ b/src/test/ui/rustdoc/doc-alias-crate-level.rs
@@ -0,0 +1,8 @@
+// compile-flags: -Zdeduplicate-diagnostics=no
+
+#![crate_type = "lib"]
+
+#![doc(alias = "not working!")] //~ ERROR
+
+#[doc(alias = "shouldn't work!")] //~ ERROR
+pub struct Foo;
diff --git a/src/test/ui/rustdoc/doc-alias-crate-level.stderr b/src/test/ui/rustdoc/doc-alias-crate-level.stderr
new file mode 100644
index 00000000000..c0467514ae1
--- /dev/null
+++ b/src/test/ui/rustdoc/doc-alias-crate-level.stderr
@@ -0,0 +1,14 @@
+error: '\'' character isn't allowed in `#[doc(alias = "...")]`
+  --> $DIR/doc-alias-crate-level.rs:7:15
+   |
+LL | #[doc(alias = "shouldn't work!")]
+   |               ^^^^^^^^^^^^^^^^^
+
+error: `#![doc(alias = "...")]` isn't allowed as a crate level attribute
+  --> $DIR/doc-alias-crate-level.rs:5:8
+   |
+LL | #![doc(alias = "not working!")]
+   |        ^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/ui/rustdoc/doc-alias-same-name.rs b/src/test/ui/rustdoc/doc-alias-same-name.rs
new file mode 100644
index 00000000000..da97c267618
--- /dev/null
+++ b/src/test/ui/rustdoc/doc-alias-same-name.rs
@@ -0,0 +1,4 @@
+#![crate_type = "lib"]
+
+#[doc(alias = "Foo")] //~ ERROR
+pub struct Foo;
diff --git a/src/test/ui/rustdoc/doc-alias-same-name.stderr b/src/test/ui/rustdoc/doc-alias-same-name.stderr
new file mode 100644
index 00000000000..5ba09a2eae1
--- /dev/null
+++ b/src/test/ui/rustdoc/doc-alias-same-name.stderr
@@ -0,0 +1,8 @@
+error: `#[doc(alias = "...")]` is the same as the item's name
+  --> $DIR/doc-alias-same-name.rs:3:7
+   |
+LL | #[doc(alias = "Foo")]
+   |       ^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/rustdoc/doc_keyword.rs b/src/test/ui/rustdoc/doc_keyword.rs
new file mode 100644
index 00000000000..4c72e7e9684
--- /dev/null
+++ b/src/test/ui/rustdoc/doc_keyword.rs
@@ -0,0 +1,12 @@
+#![crate_type = "lib"]
+#![feature(doc_keyword)]
+
+#![doc(keyword = "hello")] //~ ERROR
+
+#[doc(keyword = "hell")] //~ ERROR
+mod foo {
+    fn hell() {}
+}
+
+#[doc(keyword = "hall")] //~ ERROR
+fn foo() {}
diff --git a/src/test/ui/rustdoc/doc_keyword.stderr b/src/test/ui/rustdoc/doc_keyword.stderr
new file mode 100644
index 00000000000..d72a876163e
--- /dev/null
+++ b/src/test/ui/rustdoc/doc_keyword.stderr
@@ -0,0 +1,20 @@
+error: `#[doc(keyword = "...")]` can only be used on empty modules
+  --> $DIR/doc_keyword.rs:6:7
+   |
+LL | #[doc(keyword = "hell")]
+   |       ^^^^^^^^^^^^^^^^
+
+error: `#[doc(keyword = "...")]` can only be used on modules
+  --> $DIR/doc_keyword.rs:11:7
+   |
+LL | #[doc(keyword = "hall")]
+   |       ^^^^^^^^^^^^^^^^
+
+error: `#![doc(keyword = "...")]` isn't allowed as a crate level attribute
+  --> $DIR/doc_keyword.rs:4:8
+   |
+LL | #![doc(keyword = "hello")]
+   |        ^^^^^^^^^^^^^^^^^
+
+error: aborting due to 3 previous errors
+
diff --git a/src/test/ui/rustdoc/unterminated-doc-comment.rs b/src/test/ui/rustdoc/unterminated-doc-comment.rs
new file mode 100644
index 00000000000..82546fe73da
--- /dev/null
+++ b/src/test/ui/rustdoc/unterminated-doc-comment.rs
@@ -0,0 +1 @@
+/*! //~ ERROR E0758
diff --git a/src/test/ui/rustdoc/unterminated-doc-comment.stderr b/src/test/ui/rustdoc/unterminated-doc-comment.stderr
new file mode 100644
index 00000000000..2d5e537973e
--- /dev/null
+++ b/src/test/ui/rustdoc/unterminated-doc-comment.stderr
@@ -0,0 +1,9 @@
+error[E0758]: unterminated block doc-comment
+  --> $DIR/unterminated-doc-comment.rs:1:1
+   |
+LL | /*!
+   | ^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0758`.