"unresolved import" 模块之间存在循环依赖

"unresolved import" with a circular dependency between modules

我有两个文件:

如您所见,这两个模块之间存在循环依赖关系。似乎有时 Rust 支持循环依赖,但对于这种情况,编译器会抛出错误:

src/json/mod.rs:1:25: 1:31 error: unresolved import (maybe you meant `ToJson::*`?)
src/json/mod.rs:1 pub use self::to_json::{ToJson};
                                          ^~~~~~
src/json/builder.rs:2:18: 2:22 error: unresolved import (maybe you meant `Json::*`?)
src/json/builder.rs:2 use json::json::{Json, JsonEvent, Array, Object}; //commenting this line solve the dependency error

[...]

分支json_mod中的代码is here。我试图用更少的代码行重现该问题,但我创建的循环依赖项编译正确。

调试后,大约有 400 个错误 — 这很正常,因为我正在进行大量代码重构(将 ~= 4000 行文件的一个文件拆分为多个文件),而且我还有很多在让它工作之前要做的工作。

编辑:好消息,下面提到的错误已修复!它已在 Rust 1.4 或更高版本中修复。

Glob 导入 (use foo::*) 有 a known bug 与循环导入不兼容的地方。我会尝试在两个受影响的模块中删除 glob 导入。