Skip to content

Commit 3035670

Browse files
authored
Triage issues (#4242)
1 parent 5941299 commit 3035670

File tree

4 files changed

+100
-3
lines changed

4 files changed

+100
-3
lines changed

Diff for: src/formatting.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ fn format_project(
9090
}
9191

9292
// Parse the crate.
93-
let directory_ownership = input.to_directory_ownership();
93+
let directory_ownership = input.to_directory_ownership(operation_setting.recursive);
9494
let original_snippet = if let Input::Text(ref str) = input {
9595
Some(str.to_owned())
9696
} else {
@@ -488,8 +488,10 @@ impl Input {
488488
}
489489
}
490490

491-
fn to_directory_ownership(&self) -> Option<DirectoryOwnership> {
491+
fn to_directory_ownership(&self, recursive: bool) -> Option<DirectoryOwnership> {
492492
match self {
493+
// On recursive mode, we assume that input is the root file.
494+
Input::File(..) if recursive => None,
493495
Input::File(ref file) => {
494496
// If there exists a directory with the same name as an input,
495497
// then the input should be parsed as a sub module.
@@ -502,7 +504,7 @@ impl Input {
502504
None
503505
}
504506
}
505-
_ => None,
507+
Input::Text(..) => None,
506508
}
507509
}
508510
}

Diff for: tests/source/configs/normalize_comments/true.rs

+6
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,9 @@ fn adipiscing() -> usize {}
1111
////////////////////////////////////////////////////////////////////////////////
1212
// Basic slice extension methods
1313
////////////////////////////////////////////////////////////////////////////////
14+
15+
struct Foo {
16+
field1: u32,
17+
// field2: u32,
18+
// field3: u32,
19+
}

Diff for: tests/target/configs/normalize_comments/true.rs

+6
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,9 @@ fn adipiscing() -> usize {}
1111
////////////////////////////////////////////////////////////////////////////////
1212
// Basic slice extension methods
1313
////////////////////////////////////////////////////////////////////////////////
14+
15+
struct Foo {
16+
field1: u32,
17+
/* field2: u32,
18+
* field3: u32, */
19+
}

Diff for: tests/target/issue-3762.rs

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
// rustfmt-format_macro_bodies: true
2+
3+
extern crate toml;
4+
#[macro_use]
5+
extern crate serde_derive;
6+
7+
use toml::Value;
8+
9+
macro_rules! float_inf_tests {
10+
($ty:ty) => {{
11+
#[derive(Serialize, Deserialize)]
12+
struct S {
13+
sf1: $ty,
14+
sf2: $ty,
15+
sf3: $ty,
16+
sf4: $ty,
17+
sf5: $ty,
18+
sf6: $ty,
19+
sf7: $ty,
20+
sf8: $ty,
21+
}
22+
let inf: S = toml::from_str(
23+
r"
24+
# infinity
25+
sf1 = inf # positive infinity
26+
sf2 = +inf # positive infinity
27+
sf3 = -inf # negative infinity
28+
29+
# not a number
30+
sf4 = nan # actual sNaN/qNaN encoding is implementation specific
31+
sf5 = +nan # same as `nan`
32+
sf6 = -nan # valid, actual encoding is implementation specific
33+
34+
# zero
35+
sf7 = +0.0
36+
sf8 = -0.0
37+
",
38+
)
39+
.expect("Parse infinities.");
40+
41+
assert!(inf.sf1.is_infinite());
42+
assert!(inf.sf1.is_sign_positive());
43+
assert!(inf.sf2.is_infinite());
44+
assert!(inf.sf2.is_sign_positive());
45+
assert!(inf.sf3.is_infinite());
46+
assert!(inf.sf3.is_sign_negative());
47+
48+
assert!(inf.sf4.is_nan());
49+
assert!(inf.sf4.is_sign_positive());
50+
assert!(inf.sf5.is_nan());
51+
assert!(inf.sf5.is_sign_positive());
52+
assert!(inf.sf6.is_nan());
53+
assert!(inf.sf6.is_sign_negative());
54+
55+
assert_eq!(inf.sf7, 0.0);
56+
assert!(inf.sf7.is_sign_positive());
57+
assert_eq!(inf.sf8, 0.0);
58+
assert!(inf.sf8.is_sign_negative());
59+
60+
let s = toml::to_string(&inf).unwrap();
61+
assert_eq!(
62+
s,
63+
"\
64+
sf1 = inf
65+
sf2 = inf
66+
sf3 = -inf
67+
sf4 = nan
68+
sf5 = nan
69+
sf6 = -nan
70+
sf7 = 0.0
71+
sf8 = -0.0
72+
"
73+
);
74+
75+
toml::from_str::<Value>(&s).expect("roundtrip");
76+
}};
77+
}
78+
79+
#[test]
80+
fn float_inf() {
81+
float_inf_tests!(f32);
82+
float_inf_tests!(f64);
83+
}

0 commit comments

Comments
 (0)