Skip to content

[AST] NFC: Enable reference storage type meta-programming #16237

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Jul 5, 2018

Conversation

davezarzycki
Copy link
Contributor

@davezarzycki davezarzycki commented Apr 28, 2018

Adding new reference storage types is mostly boilerplate. This patch series makes adding new reference storage types easier.

@davezarzycki
Copy link
Contributor Author

This passes validation testing on my local Linux box. Here goes:

@swift-ci please clean test

@davezarzycki
Copy link
Contributor Author

@swift-ci please clean test

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 68ce37024c12e36189831927541d3f749f3b2952

@davezarzycki
Copy link
Contributor Author

Helpful review notes:

  1. There are three flavors of reference storage types: static (like "Unmanaged"), loadable dynamic (like "Unowned"), and address-only dynamic (like "Weak").
  2. There are helpful macros for dealing with the two useful subsets of the three flavors.
  3. The "optionality" of the reference storage types is treated separately. Most subsystems don't care.
  4. Please do not assume that all reference storage types are "weak like". A new strengthOf(/*the enum*/) API exists for comparing the strength of reference storage kinds. In my case, I have a research branch where two new reference storage types exist that are stronger than the current "strong" default.

@rjmccall – When it comes to IRGen, I'd appreciate it if you could pay close attention to the TypeInfo macros and especially the existential ones. In particular, the extra inhabitant value/mask logic. Also, please check IRGenModule::get##Name##ExtraInhabitantValue() in GenHeap.cpp.

@gottesmm and @jckarter – When it comes to SIL, I'd appreciate it if you guys could check the SIL optimization changes that I made. In particular, do any subtle switches over SILInstructionKind still make sense with the minor tweaks outlined at the top of this pull request.

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 68ce37024c12e36189831927541d3f749f3b2952

@davezarzycki davezarzycki force-pushed the metaprogram_ref_storage_types branch from 68ce370 to 9369dfa Compare April 28, 2018 21:35
@davezarzycki
Copy link
Contributor Author

@swift-ci please clean test

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 68ce37024c12e36189831927541d3f749f3b2952

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 68ce37024c12e36189831927541d3f749f3b2952

Copy link
Contributor

@rjmccall rjmccall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This patch is huge. Could you break it up by area of the compiler, or by the major systems changed?


// NOTE: You will need to update ReferenceOwnership in ModuleFormat.h.
ADDRESS_ONLY_DYNAMIC_REF_STORAGE(Weak, weak, WEAK)
LOADABLE_DYNAMIC_REF_STORAGE(Unowned, unowned, UNOWNED)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's only loadable for native classes.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LOADABLE in this context means "load-able", not "always load".

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We use "loadable" to mean "values of this type can be loaded" pretty ubiquitously.

#ifndef STATIC_REF_STORAGE
#define STATIC_REF_STORAGE(Name, name, NAME) \
REF_STORAGE(Name, name, NAME)
#endif
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unmanaged has dynamic semantics. Those semantics may not add complicated extra code to copies and destroys, but they're definitely different.

I think what you're trying to express here is the level of runtime support they require, for synthesizing the runtime-functions list? Having a second metaprogramming database in IRGen isn't the end of the world if it helps this sort of thing.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I expected this feedback. Do you have any better naming suggestions?

ADDRESS_ONLY_WITH_RUNTIME_LOGIC_REF_STORAGE?
LOADABLE_WITH_RUNTIME_SUPPORT_REF_STORAGE?
COMPILETIME_REF_STORAGE?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about the following?

ADDRESS_ONLY_CHECKED_REF_STORAGE(...)
LOADABLE_CHECKED_REF_STORAGE(...)
UNCHECKED_REF_STORAGE(...)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @rjmccall – I've been working on breaking up the pull request as you requested. I'd really appreciate it if we could nail down the names before I get too deep into the refactoring. Are you okay with the following?

NEVER_LOADABLE_CHECKED_REF_STORAGE(...) // "Weak" is an example
SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(...) // "Unowned" is an example
ALWAYS_LOADABLE_CHECKED_REF_STORAGE(...) // No example from Swift, but I need it.
UNCHECKED_REF_STORAGE(...) // "Unmanaged" is an example

#include "swift/AST/ReferenceStorage.def"
}
llvm_unreachable("impossible");
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is strengthOf really necessary, or should it just be isStrongerThan?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What I want is tristate comparison and returning int seemed like the easiest way to help clients do greater-than/less-than/equal-to comparisons.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But why not just give them a comparator? It can return a non-bool if you want to do simultaneous comparison. But the numbers here are meaningless, and they define away partiality, which I expect will sometimes be the right result (should we really be "strengthening" weak references to unowned or vice-versa?).

ATTRS(NoUnwind, FirstParamReturned))
#define ADDRESS_ONLY_DYNAMIC_REF_STORAGE_HELPER(Name, Emit, SymName, HalfEmit) \
/* void swift_##SymName##Destroy(Name##Reference *object); */ \
FUNCTION(Emit##Name##Destroy, swift_##SymName##Destroy, C_CC, \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why Emit on all of these variable names?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you look at the use of the above macro, it is called twice, once with Emit set to Native and once with Emit set to Unknown.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. Why would you call this parameter Emit? Maybe Nativeness?

lib/AST/Type.cpp Outdated
} \
return ty->usesNativeReferenceCounting(resilience); \
}
#include "swift/AST/ReferenceStorage.def"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method only makes sense for UnownedStorageType. Weak references are never loadable and unmanaged references are always loadable.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a research branch where I'm adding new reference storage types. This method needs to be able to deal with the new types without having hard coded knowledge about them.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wait, this method I found confusing. It is named isLoadable but it checks for native reference counting. If you're arguing that this is per ref-storage-type policy decision, then maybe the method should mimic the policy new APIs added to Ownership.h.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure that "unmanaged references are always loadable" is true. Before this pull request, there was no loadability check in the SIL verifier for Unmanaged (unlike Unowned), and trying to enable this assertion causes build regressions.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm saying that most reference storage types do not have variable loadability; that is a special property of unowned references.

Copy link
Contributor

@rjmccall rjmccall May 1, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unmanaged is never not loadable. It's possible that we're messing that up somewhere.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great. Let's reconcile the loadability of Unmanaged separately. Please see: #16279

const LoadableTypeInfo *createUnmanagedStorageType(llvm::Type *valueType);
#define STATIC_REF_STORAGE(Name, ...) \
const LoadableTypeInfo *create##Name##StorageType(llvm::Type *valueType);
#include "swift/AST/ReferenceStorage.def"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it simplifies getting rid of STATIC_REF_STORAGE, I think it's probably fine for this to not return LoadableTypeInfo*.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

out.add(IGF.Builder.CreatePtrToInt(value, getOptionalIntType())); \
} else { \
out.add(value); \
} \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be based on the actual optionality of the referent type, not whether the reference kind generally supports optionality. Otherwise it's not going to do the right thing for reference types whose referent type can be either optional or not.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for clarifying. I wasn't sure about this and everything seemed to work with the code at hand.

How can one dig out the optionality state based on the data structures at hand? Is it doable? Or do I need to push an "is optional" boolean through the design?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It probably wouldn't be the worst thing to pass a SILType to all the reference-counting operations, or yeah, you could store a boolean when creating it.

auto specifierKind = (ownershipKind != ReferenceOwnership::Weak)
? VarDecl::Specifier::Let
: VarDecl::Specifier::Var;
auto specifierKind = optionalityOf(ownershipKind) == Optionality::Required
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is specific to weak, not to general optionality.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay. I can change that.

@davezarzycki
Copy link
Contributor Author

Hey @rjmccall – As to your overall feedback about breaking up this patch, I can certainly do that as soon as we settle on the "right" macro names.

@davezarzycki davezarzycki force-pushed the metaprogram_ref_storage_types branch from aa94023 to ed39561 Compare May 1, 2018 00:01
@davezarzycki
Copy link
Contributor Author

@swift-ci please smoke test

@davezarzycki davezarzycki force-pushed the metaprogram_ref_storage_types branch from ed39561 to 839c106 Compare May 2, 2018 13:19
@davezarzycki davezarzycki changed the title [QoI and hopefully NFC] Meta-program the reference storage types [AST] NFC: Enable reference storage type meta-programming May 2, 2018
@davezarzycki
Copy link
Contributor Author

Hi @rjmccall and everybody else. I've dialed the pull request way back and I'm starting a patch series that will involve multiple pull requests on a per-subsystem basis. I'd like to only seek sign off on the fundamental .def file and AST/Ownership.h changes in this pull request. No more. Thanks!

@swift-ci please smoke test

@davezarzycki
Copy link
Contributor Author

Ping.

Hi @rjmccall and everybody else. I've broken this pull request into a patch series as you requested and addressed more of your feedback. When you have the time, I'd appreciate it if you could approve the ReferenceStorage.def macro names. I can share the patch series after that.

A question for the broader audience: would you prefer a pull request per subsystem? Or a series of independent patches on one branch?

Copy link
Contributor

@jrose-apple jrose-apple left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure this is net-easier, given how complicated your macros are. Maybe it's worth explaining your intended use case on the forums? Sorry, I see other people are already well-involved. Not sure how I missed that.

enum : unsigned { NumReferenceOwnershipBits =
countBitsUsed(static_cast<unsigned>(ReferenceOwnership::Last_Kind)) };

static inline llvm::StringRef keywordOf(ReferenceOwnership ownership) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not super happy with dumping all of these in the swift:: namespace. Maybe there should be a sub-namespace?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems separable and larger than the pull request at hand. As the person to "blame" for many of these Num*Bits enums, I'd be happy to discuss in the forums what the "right" tradeoff is and then implement it. Do you want to start a thread?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not the Num*Bits I care about, it's keywordOf and Optionality and things like that. I know the type signature shows what they're for, but this is still a header that gets included all over the place, and it's weird to put these generically-named declarations in the common namespace.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I couldn't find any convention in Swift for how to workaround the fact that C++ doesn't allow methods on enum types. I'm open to suggestions.

In the case of this patch series and the way it is evolving, I could probably just move this logic to methods on ReferenceStorageType.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we've just begrudgingly accepted the need to have fairly general-looking function names in the Swift namespace.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optionality in particular is really bad, compared to OptionalTypeKind.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not in love with the name either. I just want to abstract away the hardcoded knowledge about the "optionality" of the reference storage types. How about OwnershipOptionality? Or ReferenceStorageOptionality?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Either of those is better, yeah. I think I'd lean towards the latter—this is not something that needs to be particularly concise.

Copy link
Contributor Author

@davezarzycki davezarzycki May 4, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After some thought, I'm going with ReferenceOwnershipOptionality over ReferenceStorageOptionality. The rational is threefold:

  1. The default ReferenceOwnership is not a reference storage type.
  2. An enum over just the reference storage types does not exist and I feel that there is not sufficient demand for such an enum to exist.
  3. I don't want to create a situation where the callers of optionalityOf() need to check for Strong first before calling the API.

@davezarzycki
Copy link
Contributor Author

Hi @jrose-apple – I agree that the macros are "ugly" and I've been looking into ways to use templates instead of macros. The way that IRGen works though encourages some amount macro use because some type information has been lost. I've also contemplated other ideas, like lowering the reference storage types to one "SILReferenceStorage" type. I'm open to suggestions.

I would also like to put forth the observation that this can't be cleaned up until the abstractions are disentangled from the specific reference storage types that exist at the moment; therefore the macros as ugly as they are represent "progress".

@jrose-apple
Copy link
Contributor

I guess as long as other reviewers can picture where you're going, I'll stay out of it.

@rjmccall
Copy link
Contributor

rjmccall commented May 3, 2018

I think those macro names are fine, thanks.

@davezarzycki davezarzycki force-pushed the metaprogram_ref_storage_types branch from 839c106 to b4b1dc7 Compare May 3, 2018 18:19
@davezarzycki davezarzycki force-pushed the metaprogram_ref_storage_types branch from 7760824 to 057bbb3 Compare June 30, 2018 17:49
@davezarzycki
Copy link
Contributor Author

Hi @rjmccall – Sorry for the delay, I've been preparing my home for a newborn due mid August. I think this pull request is at a good merge point now. I've rebased to fix some SIL optimizer merge conflicts, and I've refactored the existential reference storage type logic to be more "best effort". I did need to fix a bug/oversight in SwiftTargetInfo.cpp to make it work though. Review would be appreciated.

@swift-ci please test

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 057bbb3

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 057bbb3

@davezarzycki
Copy link
Contributor Author

Let's try again now that apple/swift-lldb#722 has been merged.

@swift-ci please test

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 057bbb3

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 057bbb3

@davezarzycki
Copy link
Contributor Author

Looks like CI failed. Let's try again:

@swift-ci please test

#define REF_STORAGE(Name, ...) \
void set##Name() { Data |= Name; } \
bool is##Name() const { return Data & Name; }
#include "swift/AST/ReferenceStorage.def"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to metaprogram the actual flags, too? That's okay if this isn't ABI-exposed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think there's actually a reason for this to be using a manual bitmask anyway instead of bit-fields.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The assignment of a new reference storage type to a flag is not meta-programmed, but the fallout from adding a new flag is. In other words, the build will fail until a programmer manually updates the enum within TypeReferenceOwnership at the top of stdlib/public/runtime/Private.h. I can't see a problem with this, can you?

@rjmccall
Copy link
Contributor

rjmccall commented Jul 1, 2018

Otherwise this looks good; the test changes all seem acceptable, and the change to SwiftTargetInfo.cpp is fine.

@davezarzycki
Copy link
Contributor Author

Great! If no more changes are needed, can we merge this?

Also, as a follow up, given that this pull request series makes optional Unowned/Unmanaged possible (but not enabled) in the user facing language, what should be done about that? Should we just "flip the switch" in a later pull request? Or does this need to go through swift evolution?

@davezarzycki
Copy link
Contributor Author

Hi @rjmccall – Just a "ping". Can we merge this? It'd be nice to do so before the next and inevitable merge conflict.

@rjmccall rjmccall merged commit 34b0cbc into swiftlang:master Jul 5, 2018
@rjmccall
Copy link
Contributor

rjmccall commented Jul 5, 2018

Merged.

It's fine to just do optional unowned types as a follow-up PR; it doesn't need to go through evolution.

@davezarzycki
Copy link
Contributor Author

@rjmccall – Thank you so much for your time an patience in reviewing this large pull request. I owe you a beer or three the next time we hang out :-)

@airspeedswift
Copy link
Member

@davezarzycki this PR introduced a huge number of warnings in no-asserts builds because it asserts on theoretically unreachable cases, but in no-assert those cases fall through to the next case. I raised #17770 but for big PRs it's worth always running a no-assert build as well.

@davezarzycki
Copy link
Contributor Author

My mistake. As I pointed out in #17770, using llvm_unreachable creates different problems. :-(

@slavapestov
Copy link
Contributor

@davezarzycki This broke the source compatibility suite -- ReactiveCocoa now fails to build with a SILGen assertion:

type is not a class reference
UNREACHABLE executed at /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/swift/lib/AST/Type.cpp:4153!
0  swift                    0x000000010c928b78 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1  swift                    0x000000010c927ae6 llvm::sys::RunSignalHandlers() + 198
2  swift                    0x000000010c929202 SignalHandler(int) + 258
3  libsystem_platform.dylib 0x00007fff580b0f5a _sigtramp + 26
4  libsystem_platform.dylib 000000000000000000 _sigtramp + 2817847488
5  libsystem_c.dylib        0x00007fff57e4e1ae abort + 127
6  swift                    0x000000010c8c054e llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) + 542
7  swift                    0x000000010a141c8f swift::TypeBase::usesNativeReferenceCounting(swift::ResilienceExpansion) + 1471
8  swift                    0x0000000109bf8a47 swift::CanTypeVisitor<(anonymous namespace)::LowerType, swift::Lowering::TypeLowering const*>::visit(swift::CanType) + 775
9  swift                    0x0000000109bf83aa swift::Lowering::TypeConverter::getTypeLoweringForUncachedLoweredType(swift::Lowering::TypeConverter::TypeKey) + 186
10 swift                    0x0000000109bf7641 swift::Lowering::TypeConverter::getTypeLowering(swift::Lowering::AbstractionPattern, swift::Type) + 897
11 swift                    0x0000000109b46b53 getSILFunctionType(swift::SILModule&, swift::Lowering::AbstractionPattern, swift::CanTypeWrapper<swift::AnyFunctionType>, swift::AnyFunctionType::ExtInfo, (anonymous namespace)::Conventions const&, swift::ForeignInfo const&, llvm::Optional<swift::SILDeclRef>, llvm::Optional<swift::ProtocolConformanceRef>) + 2707
12 swift                    0x0000000109b4065c getNativeSILFunctionType(swift::SILModule&, swift::Lowering::AbstractionPattern, swift::CanTypeWrapper<swift::AnyFunctionType>, swift::AnyFunctionType::ExtInfo, llvm::Optional<swift::SILDeclRef>, llvm::Optional<swift::ProtocolConformanceRef>) + 908
13 swift                    0x0000000109b42284 getUncachedSILFunctionTypeForConstant(swift::SILModule&, swift::SILDeclRef, swift::CanTypeWrapper<swift::AnyFunctionType>) + 580
14 swift                    0x0000000109b43063 swift::Lowering::TypeConverter::getConstantInfo(swift::SILDeclRef) + 211
15 swift                    0x0000000109b870d9 swift::SILModule::getOrCreateFunction(swift::SILLocation, swift::SILDeclRef, swift::ForDefinition_t, swift::ProfileCounter) + 73
16 swift                    0x00000001095a6ff4 swift::Lowering::SILGenModule::getFunction(swift::SILDeclRef, swift::ForDefinition_t) + 308
17 swift                    0x00000001095a92ad swift::Lowering::SILGenModule::emitClosure(swift::AbstractClosureExpr*) + 77
18 swift                    0x0000000109626b88 (anonymous namespace)::RValueEmitter::visitAbstractClosureExpr(swift::AbstractClosureExpr*, swift::Lowering::SGFContext) + 40
19 swift                    0x0000000109618843 swift::ASTVisitor<(anonymous namespace)::RValueEmitter, swift::Lowering::RValue, void, void, void, void, void, swift::Lowering::SGFContext>::visit(swift::Expr*, swift::Lowering::SGFContext) + 115
20 swift                    0x000000010961c19b swift::ASTVisitor<(anonymous namespace)::RValueEmitter, swift::Lowering::RValue, void, void, void, void, void, swift::Lowering::SGFContext>::visit(swift::Expr*, swift::Lowering::SGFContext) + 14795
21 swift                    0x000000010960ec79 swift::Lowering::SILGenFunction::emitRValueAsSingleValue(swift::Expr*, swift::Lowering::SGFContext) + 57
22 swift                    0x000000010961ea34 swift::ASTVisitor<(anonymous namespace)::RValueEmitter, swift::Lowering::RValue, void, void, void, void, void, swift::Lowering::SGFContext>::visit(swift::Expr*, swift::Lowering::SGFContext) + 25188
23 swift                    0x000000010961a8ca swift::ASTVisitor<(anonymous namespace)::RValueEmitter, swift::Lowering::RValue, void, void, void, void, void, swift::Lowering::SGFContext>::visit(swift::Expr*, swift::Lowering::SGFContext) + 8442
24 swift                    0x000000010960ec79 swift::Lowering::SILGenFunction::emitRValueAsSingleValue(swift::Expr*, swift::Lowering::SGFContext) + 57
25 swift                    0x0000000109591766 swift::Lowering::ArgumentSource::getAsSingleValue(swift::Lowering::SILGenFunction&, swift::Lowering::SGFContext) && + 694
26 swift                    0x00000001095f5429 swift::Lowering::SILGenFunction::emitConvertedRValue(swift::SILLocation, swift::Lowering::Conversion const&, swift::Lowering::SGFContext, llvm::function_ref<swift::Lowering::ManagedValue (swift::Lowering::SILGenFunction&, swift::SILLocation, swift::Lowering::SGFContext)>) + 521
27 swift                    0x00000001095918fb swift::Lowering::ArgumentSource::getConverted(swift::Lowering::SILGenFunction&, swift::Lowering::Conversion const&, swift::Lowering::SGFContext) && + 107
28 swift                    0x00000001095ca910 (anonymous namespace)::ArgEmitter::emit(swift::Lowering::ArgumentSource&&, swift::Lowering::AbstractionPattern) + 3888
29 swift                    0x00000001095c8acb (anonymous namespace)::CallSite::emit(swift::Lowering::SILGenFunction&, swift::Lowering::AbstractionPattern, (anonymous namespace)::ParamLowering&, llvm::SmallVectorImpl<swift::Lowering::ManagedValue>&, llvm::SmallVectorImpl<(anonymous namespace)::DelayedArgument>&, llvm::Optional<swift::ForeignErrorConvention> const&, swift::ImportAsMemberStatus) && + 427
30 swift                    0x00000001095c8400 (anonymous namespace)::CallEmission::emitArgumentsForNormalApply(swift::CanTypeWrapper<swift::FunctionType>&, swift::Lowering::AbstractionPattern&, swift::CanTypeWrapper<swift::SILFunctionType>, llvm::Optional<swift::ForeignErrorConvention> const&, swift::ImportAsMemberStatus, llvm::SmallVectorImpl<swift::Lowering::ManagedValue>&, llvm::Optional<swift::SILLocation>&, swift::CanTypeWrapper<swift::FunctionType>&) + 1904
31 swift                    0x00000001095b6346 (anonymous namespace)::CallEmission::apply(swift::Lowering::SGFContext) + 3078
32 swift                    0x00000001095b5613 swift::Lowering::SILGenFunction::emitApplyExpr(swift::Expr*, swift::Lowering::SGFContext) + 1523
33 swift                    0x0000000109618823 swift::ASTVisitor<(anonymous namespace)::RValueEmitter, swift::Lowering::RValue, void, void, void, void, void, swift::Lowering::SGFContext>::visit(swift::Expr*, swift::Lowering::SGFContext) + 83
34 swift                    0x000000010960a883 swift::Lowering::SILGenFunction::emitRValue(swift::Expr*, swift::Lowering::SGFContext) + 35
35 swift                    0x000000010967c26a swift::Lowering::SILGenFunction::emitReturnExpr(swift::SILLocation, swift::Expr*) + 394
36 swift                    0x000000010967a446 swift::ASTVisitor<(anonymous namespace)::StmtEmitter, void, void, void, void, void, void>::visit(swift::Stmt*) + 8566
37 swift                    0x000000010967a28b swift::ASTVisitor<(anonymous namespace)::StmtEmitter, void, void, void, void, void, void>::visit(swift::Stmt*) + 8123
38 swift                    0x00000001096782c5 swift::Lowering::SILGenFunction::emitStmt(swift::Stmt*) + 21
39 swift                    0x0000000109631305 swift::Lowering::SILGenFunction::emitFunction(swift::FuncDecl*) + 485
40 swift                    0x00000001095b05fb swift::Lowering::SILGenModule::emitFunction(swift::FuncDecl*)::$_1::operator()(swift::SILFunction*) const + 315
41 swift                    0x00000001095a78db swift::Lowering::SILGenModule::emitFunction(swift::FuncDecl*) + 715
42 swift                    0x000000010968480e swift::ASTVisitor<SILGenExtension, void, void, void, void, void, void>::visit(swift::Decl*) + 110
43 swift                    0x000000010968279b SILGenExtension::emitExtension(swift::ExtensionDecl*) + 59
44 swift                    0x0000000109682755 swift::Lowering::SILGenModule::visitExtensionDecl(swift::ExtensionDecl*) + 21
45 swift                    0x00000001095ad2bb swift::Lowering::SILGenModule::emitSourceFile(swift::SourceFile*, unsigned int) + 779
46 swift                    0x00000001095adf25 swift::SILModule::constructSIL(swift::ModuleDecl*, swift::SILOptions&, swift::FileUnit*, llvm::Optional<unsigned int>, bool) + 421
47 swift                    0x00000001095ae46d swift::performSILGeneration(swift::ModuleDecl*, swift::SILOptions&, bool) + 29
48 swift                    0x0000000108e1119d performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 10365
49 swift                    0x0000000108e0d8a8 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2936
50 swift                    0x0000000108dc7a5e main + 1134
51 libdyld.dylib            0x00007fff57da2015 start + 1
52 libdyld.dylib            0x00000000000000d8 start + 2821054660
Stack dump:
0.	Program arguments: /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/build/compat_macos/install/toolchain/usr/bin/swift -frontend -c /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UINavigationItem.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/iOS/UISelection​Feedback​Generator.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UICollectionView.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UIBarItem.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/iOS/UIFeedbackGenerator.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UITextField.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/ReactiveSwift+Lifetime.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/Deprecations+Removals.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/iOS/UINotification​Feedback​Generator.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/ReusableComponents.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/DelegateProxy.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UITextView.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/iOS/UISearchBar.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UIImageView.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/NSObject+BindingTarget.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/DynamicProperty.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/ObjC+Messages.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/CocoaTarget.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/iOS/UIKeyboard.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/iOS/UISlider.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/ObjC+RuntimeSubclassing.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UIView.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/iOS/UIDatePicker.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/NSObject+Association.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UIControl.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UIButton.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/NSObject+ObjCRuntime.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/iOS/UIImpact​Feedback​Generator.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UIGestureRecognizer.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/ObjC+Runtime.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/iOS/UIPickerView.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/iOS/UISwitch.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/NSObject+Intercepting.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UILabel.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UIScrollView.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/NSObject+Lifetime.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/NSObject+ReactiveExtensionsProvider.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/NSObject+Synchronizing.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/NSObject+KeyValueObserving.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UITableView.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UIProgressView.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/iOS/UIStepper.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UITabBarItem.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/Shared/NSLayoutConstraint.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UIBarButtonItem.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UIActivityIndicatorView.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/ObjC+Selector.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/ObjC+Constants.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UISegmentedControl.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/CocoaAction.swift /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/iOS/UIRefreshControl.swift -supplementary-output-file-map /var/folders/_8/79jmzf2142z2xydc_01btlx00000gn/T/supplementaryOutputs-492882 -target armv7-apple-ios8.0 -enable-objc-interop -sdk /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk -I /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Products/Release-iphoneos -F /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Products/Release-iphoneos -application-extension -g -import-underlying-module -module-cache-path /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/ModuleCache.noindex -swift-version 4 -O -serialize-debugging-options -Xcc -working-directory -Xcc /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa -Xcc -I/Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/ReactiveCocoa-generated-files.hmap -Xcc -I/Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/ReactiveCocoa-own-target-headers.hmap -Xcc -I/Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/ReactiveCocoa-all-non-framework-target-headers.hmap -Xcc -ivfsoverlay -Xcc /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/all-product-headers.yaml -Xcc -iquote -Xcc /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/ReactiveCocoa-project-headers.hmap -Xcc -I/Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Products/Release-iphoneos/include -Xcc -I/Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/UninstalledProducts/include -Xcc -I/Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/DerivedSources/armv7 -Xcc -I/Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/DerivedSources -Xcc -DNDEBUG=1 -Xcc -ivfsoverlay -Xcc /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/unextended-module-overlay.yaml -module-name ReactiveCocoa -num-threads 4 -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UINavigationItem.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UISelection​Feedback​Generator.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UICollectionView.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIBarItem.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIFeedbackGenerator.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UITextField.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/ReactiveSwift+Lifetime.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/Deprecations+Removals.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UINotification​Feedback​Generator.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/ReusableComponents.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/DelegateProxy.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UITextView.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UISearchBar.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIImageView.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/NSObject+BindingTarget.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/DynamicProperty.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/ObjC+Messages.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/CocoaTarget.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIKeyboard.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UISlider.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/ObjC+RuntimeSubclassing.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIView.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIDatePicker.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/NSObject+Association.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIControl.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIButton.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/NSObject+ObjCRuntime.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIImpact​Feedback​Generator.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIGestureRecognizer.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/ObjC+Runtime.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIPickerView.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UISwitch.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/NSObject+Intercepting.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UILabel.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIScrollView.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/NSObject+Lifetime.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/NSObject+ReactiveExtensionsProvider.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/NSObject+Synchronizing.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/NSObject+KeyValueObserving.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UITableView.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIProgressView.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIStepper.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UITabBarItem.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/NSLayoutConstraint.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIBarButtonItem.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIActivityIndicatorView.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/ObjC+Selector.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/ObjC+Constants.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UISegmentedControl.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/CocoaAction.o -o /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/build/Build/Intermediates.noindex/ReactiveCocoa.build/Release-iphoneos/ReactiveCocoa-iOS.build/Objects-normal/armv7/UIRefreshControl.o 
1.	While emitting SIL for getter for selectedRangeValues at /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UITextView.swift:75:13
2.	While silgen emitFunction SIL function "@$S13ReactiveSwift0A0V0A5CocoaSo10UITextViewCRbzlE19selectedRangeValuesAA6SignalCySo8_NSRangeV6Result7NoErrorOGvg".
 for getter for selectedRangeValues at /Users/buildnode/jenkins/workspace-private/swift-master-source-compat-suite/project_cache/ReactiveCocoa/ReactiveCocoa/UIKit/UITextView.swift:75:13
error: Abort trap: 6

slavapestov added a commit to slavapestov/swift that referenced this pull request Jul 6, 2018
davezarzycki added a commit to davezarzycki/swift that referenced this pull request Jul 11, 2018
John okayed this change in a comment on GitHub pull request: swiftlang#16237
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants