Commits

Joe Groff committed a0874ad8d0c
Add a Builtin.canBeObjCClass "type trait" builtin. This builtin returns true for types that might be ObjC class types. We want to use this builtin to optimize away NSArray handling for non-object Array types, so it needs to persist in SIL long enough for specialization to do its thing, but we never actually want to pay a runtime cost for this check, so always lower it to a constant value at IRGen time. Handle this by having canBeObjCClass return a tri-state "yes/maybe/no" result. In SILGen, we only fold away obviously "yes" or "no" cases, and in IRGen, we fold away "maybe" cases as "yes". The optimizer will need to learn about this builtin too, but that part isn't done yet. Swift SVN r13980