Rename NestedMetaItem::name_value_literal
.
It's a highly misleading name, because it's completely different to `MetaItem::name_value_literal`. Specifically, it doesn't match `MetaItemKind::NameValue` (e.g. `#[foo = 3]`), it matches `MetaItemKind::List` (e.g. `#[foo(3)]`).
This commit is contained in:
parent
d5ec9b458a
commit
8d4655d9ec
@ -464,8 +464,9 @@ pub fn meta_item_list(&self) -> Option<&[NestedMetaItem]> {
|
|||||||
self.meta_item().and_then(|meta_item| meta_item.meta_item_list())
|
self.meta_item().and_then(|meta_item| meta_item.meta_item_list())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns a name and single literal value tuple of the `MetaItem`.
|
/// If it's a singleton list of the form `foo(lit)`, returns the `foo` and
|
||||||
pub fn name_value_literal(&self) -> Option<(Symbol, &MetaItemLit)> {
|
/// the `lit`.
|
||||||
|
pub fn singleton_lit_list(&self) -> Option<(Symbol, &MetaItemLit)> {
|
||||||
self.meta_item().and_then(|meta_item| {
|
self.meta_item().and_then(|meta_item| {
|
||||||
meta_item.meta_item_list().and_then(|meta_item_list| {
|
meta_item.meta_item_list().and_then(|meta_item_list| {
|
||||||
if meta_item_list.len() == 1
|
if meta_item_list.len() == 1
|
||||||
|
@ -986,7 +986,7 @@ pub fn parse_repr_attr(sess: &Session, attr: &Attribute) -> Vec<ReprAttr> {
|
|||||||
recognised = true;
|
recognised = true;
|
||||||
acc.push(h);
|
acc.push(h);
|
||||||
}
|
}
|
||||||
} else if let Some((name, value)) = item.name_value_literal() {
|
} else if let Some((name, value)) = item.singleton_lit_list() {
|
||||||
let mut literal_error = None;
|
let mut literal_error = None;
|
||||||
let mut err_span = item.span();
|
let mut err_span = item.span();
|
||||||
if name == sym::align {
|
if name == sym::align {
|
||||||
|
@ -435,7 +435,7 @@ fn codegen_fn_attrs(tcx: TyCtxt<'_>, did: LocalDefId) -> CodegenFnAttrs {
|
|||||||
sym::repr => {
|
sym::repr => {
|
||||||
codegen_fn_attrs.alignment = if let Some(items) = attr.meta_item_list()
|
codegen_fn_attrs.alignment = if let Some(items) = attr.meta_item_list()
|
||||||
&& let [item] = items.as_slice()
|
&& let [item] = items.as_slice()
|
||||||
&& let Some((sym::align, literal)) = item.name_value_literal()
|
&& let Some((sym::align, literal)) = item.singleton_lit_list()
|
||||||
{
|
{
|
||||||
rustc_attr::parse_alignment(&literal.kind)
|
rustc_attr::parse_alignment(&literal.kind)
|
||||||
.map_err(|msg| {
|
.map_err(|msg| {
|
||||||
|
Loading…
Reference in New Issue
Block a user