@@ -1011,6 +1011,9 @@ static bool ParseEnabledFeatureArgs(LangOptions &Opts, ArgList &Args,
1011
1011
else if (Args.hasArg (OPT_strict_memory_safety_migrate))
1012
1012
Opts.enableFeature (Feature::StrictMemorySafety, /* forMigration=*/ true );
1013
1013
1014
+ if (Args.hasArg (OPT_enable_library_evolution, OPT_enable_resilience))
1015
+ Opts.enableFeature (Feature::LibraryEvolution);
1016
+
1014
1017
return HadError;
1015
1018
}
1016
1019
@@ -1802,7 +1805,7 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
1802
1805
HadError = true ;
1803
1806
}
1804
1807
1805
- if (FrontendOpts. EnableLibraryEvolution ) {
1808
+ if (Opts. hasFeature (Feature::LibraryEvolution) ) {
1806
1809
Diags.diagnose (SourceLoc (), diag::evolution_with_embedded);
1807
1810
HadError = true ;
1808
1811
}
@@ -2138,7 +2141,8 @@ static bool ParseClangImporterArgs(ClangImporterOptions &Opts, ArgList &Args,
2138
2141
2139
2142
// Until we have some checking in place, internal bridging headers are a
2140
2143
// bit unsafe without library evolution.
2141
- if (Opts.BridgingHeaderIsInternal && !FrontendOpts.EnableLibraryEvolution ) {
2144
+ if (Opts.BridgingHeaderIsInternal &&
2145
+ !LangOpts.hasFeature (Feature::LibraryEvolution)) {
2142
2146
Diags.diagnose (SourceLoc (),
2143
2147
diag::internal_bridging_header_without_library_evolution);
2144
2148
}
@@ -3064,7 +3068,7 @@ static bool ParseSILArgs(SILOptions &Opts, ArgList &Args,
3064
3068
FrontendOptions::ActionType::TypecheckModuleFromInterface)
3065
3069
Diags.diagnose (SourceLoc (), diag::ignoring_option_requires_option,
3066
3070
" -package-cmo" , " -allow-non-resilient-access" );
3067
- } else if (!FEOpts. EnableLibraryEvolution ) {
3071
+ } else if (!LangOpts. hasFeature (Feature::LibraryEvolution) ) {
3068
3072
Diags.diagnose (SourceLoc (), diag::package_cmo_requires_library_evolution);
3069
3073
} else {
3070
3074
Opts.EnableSerializePackage = true ;
0 commit comments