wip
This commit is contained in:
parent
b64e5b3919
commit
784379eb79
@ -884,6 +884,16 @@ fn classify_name_ref(
|
||||
};
|
||||
let make_path_kind_type = |ty: ast::Type| {
|
||||
let location = type_location(ty.syntax());
|
||||
if let Some(p) = ty.syntax().parent() {
|
||||
if ast::GenericArg::can_cast(p.kind()) || ast::GenericArgList::can_cast(p.kind()) {
|
||||
if let Some(p) = p.parent().and_then(|p| p.parent()) {
|
||||
if let Some(segment) = ast::PathSegment::cast(p) {
|
||||
let path = segment.parent_path().top_path();
|
||||
dbg!(sema.resolve_path(&path));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
PathKind::Type { location: location.unwrap_or(TypeLocation::Other) }
|
||||
};
|
||||
|
||||
|
@ -719,3 +719,40 @@ struct Foo {
|
||||
"#]],
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn completes_const_and_type_generics_separately() {
|
||||
check(
|
||||
r#"
|
||||
struct Foo;
|
||||
const X: usize = 0;
|
||||
mod foo {
|
||||
fn foo<T>() {}
|
||||
}
|
||||
fn main() {
|
||||
self::foo::foo::<F$0>();
|
||||
}
|
||||
"#,
|
||||
expect![[r#"
|
||||
st Foo
|
||||
bt u32
|
||||
kw crate::
|
||||
kw self::
|
||||
"#]],
|
||||
);
|
||||
check(
|
||||
r#"
|
||||
struct Foo;
|
||||
const X: usize = 0;
|
||||
fn foo<const X: usize>() {}
|
||||
fn main() {
|
||||
foo::<F$0>();
|
||||
}
|
||||
"#,
|
||||
expect![[r#"
|
||||
ct X
|
||||
kw crate::
|
||||
kw self::
|
||||
"#]],
|
||||
);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user