Fix source_to_def for named enum variant fields

This commit is contained in:
Jonas Schievink 2020-10-09 02:57:35 +02:00
parent 636b413e14
commit 468b804856
2 changed files with 21 additions and 0 deletions

View File

@ -189,6 +189,10 @@ impl SourceToDefCtx<'_, '_> {
let def = self.type_alias_to_def(container.with_value(it))?;
def.into()
},
ast::Variant(it) => {
let def = self.enum_variant_to_def(container.with_value(it))?;
VariantId::from(def).into()
},
_ => continue,
}
};

View File

@ -405,6 +405,23 @@ enum Foo {
);
}
#[test]
fn test_find_all_refs_enum_var_field() {
check(
r#"
enum Foo {
A,
B { field<|>: u8 },
C,
}
"#,
expect![[r#"
field RECORD_FIELD FileId(0) 26..35 26..31 Other
"#]],
);
}
#[test]
fn test_find_all_refs_two_modules() {
check(