@@ -138,13 +138,13 @@ fn render_easyconfig(plan: &PackagePlan, lock: &ProfileLock, versionsuffix: &str
138138 . dependencies
139139 . iter ( )
140140 . filter ( |dependency| dependency. build )
141- . map ( render_dependency)
141+ . map ( |dependency| render_dependency ( dependency , & lock . toolchain ) )
142142 . collect :: < Vec < _ > > ( ) ;
143143 let runtime_dependencies = lock
144144 . dependencies
145145 . iter ( )
146146 . filter ( |dependency| !dependency. build )
147- . map ( render_dependency)
147+ . map ( |dependency| render_dependency ( dependency , & lock . toolchain ) )
148148 . collect :: < Vec < _ > > ( ) ;
149149 let moduleclass = plan. build . moduleclass . as_deref ( ) . unwrap_or ( "lib" ) ;
150150
@@ -207,7 +207,20 @@ fn render_sources(plan: &PackagePlan) -> (String, String) {
207207 )
208208}
209209
210- fn render_dependency ( dependency : & crate :: package:: LockedDependency ) -> String {
210+ fn render_dependency (
211+ dependency : & crate :: package:: LockedDependency ,
212+ package_toolchain : & crate :: domain:: Toolchain ,
213+ ) -> String {
214+ if dependency. toolchain != * package_toolchain {
215+ return format ! (
216+ "('{}', '{}', '{}', ('{}', '{}'))" ,
217+ escape_single( & dependency. name) ,
218+ escape_single( & dependency. version) ,
219+ escape_single( dependency. versionsuffix. as_deref( ) . unwrap_or( "" ) ) ,
220+ escape_single( & dependency. toolchain. name) ,
221+ escape_single( & dependency. toolchain. version) ,
222+ ) ;
223+ }
211224 match dependency. versionsuffix . as_deref ( ) {
212225 Some ( versionsuffix) if !versionsuffix. is_empty ( ) => format ! (
213226 "('{}', '{}', '{}')" ,
0 commit comments