@@ -44,3 +44,127 @@ fn prepare_for_2018() {
44
44
assert ! ( p. read( "src/lib.rs" ) . contains( "use crate::foo::FOO;" ) ) ;
45
45
assert ! ( p. read( "src/lib.rs" ) . contains( "let x = crate::foo::FOO;" ) ) ;
46
46
}
47
+
48
+ #[ test]
49
+ fn local_paths ( ) {
50
+ let p = project ( )
51
+ . file (
52
+ "src/lib.rs" ,
53
+ r#"
54
+ #![feature(rust_2018_preview)]
55
+
56
+ use test::foo;
57
+
58
+ mod test {
59
+ pub fn foo() {}
60
+ }
61
+
62
+ pub fn f() {
63
+ foo();
64
+ }
65
+ "# ,
66
+ )
67
+ . build ( ) ;
68
+
69
+ let stderr = "\
70
+ [CHECKING] foo v0.1.0 (CWD)
71
+ [FIXING] src/lib.rs (1 fix)
72
+ [FINISHED] dev [unoptimized + debuginfo]
73
+ " ;
74
+ p. expect_cmd ( "cargo-fix fix --prepare-for 2018" )
75
+ . stdout ( "" )
76
+ . stderr ( stderr)
77
+ . run ( ) ;
78
+
79
+ println ! ( "{}" , p. read( "src/lib.rs" ) ) ;
80
+ assert ! ( p. read( "src/lib.rs" ) . contains( "use crate::test::foo;" ) ) ;
81
+ }
82
+
83
+ #[ test]
84
+ fn local_paths_no_fix ( ) {
85
+ let p = project ( )
86
+ . file (
87
+ "src/lib.rs" ,
88
+ r#"
89
+ use test::foo;
90
+
91
+ mod test {
92
+ pub fn foo() {}
93
+ }
94
+
95
+ pub fn f() {
96
+ foo();
97
+ }
98
+ "# ,
99
+ )
100
+ . build ( ) ;
101
+
102
+ let stderr = "\
103
+ [CHECKING] foo v0.1.0 (CWD)
104
+ [FINISHED] dev [unoptimized + debuginfo]
105
+ " ;
106
+ p. expect_cmd ( "cargo-fix fix --prepare-for 2018" )
107
+ . stdout ( "" )
108
+ . stderr ( stderr)
109
+ . run ( ) ;
110
+ }
111
+
112
+ #[ test]
113
+ fn upgrade_extern_crate ( ) {
114
+ let p = project ( )
115
+ . file (
116
+ "Cargo.toml" ,
117
+ r#"
118
+ cargo-features = ["edition"]
119
+
120
+ [package]
121
+ name = "foo"
122
+ version = "0.1.0"
123
+ edition = '2018'
124
+
125
+ [workspace]
126
+
127
+ [dependencies]
128
+ bar = { path = 'bar' }
129
+ "# ,
130
+ )
131
+ . file (
132
+ "src/lib.rs" ,
133
+ r#"
134
+ #![warn(rust_2018_migration)]
135
+
136
+ extern crate bar;
137
+
138
+ use bar::bar;
139
+
140
+ pub fn foo() {
141
+ ::bar::bar();
142
+ bar();
143
+ }
144
+ "# ,
145
+ )
146
+ . file (
147
+ "bar/Cargo.toml" ,
148
+ r#"
149
+ [package]
150
+ name = "bar"
151
+ version = "0.1.0"
152
+ "# ,
153
+ )
154
+ . file ( "bar/src/lib.rs" , "pub fn bar() {}" )
155
+ . build ( ) ;
156
+
157
+ let stderr = "\
158
+ [CHECKING] bar v0.1.0 (CWD/bar)
159
+ [CHECKING] foo v0.1.0 (CWD)
160
+ [FIXING] src/lib.rs (1 fix)
161
+ [FINISHED] dev [unoptimized + debuginfo]
162
+ " ;
163
+ p. expect_cmd ( "cargo-fix fix" )
164
+ . stdout ( "" )
165
+ . stderr ( stderr)
166
+ . run ( ) ;
167
+
168
+ println ! ( "{}" , p. read( "src/lib.rs" ) ) ;
169
+ assert ! ( !p. read( "src/lib.rs" ) . contains( "extern crate" ) ) ;
170
+ }
0 commit comments