45 lines
1.7 KiB
Rust
45 lines
1.7 KiB
Rust
#![crate_name = "foo"]
|
|
#![feature(lazy_type_alias)]
|
|
#![allow(incomplete_features)]
|
|
|
|
//! # Structs
|
|
//!
|
|
//! This header has the same name as a built-in header,
|
|
//! and we need to make sure they're disambiguated with
|
|
//! suffixes.
|
|
//!
|
|
//! Module-like headers get derived from the internal ID map,
|
|
//! so the *internal* one gets a suffix here. To make sure it
|
|
//! works right, the one in the `top-toc` needs to match the one
|
|
//! in the `top-doc`, and the one that's not in the `top-doc`
|
|
//! needs to match the one that isn't in the `top-toc`.
|
|
|
|
//@ has foo/index.html
|
|
// User header
|
|
//@ has - '//section[@id="rustdoc-toc"]/ul[@class="block top-toc"]/li/a[@href="#structs"]' 'Structs'
|
|
//@ has - '//details[@class="toggle top-doc"]/div[@class="docblock"]/h2[@id="structs"]' 'Structs'
|
|
// Built-in header
|
|
//@ has - '//section[@id="rustdoc-toc"]/ul[@class="block"]/li/a[@href="#structs-1"]' 'Structs'
|
|
//@ has - '//section[@id="main-content"]/h2[@id="structs-1"]' 'Structs'
|
|
|
|
/// # Fields
|
|
/// ## Fields
|
|
/// ### Fields
|
|
///
|
|
/// The difference between struct-like headers and module-like headers
|
|
/// is strange, but not actually a problem as long as we're consistent.
|
|
|
|
//@ has foo/struct.MyStruct.html
|
|
// User header
|
|
//@ has - '//section[@id="rustdoc-toc"]/ul[@class="block top-toc"]/li/a[@href="#fields-1"]' 'Fields'
|
|
//@ has - '//details[@class="toggle top-doc"]/div[@class="docblock"]/h2[@id="fields-1"]' 'Fields'
|
|
// Only one level of nesting
|
|
//@ count - '//section[@id="rustdoc-toc"]/ul[@class="block top-toc"]//a' 2
|
|
// Built-in header
|
|
//@ has - '//section[@id="rustdoc-toc"]/h3/a[@href="#fields"]' 'Fields'
|
|
//@ has - '//section[@id="main-content"]/h2[@id="fields"]' 'Fields'
|
|
|
|
pub struct MyStruct {
|
|
pub fields: i32,
|
|
}
|