@@ -59,7 +59,11 @@ bool migrator::updateCodeAndEmitRemapIfNeeded(
59
59
// Phase 2: Syntactic Transformations
60
60
// Don't run these passes if we're already in newest Swift version.
61
61
if (EffectiveVersion != CurrentVersion) {
62
- auto FailedSyntacticPasses = M.performSyntacticPasses ();
62
+ SyntacticPassOptions Opts;
63
+
64
+ // Type of optional try changes since Swift 5.
65
+ Opts.RunOptionalTryMigration = !EffectiveVersion.isVersionAtLeast (5 );
66
+ auto FailedSyntacticPasses = M.performSyntacticPasses (Opts);
63
67
if (FailedSyntacticPasses) {
64
68
return true ;
65
69
}
@@ -173,7 +177,7 @@ Migrator::performAFixItMigration(version::Version SwiftLanguageVersion) {
173
177
return Instance;
174
178
}
175
179
176
- bool Migrator::performSyntacticPasses () {
180
+ bool Migrator::performSyntacticPasses (SyntacticPassOptions Opts ) {
177
181
clang::FileSystemOptions ClangFileSystemOptions;
178
182
clang::FileManager ClangFileManager { ClangFileSystemOptions };
179
183
@@ -197,8 +201,10 @@ bool Migrator::performSyntacticPasses() {
197
201
198
202
runAPIDiffMigratorPass (Editor, StartInstance->getPrimarySourceFile (),
199
203
getMigratorOptions ());
200
- runOptionalTryMigratorPass (Editor, StartInstance->getPrimarySourceFile (),
201
- getMigratorOptions ());
204
+ if (Opts.RunOptionalTryMigration ) {
205
+ runOptionalTryMigratorPass (Editor, StartInstance->getPrimarySourceFile (),
206
+ getMigratorOptions ());
207
+ }
202
208
203
209
Edits.commit (Editor.getEdits ());
204
210
0 commit comments