macros: Future proof `#[no_link]` This PR future proofs `#[no_link]` for macro modularization (cc #35896). First, we resolve all `#[no_link] extern crate`s. `#[no_link]` crates without `#[macro_use]` or `#[macro_reexport]` are not resolved today, this is a [breaking-change]. For example, ```rust ``` Any breakage can be fixed by simply removing the `#[no_link] extern crate`. Second, `#[no_link] extern crate`s will define an empty module in type namespace to eventually allow importing the crate's macros with `use`. This is a [breaking-change], for example: ```rust mod syntax {} //< This becomes a duplicate error. ``` r? @nrc |
||
|---|---|---|
| .. | ||
| build_reduced_graph.rs | ||
| Cargo.toml | ||
| check_unused.rs | ||
| diagnostics.rs | ||
| lib.rs | ||
| macros.rs | ||
| resolve_imports.rs | ||