@@ -44,3 +44,127 @@ fn prepare_for_2018() {
4444 assert ! ( p. read( "src/lib.rs" ) . contains( "use crate::foo::FOO;" ) ) ;
4545 assert ! ( p. read( "src/lib.rs" ) . contains( "let x = crate::foo::FOO;" ) ) ;
4646}
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