为什么没有围栏的评论会触发doctest?

kaz*_*ase 5 rust

我在箱子中有以下注释的代码:

/// Complex Expression
///
///     - The `Undefined` variant is used as a placeholder during code 
///       transformations. It must never occur in the final result.
pub enum Cexp {
    Undefined,
    Unimplemented,
}
Run Code Online (Sandbox Code Playgroud)

cargo test板条箱上运行时,它会触发doctest运行,但无法编译。(请确保在操场上运行“测试”而不是“构建”。)

/// Complex Expression
///
///     - The `Undefined` variant is used as a placeholder during code 
///       transformations. It must never occur in the final result.
pub enum Cexp {
    Undefined,
    Unimplemented,
}
Run Code Online (Sandbox Code Playgroud)

实际的错误消息无关紧要。锈编译器使注释文本窒息,这并不奇怪。但是,为什么此注释触发doctest运行?根据文档, doctests应该与围起来```,这里不是这种情况。

kaz*_*ase 6

该行为实际上在文档中进行了说明。在最底端说(强调我):

Rustdoc还接受缩进的代码块作为围栏代码块的替代方法:您可以将每行缩进四个或更多空格,而不是用三个反引号将代码起来。

...

但是,最好使用受防护的代码块而不是缩进的代码块。不仅围栏考虑锈代码更地道的代码块,但也没有办法使用指令,如ignoreshould_panic与缩进代码块。