mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 11:31:15 +00:00
We need to go deeper
This commit is contained in:
parent
d1fc9d727b
commit
3390e73816
@ -58,6 +58,7 @@ fn deref_by_trait(
|
|||||||
krate: CrateId,
|
krate: CrateId,
|
||||||
ty: InEnvironment<&Canonical<Ty>>,
|
ty: InEnvironment<&Canonical<Ty>>,
|
||||||
) -> Option<Canonical<Ty>> {
|
) -> Option<Canonical<Ty>> {
|
||||||
|
let _p = profile::span("deref_by_trait");
|
||||||
let deref_trait = match db.lang_item(krate, "deref".into())? {
|
let deref_trait = match db.lang_item(krate, "deref".into())? {
|
||||||
LangItemTarget::TraitId(it) => it,
|
LangItemTarget::TraitId(it) => it,
|
||||||
_ => return None,
|
_ => return None,
|
||||||
@ -85,7 +86,10 @@ fn deref_by_trait(
|
|||||||
environment: ty.environment.clone(),
|
environment: ty.environment.clone(),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
if db.trait_solve(krate, implements_goal).is_none() {
|
if {
|
||||||
|
let _p = profile::span("db.trait_solve");
|
||||||
|
db.trait_solve(krate, implements_goal).is_none()
|
||||||
|
} {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user