如何查看rustc错误消息中'and X others'省略的其余内容?
查看Rust编译错误中被省略的trait实现列表方法
你之前使用-vv参数无效,是因为该参数仅控制Cargo自身的日志输出详细程度,不会改变rustc的错误信息展示规则,要查看被折叠的其余实现类型,可使用以下两种方案:
方案1:编译时直接输出完整列表(需Nightly工具链)
rustc默认在trait实现类型数量超过8个时会自动折叠超出部分,显示and N others,可以通过编译器参数关闭该折叠限制:
- 首先安装Nightly版本工具链:
rustup install nightly - 执行编译时传入参数,将实现列表展示上限设为无限制:
执行后错误信息会列出所有实现目标trait的类型,不再出现省略提示。如果需要同时查看宏展开的溯源信息,可以用如下命令:RUSTFLAGS="-Z trait-implementation-limit=0" cargo +nightly buildRUSTFLAGS="-Z trait-implementation-limit=0 -Z macro-backtrace" cargo +nightly build
方案2:通过本地依赖文档查看(稳定版可用,无需切换工具链)
如果不想切换工具链,可以直接生成本地项目依赖的文档查看全量实现,该方法无版本限制:
- 在项目根目录执行命令生成并打开文档:
cargo doc --open - 在文档页顶部搜索栏输入目标trait名称(本示例中为
ToHeader),进入对应trait的说明页 - 下拉找到
Implementations章节,该章节会无遗漏列出所有实现了该trait的类型。
内容的提问来源于stack exchange,提问作者Daniel Porteous
相关产品推荐
相关产品推荐

