mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Address review comments
This commit is contained in:
@@ -90,8 +90,9 @@ inline bool isEmbedded(CanType t) {
|
||||
return t->getASTContext().LangOpts.hasFeature(Feature::Embedded);
|
||||
}
|
||||
inline bool isEmbeddedWithoutEmbeddedExitentials(CanType t) {
|
||||
return t->getASTContext().LangOpts.hasFeature(Feature::Embedded) &&
|
||||
!t->getASTContext().LangOpts.hasFeature(Feature::EmbeddedExistentials);
|
||||
auto &langOpts = t->getASTContext().LangOpts;
|
||||
return langOpts.hasFeature(Feature::Embedded) &&
|
||||
!langOpts.hasFeature(Feature::EmbeddedExistentials);
|
||||
}
|
||||
// Metadata is not generated and not allowed to be referenced in Embedded Swift,
|
||||
// expect for classes (both generic and non-generic), dynamic self, and
|
||||
|
||||
@@ -5318,7 +5318,7 @@ llvm::GlobalValue *IRGenModule::defineTypeMetadata(
|
||||
: LinkEntity::forTypeMetadata(
|
||||
concreteType, TypeMetadataAddress::FullMetadata));
|
||||
|
||||
if (Context.LangOpts.hasFeature(Feature::Embedded) ) {
|
||||
if (Context.LangOpts.hasFeature(Feature::Embedded)) {
|
||||
entity = LinkEntity::forTypeMetadata(concreteType,
|
||||
TypeMetadataAddress::AddressPoint);
|
||||
if (Context.LangOpts.hasFeature(Feature::EmbeddedExistentials))
|
||||
|
||||
@@ -3387,8 +3387,9 @@ llvm::Value *IRGenFunction::emitTypeMetadataRef(CanType type) {
|
||||
MetadataResponse
|
||||
IRGenFunction::emitTypeMetadataRef(CanType type,
|
||||
DynamicMetadataRequest request) {
|
||||
if (type->getASTContext().LangOpts.hasFeature(Feature::Embedded) &&
|
||||
!type->getASTContext().LangOpts.hasFeature(Feature::EmbeddedExistentials) &&
|
||||
auto &langOpts = type->getASTContext().LangOpts;
|
||||
if (langOpts.hasFeature(Feature::Embedded) &&
|
||||
!langOpts.hasFeature(Feature::EmbeddedExistentials) &&
|
||||
!isMetadataAllowedInEmbedded(type)) {
|
||||
llvm::errs() << "Metadata pointer requested in embedded Swift for type "
|
||||
<< type << "\n";
|
||||
@@ -3408,7 +3409,7 @@ IRGenFunction::emitTypeMetadataRef(CanType type,
|
||||
if (type->hasArchetype() ||
|
||||
!shouldTypeMetadataAccessUseAccessor(IGM, type) ||
|
||||
isa<PackType>(type) ||
|
||||
type->getASTContext().LangOpts.hasFeature(Feature::Embedded)) {
|
||||
langOpts.hasFeature(Feature::Embedded)) {
|
||||
return emitDirectTypeMetadataRef(*this, type, request);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user