From b663daf35b4e232bfda581fcba1a909d9a19d55d Mon Sep 17 00:00:00 2001 From: Filippo Costa Date: Mon, 23 Aug 2021 16:29:23 +0200 Subject: [PATCH] Disallow broken intra-doc Cargo links (#352) --- .github/workflows/ci.yml | 6 ++++++ crates/abi/decoder/src/lib.rs | 1 + crates/abi/encoder/src/lib.rs | 1 + crates/abi/layout/src/lib.rs | 1 + crates/cli/src/main.rs | 1 + crates/codec/src/lib.rs | 1 + crates/gas/src/lib.rs | 5 +++-- crates/hash/src/lib.rs | 3 ++- crates/kv/src/lib.rs | 1 + crates/layout/src/lib.rs | 1 + crates/program/src/lib.rs | 1 + crates/query/src/lib.rs | 1 + crates/runtime-ffi/src/api.rs | 9 ++++++--- crates/runtime-ffi/src/lib.rs | 1 + crates/runtime/src/lib.rs | 1 + crates/sdk/alloc/src/lib.rs | 1 + crates/sdk/host/src/lib.rs | 8 ++++---- crates/sdk/macros/src/lib.rs | 1 + crates/sdk/std/src/lib.rs | 3 ++- crates/sdk/std/src/option.rs | 3 ++- crates/sdk/std/src/string/mod.rs | 3 ++- crates/sdk/std/src/vec.rs | 3 ++- crates/sdk/storage/src/lib.rs | 1 + crates/state/src/lib.rs | 1 + crates/storage/src/lib.rs | 1 + crates/types/src/lib.rs | 1 + 26 files changed, 46 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a8f54d62a..274c79055 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -139,6 +139,12 @@ jobs: toolchain: nightly command: test args: --all --features=default-cranelift,default-memory --no-default-features -- --nocapture + components: rustdoc + - name: Run `cargo doc` + uses: actions-rs/cargo@v1 + with: + command: doc + args: --all wasm_codec: runs-on: macos-latest strategy: diff --git a/crates/abi/decoder/src/lib.rs b/crates/abi/decoder/src/lib.rs index 5b1ce27f0..601f54a9b 100644 --- a/crates/abi/decoder/src/lib.rs +++ b/crates/abi/decoder/src/lib.rs @@ -15,6 +15,7 @@ #![allow(unused)] #![deny(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] mod calldata; mod cursor; diff --git a/crates/abi/encoder/src/lib.rs b/crates/abi/encoder/src/lib.rs index 9082e76d5..21bceb099 100644 --- a/crates/abi/encoder/src/lib.rs +++ b/crates/abi/encoder/src/lib.rs @@ -6,6 +6,7 @@ #![deny(unused)] #![deny(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] mod traits; mod types; diff --git a/crates/abi/layout/src/lib.rs b/crates/abi/layout/src/lib.rs index ab8f8a81e..dd10f7180 100644 --- a/crates/abi/layout/src/lib.rs +++ b/crates/abi/layout/src/lib.rs @@ -75,6 +75,7 @@ #![deny(unused)] #![deny(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] #[allow(clippy::unusual_byte_groupings)] #[doc(hidden)] diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index e384a8c3b..1dbda3192 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -3,6 +3,7 @@ //! ABI. #![allow(unused)] +#![deny(rustdoc::broken_intra_doc_links)] mod subcmd_craft_deploy; mod subcmd_tx; diff --git a/crates/codec/src/lib.rs b/crates/codec/src/lib.rs index 270ad805c..55597c8cb 100644 --- a/crates/codec/src/lib.rs +++ b/crates/codec/src/lib.rs @@ -10,6 +10,7 @@ #![deny(unused)] #![deny(dead_code)] #![allow(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] #![feature(vec_into_raw_parts)] mod codec_impls; diff --git a/crates/gas/src/lib.rs b/crates/gas/src/lib.rs index ac8af314b..0bdc39525 100644 --- a/crates/gas/src/lib.rs +++ b/crates/gas/src/lib.rs @@ -1,9 +1,10 @@ +//! This crate is responsible for doing gas validation & estimation for transactions. + #![allow(missing_docs)] #![allow(unused)] #![allow(dead_code)] #![allow(unreachable_code)] - -//! This crate is responsible for doing gas validation & estimation for transactions. +#![deny(rustdoc::broken_intra_doc_links)] mod call_graph; mod cfg; diff --git a/crates/hash/src/lib.rs b/crates/hash/src/lib.rs index 820b3e2f7..73245006f 100644 --- a/crates/hash/src/lib.rs +++ b/crates/hash/src/lib.rs @@ -1,10 +1,11 @@ -//! A [`Hasher`] trait for wide-digest algorithms and its [`DefaultHasher`] +//! A [`Hasher`] trait for wide-digest algorithms and [`Blake3Hasher`] //! implementation. #![deny(missing_docs)] #![deny(unused)] #![deny(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] /// A low-level trait for defining a hasher. pub trait Hasher: Default { diff --git a/crates/kv/src/lib.rs b/crates/kv/src/lib.rs index c4d55756a..810adc573 100644 --- a/crates/kv/src/lib.rs +++ b/crates/kv/src/lib.rs @@ -2,6 +2,7 @@ #![deny(unused)] #![deny(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] //! The `svm-kv` crate is responsible on providing different implementations for the `KVStore` trait. diff --git a/crates/layout/src/lib.rs b/crates/layout/src/lib.rs index 125bf81a8..de3c23770 100644 --- a/crates/layout/src/lib.rs +++ b/crates/layout/src/lib.rs @@ -2,6 +2,7 @@ #![allow(unused)] #![allow(dead_code)] #![allow(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] //! This crate is responsible of representing an `Account`'s storage variables `Layout`. diff --git a/crates/program/src/lib.rs b/crates/program/src/lib.rs index 245523550..342b412fe 100644 --- a/crates/program/src/lib.rs +++ b/crates/program/src/lib.rs @@ -6,6 +6,7 @@ #![deny(unused)] #![deny(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] use parity_wasm::elements::Instruction; diff --git a/crates/query/src/lib.rs b/crates/query/src/lib.rs index 5d6912131..7f37a3597 100644 --- a/crates/query/src/lib.rs +++ b/crates/query/src/lib.rs @@ -7,6 +7,7 @@ #![deny(unused)] #![deny(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] pub mod query; pub mod render; diff --git a/crates/runtime-ffi/src/api.rs b/crates/runtime-ffi/src/api.rs index d3daff3d0..a2a437560 100644 --- a/crates/runtime-ffi/src/api.rs +++ b/crates/runtime-ffi/src/api.rs @@ -104,7 +104,8 @@ pub unsafe extern "C" fn svm_runtime_destroy(runtime: *mut c_void) { /// Allocates `svm_byte_array` to be used later for passing a binary [`Envelope`]. /// -/// The number of allocated bytes is a fixed, and it equals to [`svm_codec::envelope::byte_size()`](svm_codec::envelope::byte_size). +/// The number of allocated bytes is equal to [`Envelope`]'s +/// [`Codec::fixed_size()`]. #[must_use] #[no_mangle] pub extern "C" fn svm_envelope_alloc() -> svm_byte_array { @@ -112,7 +113,8 @@ pub extern "C" fn svm_envelope_alloc() -> svm_byte_array { svm_byte_array::with_capacity(size, ENVELOPE_TYPE) } -/// Allocates `svm_byte_array` of `size` bytes, meant to be used for passing a binary [`Message`]. +/// Allocates `svm_byte_array` of `size` bytes, meant to be used for passing a +/// binary message. #[must_use] #[no_mangle] pub extern "C" fn svm_message_alloc(size: u32) -> svm_byte_array { @@ -121,7 +123,8 @@ pub extern "C" fn svm_message_alloc(size: u32) -> svm_byte_array { /// Allocates `svm_byte_array` to be used later for passing a binary [`Context`]. /// -/// The number of allocated bytes is a fixed, and it equals to [`svm_codec::context::byte_size()`](svm_codec::context::byte_size). +/// The number of allocated bytes is equal to [`Context`]'s +/// [`Codec::fixed_size()`]. #[must_use] #[no_mangle] pub extern "C" fn svm_context_alloc() -> svm_byte_array { diff --git a/crates/runtime-ffi/src/lib.rs b/crates/runtime-ffi/src/lib.rs index 02c1aeb1f..a9d4fcd1d 100644 --- a/crates/runtime-ffi/src/lib.rs +++ b/crates/runtime-ffi/src/lib.rs @@ -6,6 +6,7 @@ #![deny(unused)] #![deny(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] #![feature(vec_into_raw_parts)] #![feature(ptr_as_uninit)] diff --git a/crates/runtime/src/lib.rs b/crates/runtime/src/lib.rs index d57e2f5ef..875f66180 100644 --- a/crates/runtime/src/lib.rs +++ b/crates/runtime/src/lib.rs @@ -7,6 +7,7 @@ #![deny(unused)] #![warn(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] #![feature(vec_into_raw_parts)] mod env; diff --git a/crates/sdk/alloc/src/lib.rs b/crates/sdk/alloc/src/lib.rs index 8f3e6c4b4..ac3a41bf3 100644 --- a/crates/sdk/alloc/src/lib.rs +++ b/crates/sdk/alloc/src/lib.rs @@ -8,6 +8,7 @@ #![allow(unused)] #![allow(dead_code)] #![allow(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] extern crate alloc; diff --git a/crates/sdk/host/src/lib.rs b/crates/sdk/host/src/lib.rs index 196f17612..699768bc5 100644 --- a/crates/sdk/host/src/lib.rs +++ b/crates/sdk/host/src/lib.rs @@ -1,16 +1,16 @@ -#![no_std] -#![feature(maybe_uninit_uninit_array)] -#![feature(once_cell)] - //! This crate implements SDK for SVM. //! Using this crate when writing SVM Templates in Rust isn't mandatory but should be very useful. //! //! The crate is compiled with `![no_std]` (no Rust standard-library) annotation in order to reduce the compiled WASM size. +#![no_std] #![allow(missing_docs)] #![allow(unused)] #![allow(dead_code)] #![allow(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] +#![feature(maybe_uninit_uninit_array)] +#![feature(once_cell)] pub mod traits; diff --git a/crates/sdk/macros/src/lib.rs b/crates/sdk/macros/src/lib.rs index 3487bcc71..108a9537e 100644 --- a/crates/sdk/macros/src/lib.rs +++ b/crates/sdk/macros/src/lib.rs @@ -2,6 +2,7 @@ #![allow(unused)] #![allow(dead_code)] #![allow(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] mod function; mod json; diff --git a/crates/sdk/std/src/lib.rs b/crates/sdk/std/src/lib.rs index ba71c4034..5ebff1718 100644 --- a/crates/sdk/std/src/lib.rs +++ b/crates/sdk/std/src/lib.rs @@ -16,11 +16,12 @@ //! By introducing this crate we have full control of the emitted Wasm and we can cherry-pick only features that are relevant for us. #![no_std] -#![feature(core_intrinsics)] #![deny(missing_docs)] #![deny(unused)] #![deny(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] +#![feature(core_intrinsics)] mod log; pub use log::log; diff --git a/crates/sdk/std/src/option.rs b/crates/sdk/std/src/option.rs index a755f6b4c..6bc9c6455 100644 --- a/crates/sdk/std/src/option.rs +++ b/crates/sdk/std/src/option.rs @@ -2,7 +2,8 @@ use core::cmp::{Eq, PartialEq}; use crate::Result; -/// Fixed-Gas replacement for [`std::option::Option`]. +/// Fixed-Gas replacement for +/// [`std::option::Option`](https://doc.rust-lang.org/std/option/enum.Option.html). pub enum Option { /// Represents Missing `value` None, diff --git a/crates/sdk/std/src/string/mod.rs b/crates/sdk/std/src/string/mod.rs index 11de29766..73a4d5465 100644 --- a/crates/sdk/std/src/string/mod.rs +++ b/crates/sdk/std/src/string/mod.rs @@ -8,7 +8,8 @@ pub use traits::ToString; use crate::Vec; -/// Fixed-Gas replacement for [`std::string::String`]. +/// Fixed-Gas replacement for +/// [`std::string::String`](https://doc.rust-lang.org/std/string/struct.String.html). pub enum String { /// A String longer than 8 bytes (data is stored on the `Heap`). Long(Vec), diff --git a/crates/sdk/std/src/vec.rs b/crates/sdk/std/src/vec.rs index af850ee50..45ff37975 100644 --- a/crates/sdk/std/src/vec.rs +++ b/crates/sdk/std/src/vec.rs @@ -21,7 +21,8 @@ use core::ops::{Deref, DerefMut}; use crate::ensure; -/// Fixed-Gas replacement for [`std::vec::Vec`]. +/// Fixed-Gas replacement for +/// [`std::vec::Vec`](https://doc.rust-lang.org/std/vec/struct.Vec.html). pub struct Vec { len: usize, cap: usize, diff --git a/crates/sdk/storage/src/lib.rs b/crates/sdk/storage/src/lib.rs index 72bda9a19..c03715a73 100644 --- a/crates/sdk/storage/src/lib.rs +++ b/crates/sdk/storage/src/lib.rs @@ -10,6 +10,7 @@ #![allow(unused)] #![allow(dead_code)] #![allow(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] mod ext; mod mock; diff --git a/crates/state/src/lib.rs b/crates/state/src/lib.rs index f2d3039b2..1607f07d4 100644 --- a/crates/state/src/lib.rs +++ b/crates/state/src/lib.rs @@ -9,6 +9,7 @@ #![deny(unused)] #![deny(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] mod error; diff --git a/crates/storage/src/lib.rs b/crates/storage/src/lib.rs index 731b8726a..5657959a1 100644 --- a/crates/storage/src/lib.rs +++ b/crates/storage/src/lib.rs @@ -2,6 +2,7 @@ #![deny(unused)] #![deny(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] //! This crate is responsible on managing an `Account's storage. //! diff --git a/crates/types/src/lib.rs b/crates/types/src/lib.rs index 9ae69bdf2..46ff3426d 100644 --- a/crates/types/src/lib.rs +++ b/crates/types/src/lib.rs @@ -5,6 +5,7 @@ #![deny(unused)] #![deny(dead_code)] #![deny(unreachable_code)] +#![deny(rustdoc::broken_intra_doc_links)] #![feature(const_type_id)] #![feature(const_type_name)] #![feature(vec_into_raw_parts)]