@@ -751,6 +751,52 @@ impl<'a> SplitEngine<'a> {
751751
752752 // Remove exclude if present (not needed for split repo)
753753 table. remove ( "exclude" ) ;
754+
755+ // Filter default-members to only include split crates (Issue #2)
756+ let members_set: std:: collections:: HashSet < & str > = members. iter ( ) . map ( |s| s. as_str ( ) ) . collect ( ) ;
757+ if let Some ( default_members) = table. get_mut ( "default-members" )
758+ && let Some ( arr) = default_members. as_array_mut ( )
759+ {
760+ arr. retain ( |item| item. as_str ( ) . map ( |s| members_set. contains ( s) ) . unwrap_or ( false ) ) ;
761+ }
762+ // Remove default-members if empty
763+ if table
764+ . get ( "default-members" )
765+ . and_then ( |d| d. as_array ( ) )
766+ . map ( |a| a. is_empty ( ) )
767+ . unwrap_or ( false )
768+ {
769+ table. remove ( "default-members" ) ;
770+ }
771+
772+ // Remove workspace.dependencies - split crates have inlined deps (Issue #4)
773+ table. remove ( "dependencies" ) ;
774+ }
775+
776+ // Filter profile package specs to only include split crates (Issue #3)
777+ let members_set: std:: collections:: HashSet < & str > = members. iter ( ) . map ( |s| s. as_str ( ) ) . collect ( ) ;
778+ if let Some ( profile) = doc. get_mut ( "profile" ) . and_then ( |p| p. as_table_mut ( ) ) {
779+ for ( _, profile_section) in profile. iter_mut ( ) {
780+ if let Some ( profile_table) = profile_section. as_table_mut ( ) {
781+ if let Some ( pkg) = profile_table. get_mut ( "package" ) . and_then ( |p| p. as_table_mut ( ) ) {
782+ let pkg_names: Vec < String > = pkg. iter ( ) . map ( |( k, _) | k. to_string ( ) ) . collect ( ) ;
783+ for pkg_name in pkg_names {
784+ if !members_set. contains ( pkg_name. as_str ( ) ) {
785+ pkg. remove ( & pkg_name) ;
786+ }
787+ }
788+ }
789+ // Remove empty package table
790+ if profile_table
791+ . get ( "package" )
792+ . and_then ( |p| p. as_table ( ) )
793+ . map ( |t| t. is_empty ( ) )
794+ . unwrap_or ( false )
795+ {
796+ profile_table. remove ( "package" ) ;
797+ }
798+ }
799+ }
754800 }
755801
756802 // Remove package section if present (virtual workspace)
0 commit comments