Skip to content

Commit a9b6181

Browse files
authored
[Serialization] Drop support for serializing LValueType. (#9080)
This type never appears in API boundaries or in SIL instructions, which means it never gets serialized.
1 parent 7be3a14 commit a9b6181

File tree

4 files changed

+4
-22
lines changed

4 files changed

+4
-22
lines changed

include/swift/Serialization/DeclTypeRecordNodes.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ TYPE(TUPLE)
8787
TRAILING_INFO(TUPLE_TYPE_ELT)
8888
TYPE(FUNCTION)
8989
TYPE(METATYPE)
90-
TYPE(LVALUE)
90+
TYPE(LVALUE_unused)
9191
TYPE(INOUT)
9292
TYPE(ARCHETYPE)
9393
TYPE(PROTOCOL_COMPOSITION)

include/swift/Serialization/ModuleFormat.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -635,11 +635,6 @@ namespace decls_block {
635635
MetatypeRepresentationField // representation
636636
>;
637637

638-
using LValueTypeLayout = BCRecordLayout<
639-
LVALUE_TYPE,
640-
TypeIDField // object type
641-
>;
642-
643638
using InOutTypeLayout = BCRecordLayout<
644639
INOUT_TYPE,
645640
TypeIDField // object type

lib/Serialization/Deserialization.cpp

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3841,15 +3841,9 @@ Expected<Type> ModuleFile::getTypeChecked(TypeID TID) {
38413841
break;
38423842
}
38433843

3844-
case decls_block::LVALUE_TYPE: {
3845-
TypeID objectTypeID;
3846-
decls_block::LValueTypeLayout::readRecord(scratch, objectTypeID);
3847-
typeOrOffset = LValueType::get(getType(objectTypeID));
3848-
break;
3849-
}
38503844
case decls_block::INOUT_TYPE: {
38513845
TypeID objectTypeID;
3852-
decls_block::LValueTypeLayout::readRecord(scratch, objectTypeID);
3846+
decls_block::InOutTypeLayout::readRecord(scratch, objectTypeID);
38533847

38543848
auto objectTy = getTypeChecked(objectTypeID);
38553849
if (!objectTy)

lib/Serialization/Serialization.cpp

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3449,14 +3449,6 @@ void Serializer::writeType(Type ty) {
34493449
break;
34503450
}
34513451

3452-
case TypeKind::LValue: {
3453-
auto lValueTy = cast<LValueType>(ty.getPointer());
3454-
3455-
unsigned abbrCode = DeclTypeAbbrCodes[LValueTypeLayout::Code];
3456-
LValueTypeLayout::emitRecord(Out, ScratchRecord, abbrCode,
3457-
addTypeRef(lValueTy->getObjectType()));
3458-
break;
3459-
}
34603452
case TypeKind::InOut: {
34613453
auto iotTy = cast<InOutType>(ty.getPointer());
34623454

@@ -3506,6 +3498,8 @@ void Serializer::writeType(Type ty) {
35063498
break;
35073499
}
35083500

3501+
case TypeKind::LValue:
3502+
llvm_unreachable("lvalue types are only used in function bodies");
35093503
case TypeKind::TypeVariable:
35103504
llvm_unreachable("type variables should not escape the type checker");
35113505
}
@@ -3524,7 +3518,6 @@ void Serializer::writeAllDeclsAndTypes() {
35243518
registerDeclTypeAbbr<FunctionTypeLayout>();
35253519
registerDeclTypeAbbr<MetatypeTypeLayout>();
35263520
registerDeclTypeAbbr<ExistentialMetatypeTypeLayout>();
3527-
registerDeclTypeAbbr<LValueTypeLayout>();
35283521
registerDeclTypeAbbr<InOutTypeLayout>();
35293522
registerDeclTypeAbbr<ArchetypeTypeLayout>();
35303523
registerDeclTypeAbbr<ProtocolCompositionTypeLayout>();

0 commit comments

Comments
 (0)