This commit is contained in:
Max Heller 2023-07-29 15:23:35 -04:00
parent b64e5b3919
commit 784379eb79
2 changed files with 47 additions and 0 deletions

View File

@ -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) }
};

View File

@ -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::
"#]],
);
}