Skip to content

Commit 9bb837a

Browse files
committed
[AST] Rename SequenceArchetype to PackArchetype.
1 parent 67fb143 commit 9bb837a

22 files changed

+67
-71
lines changed

include/swift/AST/TypeNodes.def

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,8 @@ ABSTRACT_TYPE(Substitutable, Type)
148148
ALWAYS_CANONICAL_TYPE(PrimaryArchetype, ArchetypeType)
149149
ALWAYS_CANONICAL_TYPE(OpaqueTypeArchetype, ArchetypeType)
150150
ALWAYS_CANONICAL_TYPE(OpenedArchetype, ArchetypeType)
151-
ALWAYS_CANONICAL_TYPE(SequenceArchetype, ArchetypeType)
152-
TYPE_RANGE(Archetype, PrimaryArchetype, SequenceArchetype)
151+
ALWAYS_CANONICAL_TYPE(PackArchetype, ArchetypeType)
152+
TYPE_RANGE(Archetype, PrimaryArchetype, PackArchetype)
153153
TYPE(GenericTypeParam, SubstitutableType)
154154
TYPE_RANGE(Substitutable, PrimaryArchetype, GenericTypeParam)
155155
TYPE(DependentMember, Type)

include/swift/AST/Types.h

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class RecursiveTypeProperties {
126126

127127
/// This type expression contains a context-dependent archetype, either a
128128
/// \c PrimaryArchetypeType, \c OpenedArchetypeType, or
129-
/// \c SequenceArchetype.
129+
/// \c PackArchetype.
130130
HasArchetype = 0x02,
131131

132132
/// This type expression contains a GenericTypeParamType.
@@ -6002,15 +6002,11 @@ BEGIN_CAN_TYPE_WRAPPER(OpenedArchetypeType, ArchetypeType)
60026002
}
60036003
END_CAN_TYPE_WRAPPER(OpenedArchetypeType, ArchetypeType)
60046004

6005-
/// An archetype that represents an opaque element of a type sequence in context.
6006-
///
6007-
/// \code
6008-
/// struct Foo<@_typeSequence Ts> { var xs: @_typeSequence Ts }
6009-
/// func foo<@_typeSequence T>(_ xs: T...) where T: P { }
6010-
/// \endcode
6011-
class SequenceArchetypeType final
6005+
/// An archetype that represents an opaque element of a type
6006+
/// parameter pack in context.
6007+
class PackArchetypeType final
60126008
: public ArchetypeType,
6013-
private ArchetypeTrailingObjects<SequenceArchetypeType> {
6009+
private ArchetypeTrailingObjects<PackArchetypeType> {
60146010
friend TrailingObjects;
60156011
friend ArchetypeType;
60166012

@@ -6019,23 +6015,23 @@ class SequenceArchetypeType final
60196015
///
60206016
/// The ConformsTo array will be minimized then copied into the ASTContext
60216017
/// by this routine.
6022-
static CanTypeWrapper<SequenceArchetypeType>
6018+
static CanTypeWrapper<PackArchetypeType>
60236019
get(const ASTContext &Ctx, GenericEnvironment *GenericEnv,
60246020
Type InterfaceType,
60256021
SmallVectorImpl<ProtocolDecl *> &ConformsTo, Type Superclass,
60266022
LayoutConstraint Layout);
60276023

60286024
static bool classof(const TypeBase *T) {
6029-
return T->getKind() == TypeKind::SequenceArchetype;
6025+
return T->getKind() == TypeKind::PackArchetype;
60306026
}
60316027

60326028
private:
6033-
SequenceArchetypeType(const ASTContext &Ctx, GenericEnvironment *GenericEnv,
6034-
Type InterfaceType, ArrayRef<ProtocolDecl *> ConformsTo,
6035-
Type Superclass, LayoutConstraint Layout);
6029+
PackArchetypeType(const ASTContext &Ctx, GenericEnvironment *GenericEnv,
6030+
Type InterfaceType, ArrayRef<ProtocolDecl *> ConformsTo,
6031+
Type Superclass, LayoutConstraint Layout);
60366032
};
6037-
BEGIN_CAN_TYPE_WRAPPER(SequenceArchetypeType, ArchetypeType)
6038-
END_CAN_TYPE_WRAPPER(SequenceArchetypeType, ArchetypeType)
6033+
BEGIN_CAN_TYPE_WRAPPER(PackArchetypeType, ArchetypeType)
6034+
END_CAN_TYPE_WRAPPER(PackArchetypeType, ArchetypeType)
60396035

60406036
template<typename Type>
60416037
const Type *ArchetypeType::getSubclassTrailingObjects() const {
@@ -6048,7 +6044,7 @@ const Type *ArchetypeType::getSubclassTrailingObjects() const {
60486044
if (auto openedTy = dyn_cast<OpenedArchetypeType>(this)) {
60496045
return openedTy->getTrailingObjects<Type>();
60506046
}
6051-
if (auto childTy = dyn_cast<SequenceArchetypeType>(this)) {
6047+
if (auto childTy = dyn_cast<PackArchetypeType>(this)) {
60526048
return childTy->getTrailingObjects<Type>();
60536049
}
60546050
llvm_unreachable("unhandled ArchetypeType subclass?");

lib/AST/ASTContext.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3174,7 +3174,7 @@ PackExpansionType::PackExpansionType(Type patternType, Type countType,
31743174
: TypeBase(TypeKind::PackExpansion, canCtx, properties),
31753175
patternType(patternType), countType(countType) {
31763176
assert(countType->is<TypeVariableType>() ||
3177-
countType->is<SequenceArchetypeType>() ||
3177+
countType->is<PackArchetypeType>() ||
31783178
countType->castTo<GenericTypeParamType>()->isTypeSequence());
31793179
}
31803180

@@ -3223,7 +3223,7 @@ PackType *PackType::get(const ASTContext &C, ArrayRef<Type> elements) {
32233223
assert(!eltTy->isTypeParameter() ||
32243224
!eltTy->getRootGenericParam()->isTypeSequence() &&
32253225
"Pack type parameter outside of a pack expansion");
3226-
assert(!eltTy->is<SequenceArchetypeType>() &&
3226+
assert(!eltTy->is<PackArchetypeType>() &&
32273227
"Pack type archetype outside of a pack expansion");
32283228
assert(!eltTy->is<PackType>() &&
32293229
"Cannot have pack directly inside another pack");

lib/AST/ASTDumper.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3886,8 +3886,8 @@ namespace {
38863886
}
38873887
PrintWithColorRAII(OS, ParenthesisColor) << ')';
38883888
}
3889-
void visitSequenceArchetypeType(SequenceArchetypeType *T, StringRef label) {
3890-
printArchetypeCommon(T, "sequence_archetype_type", label);
3889+
void visitPackArchetypeType(PackArchetypeType *T, StringRef label) {
3890+
printArchetypeCommon(T, "pack_archetype_type", label);
38913891
printField("name", T->getFullName());
38923892
OS << "\n";
38933893
PrintWithColorRAII(OS, ParenthesisColor) << ')';

lib/AST/ASTMangler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1367,7 +1367,7 @@ void ASTMangler::appendType(Type type, GenericSignature sig,
13671367

13681368
// type ::= archetype
13691369
case TypeKind::PrimaryArchetype:
1370-
case TypeKind::SequenceArchetype:
1370+
case TypeKind::PackArchetype:
13711371
llvm_unreachable("Cannot mangle free-standing archetypes");
13721372

13731373
case TypeKind::OpenedArchetype: {

lib/AST/ASTPrinter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6487,7 +6487,7 @@ class TypePrinter : public TypeVisitor<TypePrinter> {
64876487
}
64886488
}
64896489

6490-
void visitSequenceArchetypeType(SequenceArchetypeType *T) {
6490+
void visitPackArchetypeType(PackArchetypeType *T) {
64916491
printArchetypeCommon(T);
64926492
}
64936493

lib/AST/GenericEnvironment.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,9 +342,9 @@ GenericEnvironment::getOrCreateArchetypeFromInterfaceType(Type depType) {
342342
auto rootGP = requirements.anchor->getRootGenericParam();
343343
if (rootGP->isTypeSequence()) {
344344
assert(getKind() == Kind::Primary);
345-
result = SequenceArchetypeType::get(ctx, this, requirements.anchor,
346-
requirements.protos, superclass,
347-
requirements.layout);
345+
result = PackArchetypeType::get(ctx, this, requirements.anchor,
346+
requirements.protos, superclass,
347+
requirements.layout);
348348
} else {
349349
switch (getKind()) {
350350
case Kind::Primary:

lib/AST/PackConformance.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,15 +186,15 @@ static bool arePackShapesEqual(PackType *lhs, PackType *rhs) {
186186
static bool isRootTypeSequenceParameter(Type t) {
187187
if (auto *paramTy = t->getAs<GenericTypeParamType>()) {
188188
return paramTy->isTypeSequence();
189-
} else if (auto *archetypeTy = t->getAs<SequenceArchetypeType>()) {
189+
} else if (auto *archetypeTy = t->getAs<PackArchetypeType>()) {
190190
return archetypeTy->isRoot();
191191
}
192192

193193
return false;
194194
}
195195

196196
static bool isRootedInTypeSequenceParameter(Type t) {
197-
if (auto *archetypeTy = t->getAs<SequenceArchetypeType>()) {
197+
if (auto *archetypeTy = t->getAs<PackArchetypeType>()) {
198198
return true;
199199
}
200200

@@ -402,4 +402,4 @@ void swift::simple_display(llvm::raw_ostream &out, PackConformance *conformance)
402402
simple_display(out, patternConformance);
403403
}
404404
out << "}";
405-
}
405+
}

lib/AST/SubstitutionMap.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ Type SubstitutionMap::lookupSubstitution(CanSubstitutableType type) const {
255255
return Type();
256256

257257
if (!isa<PrimaryArchetypeType>(archetype) &&
258-
!isa<SequenceArchetypeType>(archetype))
258+
!isa<PackArchetypeType>(archetype))
259259
return Type();
260260

261261
type = cast<GenericTypeParamType>(

lib/AST/Type.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ bool CanType::isReferenceTypeImpl(CanType type, const GenericSignatureImpl *sig,
201201
case TypeKind::PrimaryArchetype:
202202
case TypeKind::OpenedArchetype:
203203
case TypeKind::OpaqueTypeArchetype:
204-
case TypeKind::SequenceArchetype:
204+
case TypeKind::PackArchetype:
205205
return cast<ArchetypeType>(type)->requiresClass();
206206
case TypeKind::Protocol:
207207
return cast<ProtocolType>(type)->requiresClass();
@@ -596,7 +596,7 @@ void TypeBase::getTypeSequenceParameters(
596596
if (paramTy->isTypeSequence()) {
597597
recordType(paramTy);
598598
}
599-
} else if (auto *archetypeTy = t->getAs<SequenceArchetypeType>()) {
599+
} else if (auto *archetypeTy = t->getAs<PackArchetypeType>()) {
600600
if (archetypeTy->isRoot()) {
601601
recordType(t);
602602
}
@@ -3582,11 +3582,11 @@ OpaqueTypeArchetypeType::OpaqueTypeArchetypeType(
35823582
{
35833583
}
35843584

3585-
SequenceArchetypeType::SequenceArchetypeType(
3585+
PackArchetypeType::PackArchetypeType(
35863586
const ASTContext &Ctx, GenericEnvironment *GenericEnv, Type InterfaceType,
35873587
ArrayRef<ProtocolDecl *> ConformsTo, Type Superclass,
35883588
LayoutConstraint Layout)
3589-
: ArchetypeType(TypeKind::SequenceArchetype, Ctx,
3589+
: ArchetypeType(TypeKind::PackArchetype, Ctx,
35903590
RecursiveTypeProperties::HasArchetype, InterfaceType,
35913591
ConformsTo, Superclass, Layout, GenericEnv) {
35923592
assert(cast<GenericTypeParamType>(InterfaceType.getPointer())->isTypeSequence());
@@ -3961,8 +3961,8 @@ PrimaryArchetypeType::getNew(const ASTContext &Ctx,
39613961
Ctx, GenericEnv, InterfaceType, ConformsTo, Superclass, Layout));
39623962
}
39633963

3964-
CanSequenceArchetypeType
3965-
SequenceArchetypeType::get(const ASTContext &Ctx,
3964+
CanPackArchetypeType
3965+
PackArchetypeType::get(const ASTContext &Ctx,
39663966
GenericEnvironment *GenericEnv,
39673967
Type InterfaceType,
39683968
SmallVectorImpl<ProtocolDecl *> &ConformsTo,
@@ -3975,12 +3975,12 @@ SequenceArchetypeType::get(const ASTContext &Ctx,
39753975

39763976
auto arena = AllocationArena::Permanent;
39773977
void *mem =
3978-
Ctx.Allocate(SequenceArchetypeType::totalSizeToAlloc<ProtocolDecl *, Type,
3979-
LayoutConstraint>(
3978+
Ctx.Allocate(PackArchetypeType::totalSizeToAlloc<ProtocolDecl *, Type,
3979+
LayoutConstraint>(
39803980
ConformsTo.size(), Superclass ? 1 : 0, Layout ? 1 : 0),
3981-
alignof(SequenceArchetypeType), arena);
3981+
alignof(PackArchetypeType), arena);
39823982

3983-
return CanSequenceArchetypeType(::new (mem) SequenceArchetypeType(
3983+
return CanPackArchetypeType(::new (mem) PackArchetypeType(
39843984
Ctx, GenericEnv, InterfaceType, ConformsTo, Superclass, Layout));
39853985
}
39863986

@@ -5138,7 +5138,7 @@ case TypeKind::Id:
51385138
#include "swift/AST/TypeNodes.def"
51395139
case TypeKind::PrimaryArchetype:
51405140
case TypeKind::OpenedArchetype:
5141-
case TypeKind::SequenceArchetype:
5141+
case TypeKind::PackArchetype:
51425142
case TypeKind::Error:
51435143
case TypeKind::Unresolved:
51445144
case TypeKind::TypeVariable:
@@ -5595,7 +5595,7 @@ case TypeKind::Id:
55955595

55965596
if (input->is<TypeVariableType>() ||
55975597
input->isTypeSequenceParameter() ||
5598-
input->is<SequenceArchetypeType>()) {
5598+
input->is<PackArchetypeType>()) {
55995599
if (auto *PT = (*remap)->getAs<PackType>()) {
56005600
maxArity = std::max(maxArity, PT->getNumElements());
56015601
cache.insert({input, PT});
@@ -6116,7 +6116,7 @@ ReferenceCounting TypeBase::getReferenceCounting() {
61166116
case TypeKind::PrimaryArchetype:
61176117
case TypeKind::OpenedArchetype:
61186118
case TypeKind::OpaqueTypeArchetype:
6119-
case TypeKind::SequenceArchetype: {
6119+
case TypeKind::PackArchetype: {
61206120
auto archetype = cast<ArchetypeType>(type);
61216121
auto layout = archetype->getLayoutConstraint();
61226122
(void)layout;

0 commit comments

Comments
 (0)