The migrator only applies changes from the APIDiffMigratorPass in the primary file. This means that if a nominal type was renamed, for example, any members users have added in an extension in a separate file won't be visible, because the extension would still have the old name. This can result in 'wrong/extraneous/missing argument label' errors with fixits to change the argument labels that, when applied by the fixit pass, change which function was being called and cause post-migration errors.
This patch updates the fixit pass to ignore fixits from diag::wrong_argument_labels. diag::extra_argument_labels and diag::missing_argument_labels were already filtered out for other reasons.
Resolves rdar://problem/40170377
[migrator] Filter out diag::wrong_argument_labels for the fixit pass
Cherry-pick of #16664
The migrator only applies changes from the
APIDiffMigratorPass
in the primary file. This means that if a nominal type was renamed, for example, any members users have added in an extension in a separate file won't be visible, because the extension would still have the old name. This can result in 'wrong/extraneous/missing argument label' errors with fixits to change the argument labels that, when applied by the fixit pass, change which function was being called and cause post-migration errors.This patch updates the fixit pass to ignore fixits from
diag::wrong_argument_labels
.diag::extra_argument_labels
anddiag::missing_argument_labels
were already filtered out for other reasons.Resolves rdar://problem/40170377