From 15854e5fd3acfefe0e31476a255f5ae3a8ef9ec3 Mon Sep 17 00:00:00 2001 From: Caleb Cartwright Date: Fri, 30 Oct 2020 00:03:03 -0500 Subject: [PATCH] feat: v2 support for nested tuples w/o spaces --- src/chains.rs | 8 ++++++-- tests/source/tuple.rs | 11 +++++++++++ tests/source/tuple_v2.rs | 5 +++++ tests/target/tuple.rs | 11 +++++++++++ tests/target/tuple_v2.rs | 5 +++++ 5 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 tests/source/tuple_v2.rs create mode 100644 tests/target/tuple_v2.rs diff --git a/src/chains.rs b/src/chains.rs index 8a0b416632b..ac14ec9e110 100644 --- a/src/chains.rs +++ b/src/chains.rs @@ -62,7 +62,7 @@ use rustc_ast::{ast, ptr}; use rustc_span::{symbol, BytePos, Span}; use crate::comment::{rewrite_comment, CharClasses, FullCodeCharKind, RichChar}; -use crate::config::IndentStyle; +use crate::config::{IndentStyle, Version}; use crate::expr::rewrite_call; use crate::lists::extract_pre_comment; use crate::macros::convert_try_mac; @@ -200,7 +200,11 @@ impl Rewrite for ChainItem { ChainItemKind::StructField(ident) => format!(".{}", rewrite_ident(context, ident)), ChainItemKind::TupleField(ident, nested) => format!( "{}.{}", - if nested { " " } else { "" }, + if nested && context.config.version() == Version::One { + " " + } else { + "" + }, rewrite_ident(context, ident) ), ChainItemKind::Await => ".await".to_owned(), diff --git a/tests/source/tuple.rs b/tests/source/tuple.rs index 6c3ec8f1115..9a0f979fbca 100644 --- a/tests/source/tuple.rs +++ b/tests/source/tuple.rs @@ -50,3 +50,14 @@ fn issue1725() { bench_antialiased_lines!(bench_draw_antialiased_line_segment_diagonal, (10, 10), (450, 450)); bench_antialiased_lines!(bench_draw_antialiased_line_segment_shallow, (10, 10), (450, 80)); } + +fn issue_4355() { + let _ = ((1,),).0.0; +} + +// https://github.com/rust-lang/rustfmt/issues/4410 +impl Drop for LockGuard { + fn drop(&mut self) { + LockMap::unlock(&self.0.0, &self.0.1); + } +} diff --git a/tests/source/tuple_v2.rs b/tests/source/tuple_v2.rs new file mode 100644 index 00000000000..9223033832b --- /dev/null +++ b/tests/source/tuple_v2.rs @@ -0,0 +1,5 @@ +// rustfmt-version: Two + +fn issue_4355() { + let _ = ((1,),).0 .0; +} diff --git a/tests/target/tuple.rs b/tests/target/tuple.rs index a22586284dc..68bb2f3bc28 100644 --- a/tests/target/tuple.rs +++ b/tests/target/tuple.rs @@ -87,3 +87,14 @@ fn issue1725() { (450, 80) ); } + +fn issue_4355() { + let _ = ((1,),).0 .0; +} + +// https://github.com/rust-lang/rustfmt/issues/4410 +impl Drop for LockGuard { + fn drop(&mut self) { + LockMap::unlock(&self.0 .0, &self.0 .1); + } +} diff --git a/tests/target/tuple_v2.rs b/tests/target/tuple_v2.rs new file mode 100644 index 00000000000..ba653291c2f --- /dev/null +++ b/tests/target/tuple_v2.rs @@ -0,0 +1,5 @@ +// rustfmt-version: Two + +fn issue_4355() { + let _ = ((1,),).0.0; +}