1
Fork 0

#[diagnostic::on_unimplemented] without filters

This commit adds support for a `#[diagnostic::on_unimplemented]`
attribute with the following options:

* `message` to customize the primary error message
* `note` to add a customized note message to an error message
* `label` to customize the label part of the error message

Co-authored-by: León Orell Valerian Liehr <me@fmease.dev>
Co-authored-by: Michael Goulet <michael@errs.io>
This commit is contained in:
Georg Semmler 2023-06-02 13:55:46 +02:00
parent e5fedceabf
commit 5b8a7a0917
No known key found for this signature in database
GPG key ID: A87BCEE5205CE489
18 changed files with 360 additions and 39 deletions

View file

@ -99,6 +99,22 @@ impl Attribute {
}
}
pub fn path_matches(&self, name: &[Symbol]) -> bool {
match &self.kind {
AttrKind::Normal(normal) => {
normal.item.path.segments.len() == name.len()
&& normal
.item
.path
.segments
.iter()
.zip(name)
.all(|(s, n)| s.args.is_none() && s.ident.name == *n)
}
AttrKind::DocComment(..) => false,
}
}
pub fn is_word(&self) -> bool {
if let AttrKind::Normal(normal) = &self.kind {
matches!(normal.item.args, AttrArgs::Empty)