# The Great Module Adventure Continues

**URL:** <https://internals.rust-lang.org/t/the-great-module-adventure-continues/6678>\
**Category:** language design\
**Created:** [January 31, 2018, 10:20pm UTC](https://internals.rust-lang.org/t/the-great-module-adventure-continues/6678 "2018-01-31T22:20:08Z")\
**Posts on this page:** 1\
**Showing post:** 32

<div class="post-metadata">

**Author:** ![petrochenkov](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/petrochenkov/32/2784_2.png) [@petrochenkov](https://internals.rust-lang.org/u/petrochenkov)\
**Post date:** [February 1, 2018, 4:19pm UTC](https://internals.rust-lang.org/t/the-great-module-adventure-continues/6678/32 "2018-02-01T16:19:16Z")

</div>

I think it’s important to actually implement the fallback and see how it goes and how often it causes resolution to stuck.

To avoid non-deterministic behavior the fallback has to work as a crate-global pass during import resolution, e.g. “1. Iterate import resolution until it saturates” -\> “2. Simultaneously fallback all determined unresolved imports to extern crates” -\> repeat “1” -\> … See [https://github.com/rust-lang/rfcs/pull/2126#issuecomment-327776317](https://github.com/rust-lang/rfcs/pull/2126#issuecomment-327776317)

(FWIW, after implementing the `crate`/`extern` stuff I’m not so vehemently against the RFC 2126 as written, i.e. Variant 2 with fallback, so I’m interested in how it would look in fully implemented backward-compatible form.)

---

_[View the full topic](https://internals.rust-lang.org/t/the-great-module-adventure-continues/6678)._
