Auto merge of #142028 - matthiaskrgr:rollup-rawl1zo, r=matthiaskrgr · rust-lang/rust@4b27a04 (original) (raw)
`@@ -252,35 +252,18 @@ impl<'a> MetaItemParser<'a> {
`
252
252
`}
`
253
253
`}
`
254
254
``
255
``
`-
/// Gets just the path, without the args.
`
256
``
`-
pub fn path_without_args(&self) -> PathParser<'a> {
`
257
``
`-
self.path.clone()
`
258
``
`-
}
`
259
``
-
260
``
`-
/// Gets just the args parser, without caring about the path.
`
261
``
`-
pub fn args(&self) -> &ArgParser<'a> {
`
262
``
`-
&self.args
`
263
``
`-
}
`
264
``
-
265
``
`-
pub fn deconstruct(&self) -> (PathParser<'a>, &ArgParser<'a>) {
`
266
``
`-
(self.path_without_args(), self.args())
`
267
``
`-
}
`
268
``
-
269
``
`-
/// Asserts that this MetaItem starts with a path. Some examples:
`
``
255
`+
/// Gets just the path, without the args. Some examples:
`
270
256
`///
`
271
257
`` /// - #[rustfmt::skip]: rustfmt::skip is a path
``
272
258
`` /// - #[allow(clippy::complexity)]: clippy::complexity is a path
``
273
259
`` /// - #[inline]: inline is a single segment path
``
274
``
`-
pub fn path(&self) -> (PathParser<'a>, &ArgParser<'a>) {
`
275
``
`-
self.deconstruct()
`
``
260
`+
pub fn path(&self) -> &PathParser<'a> {
`
``
261
`+
&self.path
`
276
262
`}
`
277
263
``
278
``
`-
/// Asserts that this MetaItem starts with a word, or single segment path.
`
279
``
`-
/// Doesn't return the args parser.
`
280
``
`-
///
`
281
``
`` -
/// For examples. see [Self::word]
``
282
``
`-
pub fn word_without_args(&self) -> Option {
`
283
``
`-
Some(self.word()?.0)
`
``
264
`+
/// Gets just the args parser, without caring about the path.
`
``
265
`+
pub fn args(&self) -> &ArgParser<'a> {
`
``
266
`+
&self.args
`
284
267
`}
`
285
268
``
286
269
`/// Asserts that this MetaItem starts with a word, or single segment path.
`
`@@ -289,23 +272,8 @@ impl<'a> MetaItemParser<'a> {
`
289
272
`` /// - #[inline]: inline is a word
``
290
273
`` /// - #[rustfmt::skip]: rustfmt::skip is a path,
``
291
274
`` /// and not a word and should instead be parsed using path
``
292
``
`-
pub fn word(&self) -> Option<(Ident, &ArgParser<'a>)> {
`
293
``
`-
let (path, args) = self.deconstruct();
`
294
``
`-
Some((path.word()?, args))
`
295
``
`-
}
`
296
``
-
297
``
`-
/// Asserts that this MetaItem starts with some specific word.
`
298
``
`-
///
`
299
``
`` -
/// See word for examples of what a word is.
``
300
275
`pub fn word_is(&self, sym: Symbol) -> Option<&ArgParser<'a>> {
`
301
``
`-
self.path_without_args().word_is(sym).then(|| self.args())
`
302
``
`-
}
`
303
``
-
304
``
`-
/// Asserts that this MetaItem starts with some specific path.
`
305
``
`-
///
`
306
``
`` -
/// See word for examples of what a word is.
``
307
``
`-
pub fn path_is(&self, segments: &[Symbol]) -> Option<&ArgParser<'a>> {
`
308
``
`-
self.path_without_args().segments_is(segments).then(|| self.args())
`
``
276
`+
self.path().word_is(sym).then(|| self.args())
`
309
277
`}
`
310
278
`}
`
311
279
``
`@@ -548,7 +516,7 @@ impl<'a> MetaItemListParser<'a> {
`
548
516
`}
`
549
517
``
550
518
`/// Lets you pick and choose as what you want to parse each element in the list
`
551
``
`-
pub fn mixed<'s>(&'s self) -> impl Iterator<Item = &'s MetaItemOrLitParser<'a>> + 's {
`
``
519
`+
pub fn mixed(&self) -> impl Iterator<Item = &MetaItemOrLitParser<'a>> {
`
552
520
`self.sub_parsers.iter()
`
553
521
`}
`
554
522
``
`@@ -560,20 +528,6 @@ impl<'a> MetaItemListParser<'a> {
`
560
528
`self.len() == 0
`
561
529
`}
`
562
530
``
563
``
`-
/// Asserts that every item in the list is another list starting with a word.
`
564
``
`-
///
`
565
``
`` -
/// See [MetaItemParser::word] for examples of words.
``
566
``
`-
pub fn all_word_list<'s>(&'s self) -> Option<Vec<(Ident, &'s ArgParser<'a>)>> {
`
567
``
`-
self.mixed().map(|i| i.meta_item()?.word()).collect()
`
568
``
`-
}
`
569
``
-
570
``
`-
/// Asserts that every item in the list is another list starting with a full path.
`
571
``
`-
///
`
572
``
`` -
/// See [MetaItemParser::path] for examples of paths.
``
573
``
`-
pub fn all_path_list<'s>(&'s self) -> Option<Vec<(PathParser<'a>, &'s ArgParser<'a>)>> {
`
574
``
`-
self.mixed().map(|i| Some(i.meta_item()?.path())).collect()
`
575
``
`-
}
`
576
``
-
577
531
`/// Returns Some if the list contains only a single element.
`
578
532
`///
`
579
533
`/// Inside the Some is the parser to parse this single element.
`