From decd13a3d952245fb330199a1943d5c156b64937 Mon Sep 17 00:00:00 2001 From: Ayaz Hafiz Date: Tue, 7 Jul 2020 07:31:09 -0700 Subject: [PATCH] Include const generic type bounds in their spans Closes #4310 --- src/formatting/items.rs | 3 +-- src/formatting/spanned.rs | 3 ++- tests/target/issue-4310.rs | 9 +++++++++ 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 tests/target/issue-4310.rs diff --git a/src/formatting/items.rs b/src/formatting/items.rs index cb362558e9b..6cb431e12d7 100644 --- a/src/formatting/items.rs +++ b/src/formatting/items.rs @@ -2263,11 +2263,10 @@ fn rewrite_fn_base( // Skip `pub(crate)`. let lo_after_visibility = get_bytepos_after_visibility(&fn_sig.visibility, span); - // A conservative estimation, to goal is to be over all parens in generics + // A conservative estimation, the goal is to be over all parens in generics let params_start = fn_sig .generics .params - .iter() .last() .map_or(lo_after_visibility, |param| param.span().hi()); let params_end = if fd.inputs.is_empty() { diff --git a/src/formatting/spanned.rs b/src/formatting/spanned.rs index c95ee5662a2..166a1f0b036 100644 --- a/src/formatting/spanned.rs +++ b/src/formatting/spanned.rs @@ -131,7 +131,8 @@ impl Spanned for ast::GenericParam { }; let ty_hi = if let ast::GenericParamKind::Type { default: Some(ref ty), - } = self.kind + } + | ast::GenericParamKind::Const { ref ty, .. } = self.kind { ty.span().hi() } else { diff --git a/tests/target/issue-4310.rs b/tests/target/issue-4310.rs new file mode 100644 index 00000000000..6cf494fc5b8 --- /dev/null +++ b/tests/target/issue-4310.rs @@ -0,0 +1,9 @@ +#![feature(const_generics)] + +fn foo< + const N: [u8; { + struct Inner<'a>(&'a ()); + 3 + }], +>() { +}