File tree Expand file tree Collapse file tree 2 files changed +10
-9
lines changed Expand file tree Collapse file tree 2 files changed +10
-9
lines changed Original file line number Diff line number Diff line change @@ -3484,22 +3484,23 @@ ExistentialMetatypeValueWitnessTableCacheEntry(unsigned numWitnessTables) {
34843484SWIFT_RUNTIME_EXPORT
34853485const ExistentialMetatypeMetadata *
34863486swift::swift_getExistentialMetatypeMetadata (const Metadata *instanceMetadata) {
3487- if (instanceMetadata->getKind () != MetadataKind::Existential
3488- && instanceMetadata->getKind () != MetadataKind::ExistentialMetatype)
3489- return nullptr ;
3490-
34913487 return &ExistentialMetatypes.getOrInsert (instanceMetadata).first ->Data ;
34923488}
34933489
34943490ExistentialMetatypeCacheEntry::ExistentialMetatypeCacheEntry (
34953491 const Metadata *instanceMetadata) {
34963492 ExistentialTypeFlags flags;
3497- if (instanceMetadata->getKind () == MetadataKind::Existential) {
3493+ switch (instanceMetadata->getKind ()) {
3494+ case MetadataKind::Existential:
34983495 flags = static_cast <const ExistentialTypeMetadata*>(instanceMetadata)
34993496 ->Flags ;
3500- } else {
3497+ break ;
3498+ case MetadataKind::ExistentialMetatype:
35013499 flags = static_cast <const ExistentialMetatypeMetadata*>(instanceMetadata)
35023500 ->Flags ;
3501+ break ;
3502+ default :
3503+ assert (false && " expected existential metadata" );
35033504 }
35043505
35053506 Data.setKind (MetadataKind::ExistentialMetatype);
Original file line number Diff line number Diff line change @@ -1446,13 +1446,13 @@ class DecodedMetadataBuilder {
14461446 TypeLookupErrorOr<BuiltType> createExistentialMetatypeType (
14471447 BuiltType instance,
14481448 llvm::Optional<Demangle::ImplMetatypeRepresentation> repr = None) const {
1449- BuiltType result = swift_getExistentialMetatypeMetadata (instance);
1450- if (!result ) {
1449+ if (instance-> getKind () != MetadataKind::Existential
1450+ && instance-> getKind () != MetadataKind::ExistentialMetatype ) {
14511451 return TYPE_LOOKUP_ERROR_FMT (" Tried to build an existential metatype from "
14521452 " a type that was neither an existential nor "
14531453 " an existential metatype" );
14541454 }
1455- return result ;
1455+ return swift_getExistentialMetatypeMetadata (instance) ;
14561456 }
14571457
14581458 TypeLookupErrorOr<BuiltType>
You can’t perform that action at this time.
0 commit comments