fix: don't panic in semantics due to cfg_attr disrupting offsets

This commit is contained in:
Lukas Wirth 2022-01-23 17:29:31 +01:00
parent baa5cd9527
commit ebd723995a
2 changed files with 7 additions and 1 deletions

View file

@ -931,7 +931,8 @@ fn resolve_derive_ident(
file.with_value(derive.clone()),
)?;
let attrs = adt_def.attrs(self.db);
let mut derive_paths = attrs[attr_id].parse_path_comma_token_tree()?;
// FIXME: https://github.com/rust-analyzer/rust-analyzer/issues/11298
let mut derive_paths = attrs.get(attr_id)?.parse_path_comma_token_tree()?;
let derive_idx = tt
.syntax()

View file

@ -72,6 +72,11 @@ fn deref(&self) -> &[Attr] {
}
}
}
impl Attrs {
pub fn get(&self, AttrId { ast_index, .. }: AttrId) -> Option<&Attr> {
(**self).get(ast_index as usize)
}
}
impl ops::Deref for Attrs {
type Target = [Attr];