SILGen: Lower keypath references to other modules' properties and subscripts as external keypath components.

This way we'll link against the key path component the other module provides instead of making fragile assumptions about its current implementation. Since external keypath lowering isn't fully implemented elsewhere in the compiler, this is enabled behind a staging flag.

external keypath staging
This commit is contained in:
Joe Groff
2018-02-15 09:26:13 -08:00
parent 75e90cac20
commit b00ea61945
7 changed files with 170 additions and 36 deletions

View File

@@ -326,6 +326,8 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
Target.isOSDarwin());
Opts.EnableSILOpaqueValues |= Args.hasArg(OPT_enable_sil_opaque_values);
Opts.EnableKeyPathResilience |= Args.hasArg(OPT_enable_key_path_resilience);
#if SWIFT_DARWIN_ENABLE_STABLE_ABI_BIT
Opts.UseDarwinPreStableABIBit = false;
#else