Check dep name to detect it is core

This commit is contained in:
Edwin Cheng 2020-04-28 04:11:24 +08:00
parent 6d3b0af900
commit c69f9c1b0a

View File

@ -169,11 +169,13 @@ fn find_builtin_crate(db: &dyn AstDatabase, id: LazyMacroId) -> tt::TokenTree {
} }
}; };
// Check whether it has any deps, if not, it should be core: // XXX
let tt = if cg[*krate].dependencies.is_empty() { // All crates except core itself should have a dependency on core,
quote! { crate } // We detect `core` by seeing whether it doesn't have such a dependency.
} else { let tt = if cg[*krate].dependencies.iter().any(|dep| dep.name == "core") {
quote! { core } quote! { core }
} else {
quote! { crate }
}; };
tt.token_trees[0].clone() tt.token_trees[0].clone()