@@ -1942,3 +1942,107 @@ fn fix_only_once_for_duplicates() {
1942
1942
1 from newly-applied unsafe blocks"
1943
1943
) ;
1944
1944
}
1945
+
1946
+ #[ cargo_test]
1947
+ fn migrate_project_to_package ( ) {
1948
+ let p = project ( )
1949
+ . file (
1950
+ "Cargo.toml" ,
1951
+ r#"
1952
+ cargo-features = ["edition2024"]
1953
+
1954
+ # Before project
1955
+ [ project ] # After project header
1956
+ # After project header line
1957
+ name = "foo"
1958
+ edition = "2021"
1959
+ # After project table
1960
+ "# ,
1961
+ )
1962
+ . file ( "src/lib.rs" , "" )
1963
+ . build ( ) ;
1964
+
1965
+ p. cargo ( "fix --edition --allow-no-vcs" )
1966
+ . masquerade_as_nightly_cargo ( & [ "edition2024" ] )
1967
+ . with_stderr (
1968
+ "\
1969
+ [WARNING] `[project]` is deprecated in favor of `[package]`
1970
+ [CHECKING] foo v0.0.0 ([CWD])
1971
+ [MIGRATING] src/lib.rs from 2021 edition to 2024
1972
+ [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [..]s
1973
+ " ,
1974
+ )
1975
+ . run ( ) ;
1976
+ assert_eq ! (
1977
+ p. read_file( "Cargo.toml" ) ,
1978
+ r#"
1979
+ cargo-features = ["edition2024"]
1980
+
1981
+ # Before project
1982
+ [ project ] # After project header
1983
+ # After project header line
1984
+ name = "foo"
1985
+ edition = "2021"
1986
+ # After project table
1987
+ "#
1988
+ ) ;
1989
+ }
1990
+
1991
+ #[ cargo_test]
1992
+ fn migrate_removes_project ( ) {
1993
+ let p = project ( )
1994
+ . file (
1995
+ "Cargo.toml" ,
1996
+ r#"
1997
+ cargo-features = ["edition2024"]
1998
+
1999
+ # Before package
2000
+ [ package ] # After package header
2001
+ # After package header line
2002
+ name = "foo"
2003
+ edition = "2021"
2004
+ # After package table
2005
+
2006
+ # Before project
2007
+ [ project ] # After project header
2008
+ # After project header line
2009
+ name = "foo"
2010
+ edition = "2021"
2011
+ # After project table
2012
+ "# ,
2013
+ )
2014
+ . file ( "src/lib.rs" , "" )
2015
+ . build ( ) ;
2016
+
2017
+ p. cargo ( "fix --edition --allow-no-vcs" )
2018
+ . masquerade_as_nightly_cargo ( & [ "edition2024" ] )
2019
+ . with_stderr (
2020
+ "\
2021
+ [WARNING] `[project]` is deprecated in favor of `[package]`
2022
+ [CHECKING] foo v0.0.0 ([CWD])
2023
+ [MIGRATING] src/lib.rs from 2021 edition to 2024
2024
+ [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [..]s
2025
+ " ,
2026
+ )
2027
+ . run ( ) ;
2028
+ assert_eq ! (
2029
+ p. read_file( "Cargo.toml" ) ,
2030
+ r#"
2031
+ cargo-features = ["edition2024"]
2032
+
2033
+ # Before package
2034
+ [ package ] # After package header
2035
+ # After package header line
2036
+ name = "foo"
2037
+ edition = "2021"
2038
+ # After package table
2039
+
2040
+ # Before project
2041
+ [ project ] # After project header
2042
+ # After project header line
2043
+ name = "foo"
2044
+ edition = "2021"
2045
+ # After project table
2046
+ "#
2047
+ ) ;
2048
+ }
0 commit comments