That is the asset in the compiler that is being hit when the code 
unsafeBitCasts to a c function.

typealias TypeMetadataAccessor = @convention(c) () -> AnyClass?
let accessor = unsafeBitCast(symbol, TypeMetadataAccessor.self) // <— this 
causes the compiler to assert there.

> On Dec 30, 2015, at 10:03 AM, Joe Groff via swift-dev <swift-dev@swift.org> 
> wrote:
> 
> 
>> On Dec 29, 2015, at 9:04 PM, Luke Howard via swift-dev <swift-dev@swift.org> 
>> wrote:
>> 
>> I’m seeing an assertion failure when I try to compile the following on Linux:
>> 
>>      typealias TypeMetadataAccessor = @convention(c) () -> AnyClass?
>> 
>> The assertion failing is:
>> 
>>   assert(getASTContext().LangOpts.EnableObjCInterop ||
>>          *repr != MetatypeRepresentation::ObjC);
>> 
>> in ExistentialMetatypeType::ExistentialMetatypeType(). Commenting it out and 
>> the code compiles and works.
>> 
>> Can someone that understands the compiler suggest the correct fix?
> 
> It looks like you're trying to poke at private runtime metadata structures; 
> please don't do that. What are you trying to do?
> 
> -Joe
> _______________________________________________
> swift-dev mailing list
> swift-dev@swift.org
> https://lists.swift.org/mailman/listinfo/swift-dev

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to