From 089ee27dd0ef2a639647cddecb2ea332c8d02bac Mon Sep 17 00:00:00 2001 From: LeSeulArtichaut Date: Tue, 9 Feb 2021 00:20:44 +0100 Subject: [PATCH] Do not ICE on range patterns in function arguments --- src/librustdoc/clean/utils.rs | 5 +---- src/test/rustdoc/range-arg-pattern.rs | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/librustdoc/clean/utils.rs b/src/librustdoc/clean/utils.rs index ef59e13f8fb17..5b82954536cdd 100644 --- a/src/librustdoc/clean/utils.rs +++ b/src/librustdoc/clean/utils.rs @@ -289,10 +289,7 @@ crate fn name_from_pat(p: &hir::Pat<'_>) -> Symbol { ); return Symbol::intern("()"); } - PatKind::Range(..) => panic!( - "tried to get argument name from PatKind::Range, \ - which is not allowed in function arguments" - ), + PatKind::Range(..) => return kw::Underscore, PatKind::Slice(ref begin, ref mid, ref end) => { let begin = begin.iter().map(|p| name_from_pat(&**p).to_string()); let mid = mid.as_ref().map(|p| format!("..{}", name_from_pat(&**p))).into_iter(); diff --git a/src/test/rustdoc/range-arg-pattern.rs b/src/test/rustdoc/range-arg-pattern.rs index f4cc36b1055ad..c08faaad0eccf 100644 --- a/src/test/rustdoc/range-arg-pattern.rs +++ b/src/test/rustdoc/range-arg-pattern.rs @@ -1,5 +1,5 @@ #![crate_name = "foo"] // @has foo/fn.f.html -// @has - '//*[@class="rust fn"]' 'pub fn f(0u8 ...255: u8)' +// @has - '//*[@class="rust fn"]' 'pub fn f(_: u8)' pub fn f(0u8...255: u8) {}