Skip to content

Commit b1da2a5

Browse files
committed
Merge branch 'master' into clippy2
2 parents af7b341 + d881398 commit b1da2a5

File tree

9 files changed

+58
-7
lines changed

9 files changed

+58
-7
lines changed

README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,6 @@ A minimal Travis setup could look like this (requires Rust 1.24.0 or greater):
129129

130130
```yaml
131131
language: rust
132-
rust:
133-
- nightly
134132
before_script:
135133
- rustup component add rustfmt-preview
136134
script:

src/imports.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use syntax::ast::{self, UseTreeKind};
1515
use syntax::source_map::{self, BytePos, Span, DUMMY_SP};
1616

1717
use comment::combine_strs_with_missing_comments;
18-
use config::IndentStyle;
18+
use config::{Edition, IndentStyle};
1919
use lists::{definitive_tactic, itemize_list, write_list, ListFormatting, ListItem, Separator};
2020
use rewrite::{Rewrite, RewriteContext};
2121
use shape::Shape;
@@ -144,6 +144,7 @@ impl UseSegment {
144144
fn from_path_segment(
145145
context: &RewriteContext,
146146
path_seg: &ast::PathSegment,
147+
modsep: bool,
147148
) -> Option<UseSegment> {
148149
let name = rewrite_ident(context, path_seg.ident);
149150
if name.is_empty() || name == "{{root}}" {
@@ -152,7 +153,10 @@ impl UseSegment {
152153
Some(match name {
153154
"self" => UseSegment::Slf(None),
154155
"super" => UseSegment::Super(None),
155-
_ => UseSegment::Ident((*name).to_owned(), None),
156+
_ => {
157+
let mod_sep = if modsep { "::" } else { "" };
158+
UseSegment::Ident(format!("{}{}", mod_sep, name), None)
159+
}
156160
})
157161
}
158162
}
@@ -313,8 +317,13 @@ impl UseTree {
313317
visibility,
314318
attrs,
315319
};
320+
321+
let leading_modsep = context.config.edition() == Edition::Edition2018
322+
&& a.prefix.to_string().len() > 2
323+
&& a.prefix.to_string().starts_with("::");
324+
316325
for p in &a.prefix.segments {
317-
if let Some(use_segment) = UseSegment::from_path_segment(context, p) {
326+
if let Some(use_segment) = UseSegment::from_path_segment(context, p, leading_modsep) {
318327
result.path.push(use_segment);
319328
}
320329
}

src/items.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2232,8 +2232,10 @@ fn rewrite_args(
22322232
) -> Option<String> {
22332233
let mut arg_item_strs = args
22342234
.iter()
2235-
.map(|arg| arg.rewrite(context, Shape::legacy(multi_line_budget, arg_indent)))
2236-
.collect::<Option<Vec<_>>>()?;
2235+
.map(|arg| {
2236+
arg.rewrite(context, Shape::legacy(multi_line_budget, arg_indent))
2237+
.unwrap_or_else(|| context.snippet(arg.span()).to_owned())
2238+
}).collect::<Vec<_>>();
22372239

22382240
// Account for sugary self.
22392241
// FIXME: the comment for the self argument is dropped. This is blocked

tests/source/fn-simple.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,8 @@ crate fn init() {}
6767

6868
// #2630
6969
fn make_map<T, F: (Fn(&T) -> String)>(records: &Vec<T>, key_fn: F) -> HashMap<String, usize> {}
70+
71+
// #2956
72+
fn bar(beans: Asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf, spam: bool, eggs: bool) -> bool{
73+
unimplemented!();
74+
}

tests/source/issue-2927-2.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// rustfmt-edition: Edition2015
2+
#![feature(rust_2018_preview, uniform_paths)]
3+
use futures::prelude::*;
4+
use http_03::cli::Cli;
5+
use hyper::{service::service_fn_ok, Body, Response, Server};
6+
use ::log::{error, info, log};
7+
use structopt::StructOpt;

tests/source/issue-2927.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// rustfmt-edition: Edition2018
2+
#![feature(rust_2018_preview, uniform_paths)]
3+
use futures::prelude::*;
4+
use http_03::cli::Cli;
5+
use hyper::{service::service_fn_ok, Body, Response, Server};
6+
use ::log::{error, info, log};
7+
use structopt::StructOpt;

tests/target/fn-simple.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,12 @@ crate fn init() {}
108108

109109
// #2630
110110
fn make_map<T, F: (Fn(&T) -> String)>(records: &Vec<T>, key_fn: F) -> HashMap<String, usize> {}
111+
112+
// #2956
113+
fn bar(
114+
beans: Asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf,
115+
spam: bool,
116+
eggs: bool,
117+
) -> bool {
118+
unimplemented!();
119+
}

tests/target/issue-2927-2.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// rustfmt-edition: Edition2015
2+
#![feature(rust_2018_preview, uniform_paths)]
3+
use futures::prelude::*;
4+
use http_03::cli::Cli;
5+
use hyper::{service::service_fn_ok, Body, Response, Server};
6+
use log::{error, info, log};
7+
use structopt::StructOpt;

tests/target/issue-2927.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// rustfmt-edition: Edition2018
2+
#![feature(rust_2018_preview, uniform_paths)]
3+
use ::log::{error, info, log};
4+
use futures::prelude::*;
5+
use http_03::cli::Cli;
6+
use hyper::{service::service_fn_ok, Body, Response, Server};
7+
use structopt::StructOpt;

0 commit comments

Comments
 (0)