diff options
| author | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2019-04-05 03:05:30 +0200 |
|---|---|---|
| committer | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2019-04-15 07:23:02 +0200 |
| commit | 61a7a60d45fd20bee343a37693969a32e63cb905 (patch) | |
| tree | 513a5331ee22331761ec27c2f8c7d9cf8262df30 /src/libsyntax/attr | |
| parent | 10855a36b53d33aa2e4f8b98107ee54a0cca5e9c (diff) | |
| download | rust-61a7a60d45fd20bee343a37693969a32e63cb905.tar.gz rust-61a7a60d45fd20bee343a37693969a32e63cb905.zip | |
Make check_name generic
Diffstat (limited to 'src/libsyntax/attr')
| -rw-r--r-- | src/libsyntax/attr/mod.rs | 36 |
1 files changed, 12 insertions, 24 deletions
diff --git a/src/libsyntax/attr/mod.rs b/src/libsyntax/attr/mod.rs index f34bbc9f35d..e00f91e3952 100644 --- a/src/libsyntax/attr/mod.rs +++ b/src/libsyntax/attr/mod.rs @@ -81,15 +81,13 @@ impl NestedMetaItem { } /// Returns `true` if this list item is a MetaItem with a name of `name`. - pub fn check_name(&self, name: &str) -> bool { + pub fn check_name<T>(&self, name: T) -> bool + where + Path: PartialEq<T>, + { self.meta_item().map_or(false, |meta_item| meta_item.check_name(name)) } - /// Returns `true` if this list item is a MetaItem with a name of `name`. - pub fn check_name_symbol(&self, name: Symbol) -> bool { - self.meta_item().map_or(false, |meta_item| meta_item.check_name_symbol(name)) - } - /// For a single-segment meta-item returns its name, otherwise returns `None`. pub fn ident(&self) -> Option<Ident> { self.meta_item().and_then(|meta_item| meta_item.ident()) @@ -156,19 +154,10 @@ impl Attribute { /// attribute is marked as used. /// /// To check the attribute name without marking it used, use the `path` field directly. - pub fn check_name(&self, name: &str) -> bool { - let matches = self.path == name; - if matches { - mark_used(self); - } - matches - } - - /// Returns `true` if the attribute's path matches the argument. If it matches, then the - /// attribute is marked as used. - /// - /// To check the attribute name without marking it used, use the `path` field directly. - pub fn check_name_symbol(&self, name: Symbol) -> bool { + pub fn check_name<T>(&self, name: T) -> bool + where + Path: PartialEq<T>, + { let matches = self.path == name; if matches { mark_used(self); @@ -261,11 +250,10 @@ impl MetaItem { } } - pub fn check_name(&self, name: &str) -> bool { - self.path == name - } - - pub fn check_name_symbol(&self, name: Symbol) -> bool { + pub fn check_name<T>(&self, name: T) -> bool + where + Path: PartialEq<T>, + { self.path == name } |
