diff options
| author | Urgau <urgau@numericable.fr> | 2024-09-18 17:44:32 +0200 |
|---|---|---|
| committer | Urgau <urgau@numericable.fr> | 2024-10-01 10:01:09 +0200 |
| commit | 57b9b1f9745a56943cc0aebc4c3ec487945f044e (patch) | |
| tree | 54688059c287db2d7f2a33ed6205fe9b3673ab4d /compiler/rustc_expand | |
| parent | c3ce4e66a5732a5b89c9f495b44357bf6b29d424 (diff) | |
| download | rust-57b9b1f9745a56943cc0aebc4c3ec487945f044e.tar.gz rust-57b9b1f9745a56943cc0aebc4c3ec487945f044e.zip | |
Use `ast::NestedMetaItem` when evaluating cfg predicate
Diffstat (limited to 'compiler/rustc_expand')
| -rw-r--r-- | compiler/rustc_expand/src/config.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/compiler/rustc_expand/src/config.rs b/compiler/rustc_expand/src/config.rs index 32088374277..8ea4f901368 100644 --- a/compiler/rustc_expand/src/config.rs +++ b/compiler/rustc_expand/src/config.rs @@ -5,7 +5,9 @@ use rustc_ast::token::{Delimiter, Token, TokenKind}; use rustc_ast::tokenstream::{ AttrTokenStream, AttrTokenTree, LazyAttrTokenStream, Spacing, TokenTree, }; -use rustc_ast::{self as ast, AttrStyle, Attribute, HasAttrs, HasTokens, MetaItem, NodeId}; +use rustc_ast::{ + self as ast, AttrStyle, Attribute, HasAttrs, HasTokens, MetaItem, NestedMetaItem, NodeId, +}; use rustc_attr as attr; use rustc_data_structures::flat_map_in_place::FlatMapInPlace; use rustc_feature::{ @@ -449,7 +451,7 @@ impl<'a> StripUnconfigured<'a> { } } -pub fn parse_cfg<'a>(meta_item: &'a MetaItem, sess: &Session) -> Option<&'a MetaItem> { +pub fn parse_cfg<'a>(meta_item: &'a MetaItem, sess: &Session) -> Option<&'a NestedMetaItem> { let span = meta_item.span; match meta_item.meta_item_list() { None => { @@ -464,9 +466,9 @@ pub fn parse_cfg<'a>(meta_item: &'a MetaItem, sess: &Session) -> Option<&'a Meta sess.dcx().emit_err(InvalidCfg::MultiplePredicates { span: l.span() }); None } - Some([single]) => match single.meta_item() { - Some(meta_item) => Some(meta_item), - None => { + Some([single]) => match single.is_meta_item() { + true => Some(single), + false => { sess.dcx().emit_err(InvalidCfg::PredicateLiteral { span: single.span() }); None } |
