@@ -613,6 +613,117 @@ foo v0.0.1 ([CWD])
613
613
. run ( ) ;
614
614
}
615
615
616
+ #[ cargo_test( nightly, reason = "edition2024 in rustc is unstable" ) ]
617
+ fn resolve_edition2024 ( ) {
618
+ Package :: new ( "only-newer" , "1.6.0" )
619
+ . rust_version ( "1.65.0" )
620
+ . file ( "src/lib.rs" , "fn other_stuff() {}" )
621
+ . publish ( ) ;
622
+ Package :: new ( "newer-and-older" , "1.5.0" )
623
+ . rust_version ( "1.55.0" )
624
+ . file ( "src/lib.rs" , "fn other_stuff() {}" )
625
+ . publish ( ) ;
626
+ Package :: new ( "newer-and-older" , "1.6.0" )
627
+ . rust_version ( "1.65.0" )
628
+ . file ( "src/lib.rs" , "fn other_stuff() {}" )
629
+ . publish ( ) ;
630
+
631
+ let p = project ( )
632
+ . file (
633
+ "Cargo.toml" ,
634
+ r#"
635
+ cargo-features = ["edition2024"]
636
+
637
+ [package]
638
+ name = "foo"
639
+ version = "0.0.1"
640
+ edition = "2024"
641
+ authors = []
642
+ rust-version = "1.60.0"
643
+
644
+ [dependencies]
645
+ only-newer = "1.0.0"
646
+ newer-and-older = "1.0.0"
647
+ "# ,
648
+ )
649
+ . file ( "src/main.rs" , "fn main(){}" )
650
+ . build ( ) ;
651
+
652
+ // Edition2024 should resolve for MSRV
653
+ p. cargo ( "generate-lockfile" )
654
+ . arg ( "-Zmsrv-policy" )
655
+ . masquerade_as_nightly_cargo ( & [ "edition2024" , "msrv-policy" ] )
656
+ . with_stderr (
657
+ "\
658
+ [UPDATING] `dummy-registry` index
659
+ [LOCKING] 3 packages to latest Rust 1.60.0 compatible versions
660
+ [ADDING] newer-and-older v1.5.0 (latest: v1.6.0)
661
+ " ,
662
+ )
663
+ . run ( ) ;
664
+ p. cargo ( "tree" )
665
+ . arg ( "-Zmsrv-policy" )
666
+ . masquerade_as_nightly_cargo ( & [ "edition2024" , "msrv-policy" ] )
667
+ . with_stdout (
668
+ "\
669
+ foo v0.0.1 ([CWD])
670
+ ├── newer-and-older v1.5.0
671
+ └── only-newer v1.6.0
672
+ " ,
673
+ )
674
+ . run ( ) ;
675
+
676
+ // `--ignore-rust-version` has precedence over Edition2024
677
+ p. cargo ( "generate-lockfile --ignore-rust-version" )
678
+ . with_stderr (
679
+ "\
680
+ [UPDATING] `dummy-registry` index
681
+ [LOCKING] 3 packages to latest compatible versions
682
+ " ,
683
+ )
684
+ . arg ( "-Zmsrv-policy" )
685
+ . masquerade_as_nightly_cargo ( & [ "msrv-policy" ] )
686
+ . run ( ) ;
687
+ p. cargo ( "tree" )
688
+ . arg ( "-Zmsrv-policy" )
689
+ . masquerade_as_nightly_cargo ( & [ "edition2024" , "msrv-policy" ] )
690
+ . with_stdout (
691
+ "\
692
+ foo v0.0.1 ([CWD])
693
+ ├── newer-and-older v1.6.0
694
+ └── only-newer v1.6.0
695
+ " ,
696
+ )
697
+ . run ( ) ;
698
+
699
+ // config has precedence over Edition2024
700
+ p. cargo ( "generate-lockfile" )
701
+ . env (
702
+ "CARGO_RESOLVER_SOMETHING_LIKE_PRECEDENCE" ,
703
+ "something-like-maximum" ,
704
+ )
705
+ . with_stderr (
706
+ "\
707
+ [UPDATING] `dummy-registry` index
708
+ [LOCKING] 3 packages to latest compatible versions
709
+ " ,
710
+ )
711
+ . arg ( "-Zmsrv-policy" )
712
+ . masquerade_as_nightly_cargo ( & [ "msrv-policy" ] )
713
+ . run ( ) ;
714
+ p. cargo ( "tree" )
715
+ . arg ( "-Zmsrv-policy" )
716
+ . masquerade_as_nightly_cargo ( & [ "edition2024" , "msrv-policy" ] )
717
+ . with_stdout (
718
+ "\
719
+ foo v0.0.1 ([CWD])
720
+ ├── newer-and-older v1.6.0
721
+ └── only-newer v1.6.0
722
+ " ,
723
+ )
724
+ . run ( ) ;
725
+ }
726
+
616
727
#[ cargo_test( nightly, reason = "edition2024 in rustc is unstable" ) ]
617
728
fn resolve_v3 ( ) {
618
729
Package :: new ( "only-newer" , "1.6.0" )
0 commit comments