476: nicer trailing comma handling in types r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
bors[bot] 2019-01-09 16:15:32 +00:00
commit c2b8aa1ce5
5 changed files with 21 additions and 15 deletions

9
Cargo.lock generated
View file

@ -409,7 +409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "join_to_string" name = "join_to_string"
version = "0.1.1" version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
@ -646,7 +646,7 @@ version = "0.1.0"
dependencies = [ dependencies = [
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"join_to_string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"ra_ide_api_light 0.1.0", "ra_ide_api_light 0.1.0",
"ra_syntax 0.1.0", "ra_syntax 0.1.0",
"tools 0.1.0", "tools 0.1.0",
@ -672,6 +672,7 @@ dependencies = [
"arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
"ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "ena 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
"flexi_logger 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)", "flexi_logger 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)",
"join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
"ra_arena 0.1.0", "ra_arena 0.1.0",
@ -709,7 +710,7 @@ name = "ra_ide_api_light"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"join_to_string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"proptest 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)", "proptest 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)",
"ra_syntax 0.1.0", "ra_syntax 0.1.0",
"ra_text_edit 0.1.0", "ra_text_edit 0.1.0",
@ -1531,7 +1532,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" "checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d"
"checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358" "checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b"
"checksum join_to_string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7bddc885f3fd69dd4b5d747c2efe6dd2c36d795ea9938281ed50910e32c95e31" "checksum join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc7a5290e8c2606ce2be49f456d50f69173cb96d1541e4f66e34ac8b331a98f"
"checksum languageserver-types 0.53.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7c01845f71b8b3b3557a8179af4434a4b2570829da12371f05272d28183a06ce" "checksum languageserver-types 0.53.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7c01845f71b8b3b3557a8179af4434a4b2570829da12371f05272d28183a06ce"
"checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1"
"checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd" "checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd"

View file

@ -12,6 +12,7 @@ salsa = "0.9.1"
rustc-hash = "1.0" rustc-hash = "1.0"
parking_lot = "0.7.0" parking_lot = "0.7.0"
ena = "0.11" ena = "0.11"
join_to_string = "0.1.3"
ra_syntax = { path = "../ra_syntax" } ra_syntax = { path = "../ra_syntax" }
ra_arena = { path = "../ra_arena" } ra_arena = { path = "../ra_arena" }
ra_db = { path = "../ra_db" } ra_db = { path = "../ra_db" }

View file

@ -25,6 +25,7 @@ use std::{fmt, mem};
use log; use log;
use ena::unify::{InPlaceUnificationTable, UnifyKey, UnifyValue, NoError}; use ena::unify::{InPlaceUnificationTable, UnifyKey, UnifyValue, NoError};
use ra_arena::map::ArenaMap; use ra_arena::map::ArenaMap;
use join_to_string::join;
use ra_db::Cancelable; use ra_db::Cancelable;
@ -396,18 +397,21 @@ impl fmt::Display for Ty {
Ty::Ref(t, m) => write!(f, "&{}{}", m.as_keyword_for_ref(), t), Ty::Ref(t, m) => write!(f, "&{}{}", m.as_keyword_for_ref(), t),
Ty::Never => write!(f, "!"), Ty::Never => write!(f, "!"),
Ty::Tuple(ts) => { Ty::Tuple(ts) => {
write!(f, "(")?; if ts.len() == 1 {
for t in ts.iter() { write!(f, "({},)", ts[0])
write!(f, "{},", t)?; } else {
join(ts.iter())
.surround_with("(", ")")
.separator(", ")
.to_fmt(f)
} }
write!(f, ")")
} }
Ty::FnPtr(sig) => { Ty::FnPtr(sig) => {
write!(f, "fn(")?; join(sig.input.iter())
for t in &sig.input { .surround_with("fn(", ")")
write!(f, "{},", t)?; .separator(", ")
} .to_fmt(f)?;
write!(f, ") -> {}", sig.output) write!(f, " -> {}", sig.output)
} }
Ty::Adt { name, .. } => write!(f, "{}", name), Ty::Adt { name, .. } => write!(f, "{}", name),
Ty::Unknown => write!(f, "[unknown]"), Ty::Unknown => write!(f, "[unknown]"),

View file

@ -4,7 +4,7 @@
[88; 89) 'a': u32 [88; 89) 'a': u32
[92; 108) 'unknow...nction': [unknown] [92; 108) 'unknow...nction': [unknown]
[92; 110) 'unknow...tion()': u32 [92; 110) 'unknow...tion()': u32
[116; 125) 'takes_u32': fn(u32,) -> () [116; 125) 'takes_u32': fn(u32) -> ()
[116; 128) 'takes_u32(a)': () [116; 128) 'takes_u32(a)': ()
[126; 127) 'a': u32 [126; 127) 'a': u32
[138; 139) 'b': i32 [138; 139) 'b': i32

View file

@ -22,7 +22,7 @@
[166; 188) 'minus_...ONST_2': bool [166; 188) 'minus_...ONST_2': bool
[181; 188) 'CONST_2': isize [181; 188) 'CONST_2': isize
[198; 199) 'c': i32 [198; 199) 'c': i32
[202; 203) 'f': fn(bool,) -> i32 [202; 203) 'f': fn(bool) -> i32
[202; 211) 'f(z || y)': i32 [202; 211) 'f(z || y)': i32
[202; 215) 'f(z || y) + 5': i32 [202; 215) 'f(z || y) + 5': i32
[204; 205) 'z': bool [204; 205) 'z': bool