@@ -253,12 +253,17 @@ migrateUnionDefinition_ author pkg oldUnion newUnion tvarMapOld tvarMapNew oldVe
253253 migration :: Text
254254 migration = migrationName <> " " <> tvarMigrationTextsCombined
255255
256- paramMigrationPairs = zip tvarsOld tvarsNew
256+ paramMigrationPairs :: [(N. Name , N. Name )]
257+ paramMigrationPairs = filter (\ (_, newTVar) -> isTVarInUseUnion newTVar) (zip tvarsOld tvarsNew)
257258
258259 paramMigrationFnsTypeSig :: [Text ]
259260 paramMigrationFnsTypeSig =
260261 paramMigrationPairs
261- & fmap (\ (oldT, newT) -> T. concat [ " (" , N. toText oldT, " _old -> " , N. toText newT, " _new)" ] )
262+ & fmap (\ (oldT, newT) -> T. concat [ " (" , N. toText oldT, " _old -> " , N. toText newT, " _new)" ])
263+
264+ isTVarInUseUnion :: N. Name -> Bool
265+ isTVarInUseUnion newTVar =
266+ any (\ (Can. Ctor _ _ _ params) -> any (isTVarInUse newTVar) params) (Can. _u_alts newUnion)
262267
263268 paramMigrationVars :: Text
264269 paramMigrationVars =
@@ -660,11 +665,11 @@ canAliasToMigration oldVersion newVersion scope interfaces recursionSet (typeNew
660665 usageParamMigrationFns :: [Text ]
661666 usageParamMigrationFns = usageParamMigrations & fmap migrationFn
662667
663- tvarsNew :: [Text ]
664- tvarsNew = tvarMapNew & fmap ( N. toText . fst )
668+ tvarsNew :: [N. Name ]
669+ tvarsNew = tvarMapNew & fmap fst
665670
666- tvarsOld :: [Text ]
667- tvarsOld = tvarMapOldReplaced & fmap ( N. toText . fst )
671+ tvarsOld :: [N. Name ]
672+ tvarsOld = tvarMapOldReplaced & fmap fst
668673
669674 (MigrationNested migrationAliasedType imps subDefs) =
670675 let
@@ -680,17 +685,28 @@ canAliasToMigration oldVersion newVersion scope interfaces recursionSet (typeNew
680685 migrationName :: Text
681686 migrationName = migrationNameUnderscored newModule oldVersion newVersion typeNameNew
682687
683- paramMigrationPairs = zip tvarsOld tvarsNew
688+ paramMigrationPairs :: [(N. Name , N. Name )]
689+ paramMigrationPairs =
690+ filter
691+ (\ (_, newTVar) ->
692+ isTVarInUse
693+ newTVar
694+ (case aliasTypeNew of
695+ Can. Holey a -> debugHaskellPass " 123123123123" newTVar a
696+ Can. Filled a -> debugHaskellPass " 123123123123" newTVar a
697+ )
698+ )
699+ (zip tvarsOld tvarsNew)
684700
685701 paramMigrationFnsTypeSig :: [Text ]
686702 paramMigrationFnsTypeSig =
687703 paramMigrationPairs
688- & fmap (\ (oldT, newT) -> T. concat [ " (" , oldT, " _old -> " , newT, " _new)" ] )
704+ & fmap (\ (oldT, newT) -> T. concat [ " (" , N. toText oldT, " _old -> " , N. toText newT, " _new)" ] )
689705
690706 paramMigrationVars :: Text
691707 paramMigrationVars =
692708 paramMigrationPairs
693- & fmap (\ (oldT, newT) -> T. concat [ " migrate_" , oldT ] )
709+ & fmap (\ (oldT, newT) -> T. concat [ " migrate_" , N. toText oldT ] )
694710 & T. intercalate " "
695711
696712 oldType = T. concat [moduleNameOld & dropCan & N. toText, " ." , typeNameOld & N. toText]
@@ -700,9 +716,9 @@ canAliasToMigration oldVersion newVersion scope interfaces recursionSet (typeNew
700716 migrationTypeSignature = T. concat
701717 [ paramMigrationFnsTypeSig & T. intercalate " -> " & suffixIfNonempty " -> "
702718 , " " , oldType , " "
703- , tvarsOld & fmap (\ tvar -> T. concat [tvar, " _old" ]) & T. intercalate " "
719+ , tvarsOld & fmap (\ tvar -> T. concat [N. toText tvar, " _old" ]) & T. intercalate " "
704720 , " -> " , newType , " "
705- , tvarsNew & fmap (\ tvar -> T. concat [tvar, " _new" ]) & T. intercalate " "
721+ , tvarsNew & fmap (\ tvar -> T. concat [N. toText tvar, " _new" ]) & T. intercalate " "
706722 ]
707723
708724 applyOldValueIfNotRecord m =
0 commit comments