mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 11:31:15 +00:00
infer associated method in local scope
This commit is contained in:
parent
791722b70a
commit
7b952cb1aa
@ -227,7 +227,7 @@ impl<'a> InferenceContext<'a> {
|
|||||||
self.table.trait_env.clone(),
|
self.table.trait_env.clone(),
|
||||||
krate,
|
krate,
|
||||||
&traits_in_scope,
|
&traits_in_scope,
|
||||||
None,
|
self.resolver.module(),
|
||||||
Some(name),
|
Some(name),
|
||||||
method_resolution::LookupMode::Path,
|
method_resolution::LookupMode::Path,
|
||||||
move |_ty, item| {
|
move |_ty, item| {
|
||||||
|
@ -84,6 +84,37 @@ fn infer_associated_method_struct() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn infer_associated_method_struct_in_local_scope() {
|
||||||
|
check_infer(
|
||||||
|
r#"
|
||||||
|
fn mismatch() {
|
||||||
|
struct A;
|
||||||
|
|
||||||
|
impl A {
|
||||||
|
fn from(_: i32, _: i32) -> Self {
|
||||||
|
A
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let _a = A::from(1, 2);
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
expect![[r#"
|
||||||
|
14..146 '{ ... 2); }': ()
|
||||||
|
125..127 '_a': A
|
||||||
|
130..137 'A::from': fn from(i32, i32) -> A
|
||||||
|
130..143 'A::from(1, 2)': A
|
||||||
|
138..139 '1': i32
|
||||||
|
141..142 '2': i32
|
||||||
|
60..61 '_': i32
|
||||||
|
68..69 '_': i32
|
||||||
|
84..109 '{ ... }': A
|
||||||
|
98..99 'A': A
|
||||||
|
"#]],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn infer_associated_method_enum() {
|
fn infer_associated_method_enum() {
|
||||||
check_infer(
|
check_infer(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user