summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2013-05-28 15:44:53 -0500
committerAlex Crichton <alex@alexcrichton.com>2013-05-30 01:02:55 -0500
commitaf995ce1e7fe8c30c8f5da3d04e0e2e89762bde4 (patch)
treeca004c17789f9c55bada330a9dbd5387840a4aac /src/test
parent3a3bf8bdef513c889117ab6a90b463fc0b2e2642 (diff)
downloadrust-af995ce1e7fe8c30c8f5da3d04e0e2e89762bde4.tar.gz
rust-af995ce1e7fe8c30c8f5da3d04e0e2e89762bde4.zip
Make missing documentation linting more robust
Add some more cases for warning about missing documentation, and also add a test
to make sure it doesn't die in the future.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/lint-missing-doc.rs72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/test/compile-fail/lint-missing-doc.rs b/src/test/compile-fail/lint-missing-doc.rs
new file mode 100644
index 00000000000..fd0b0fb80f8
--- /dev/null
+++ b/src/test/compile-fail/lint-missing-doc.rs
@@ -0,0 +1,72 @@
+// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// When denying at the crate level, be sure to not get random warnings from the
+// injected intrinsics by the compiler.
+#[deny(missing_doc)];
+
+struct Foo {
+    a: int,
+    priv b: int,
+    pub c: int, // doesn't matter, Foo is private
+}
+
+pub struct PubFoo { //~ ERROR: missing documentation
+    a: int,      //~ ERROR: missing documentation
+    priv b: int,
+    pub c: int,  //~ ERROR: missing documentation
+}
+
+#[allow(missing_doc)]
+pub struct PubFoo2 {
+    a: int,
+    pub c: int,
+}
+
+/// dox
+pub fn foo() {}
+pub fn foo2() {} //~ ERROR: missing documentation
+fn foo3() {}
+#[allow(missing_doc)] pub fn foo4() {}
+
+/// dox
+pub trait A {}
+trait B {}
+pub trait C {} //~ ERROR: missing documentation
+#[allow(missing_doc)] pub trait D {}
+
+trait Bar {
+    /// dox
+    pub fn foo();
+    fn foo2(); //~ ERROR: missing documentation
+    pub fn foo3(); //~ ERROR: missing documentation
+}
+
+impl Foo {
+    pub fn foo() {} //~ ERROR: missing documentation
+    /// dox
+    pub fn foo1() {}
+    fn foo2() {}
+    #[allow(missing_doc)] pub fn foo3() {}
+}
+
+#[allow(missing_doc)]
+trait F {
+    pub fn a();
+    fn b(&self);
+}
+
+// should need to redefine documentation for implementations of traits
+impl F for Foo {
+    pub fn a() {}
+    fn b(&self) {}
+}
+
+fn main() {}