Skip to content

Commit 08eeb96

Browse files
committed
[NFC] AST: Rename CompoundIdentTypeReprMemberTypeRepr
1 parent ac996b9 commit 08eeb96

17 files changed

+101
-100
lines changed

include/swift/AST/TypeRepr.h

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class alignas(1 << TypeReprAlignInBits) TypeRepr
8787
NumGenericArgs : 32
8888
);
8989

90-
SWIFT_INLINE_BITFIELD_FULL(CompoundIdentTypeRepr, IdentTypeRepr, 32,
90+
SWIFT_INLINE_BITFIELD_FULL(MemberTypeRepr, IdentTypeRepr, 32,
9191
: NumPadBits,
9292
NumMemberComponents : 32
9393
);
@@ -266,9 +266,9 @@ class IdentTypeRepr : public TypeRepr {
266266
DeclNameRef getNameRef() const;
267267

268268
static bool classof(const TypeRepr *T) {
269-
return T->getKind() == TypeReprKind::SimpleIdent ||
269+
return T->getKind() == TypeReprKind::SimpleIdent ||
270270
T->getKind() == TypeReprKind::GenericIdent ||
271-
T->getKind() == TypeReprKind::CompoundIdent;
271+
T->getKind() == TypeReprKind::Member;
272272
}
273273
static bool classof(const IdentTypeRepr *T) { return true; }
274274
};
@@ -404,48 +404,50 @@ class GenericIdentTypeRepr final : public ComponentIdentTypeRepr,
404404
friend class TypeRepr;
405405
};
406406

407-
/// A type with identifier components.
407+
/// A member type consisting of an arbitrary base component and one or more
408+
/// identifier type member components.
408409
/// \code
409-
/// Foo.Bar<Gen>
410+
/// Foo.Bar<Gen>.Baz
411+
/// [Int].Bar
410412
/// \endcode
411-
class CompoundIdentTypeRepr final : public IdentTypeRepr,
412-
private llvm::TrailingObjects<CompoundIdentTypeRepr,
413+
class MemberTypeRepr final : public IdentTypeRepr,
414+
private llvm::TrailingObjects<MemberTypeRepr,
413415
ComponentIdentTypeRepr *> {
414416
friend TrailingObjects;
415417

416418
/// The base component, which is not necessarily an identifier type.
417419
TypeRepr *Base;
418420

419-
CompoundIdentTypeRepr(TypeRepr *Base,
420-
ArrayRef<ComponentIdentTypeRepr *> MemberComponents)
421-
: IdentTypeRepr(TypeReprKind::CompoundIdent), Base(Base) {
422-
Bits.CompoundIdentTypeRepr.NumMemberComponents = MemberComponents.size();
421+
MemberTypeRepr(TypeRepr *Base,
422+
ArrayRef<ComponentIdentTypeRepr *> MemberComponents)
423+
: IdentTypeRepr(TypeReprKind::Member), Base(Base) {
424+
Bits.MemberTypeRepr.NumMemberComponents = MemberComponents.size();
423425
assert(MemberComponents.size() > 0 &&
424426
"should have just used the single ComponentIdentTypeRepr directly");
425427
std::uninitialized_copy(MemberComponents.begin(), MemberComponents.end(),
426428
getTrailingObjects<ComponentIdentTypeRepr *>());
427429
}
428430

429431
public:
430-
static CompoundIdentTypeRepr *
432+
static MemberTypeRepr *
431433
create(const ASTContext &Ctx, TypeRepr *Base,
432434
ArrayRef<ComponentIdentTypeRepr *> MemberComponents);
433435

434436
TypeRepr *getBaseComponent() const { return Base; }
435437

436438
ArrayRef<ComponentIdentTypeRepr *> getMemberComponents() const {
437439
return {getTrailingObjects<ComponentIdentTypeRepr *>(),
438-
Bits.CompoundIdentTypeRepr.NumMemberComponents};
440+
Bits.MemberTypeRepr.NumMemberComponents};
439441
}
440442

441443
ComponentIdentTypeRepr *getLastComponent() const {
442444
return getMemberComponents().back();
443445
}
444446

445447
static bool classof(const TypeRepr *T) {
446-
return T->getKind() == TypeReprKind::CompoundIdent;
448+
return T->getKind() == TypeReprKind::Member;
447449
}
448-
static bool classof(const CompoundIdentTypeRepr *T) { return true; }
450+
static bool classof(const MemberTypeRepr *T) { return true; }
449451

450452
private:
451453
SourceLoc getStartLocImpl() const {
@@ -1316,7 +1318,7 @@ inline bool TypeRepr::isSimple() const {
13161318
return false;
13171319
case TypeReprKind::SimpleIdent:
13181320
case TypeReprKind::GenericIdent:
1319-
case TypeReprKind::CompoundIdent:
1321+
case TypeReprKind::Member:
13201322
case TypeReprKind::Metatype:
13211323
case TypeReprKind::Protocol:
13221324
case TypeReprKind::Dictionary:

include/swift/AST/TypeReprNodes.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ ABSTRACT_TYPEREPR(Ident, TypeRepr)
4949
ABSTRACT_TYPEREPR(ComponentIdent, IdentTypeRepr)
5050
TYPEREPR(SimpleIdent, ComponentIdentTypeRepr)
5151
TYPEREPR(GenericIdent, ComponentIdentTypeRepr)
52-
TYPEREPR(CompoundIdent, IdentTypeRepr)
52+
TYPEREPR(Member, IdentTypeRepr)
5353

5454
TYPEREPR(Function, TypeRepr)
5555
TYPEREPR(Array, TypeRepr)

lib/AST/ASTDumper.cpp

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3088,39 +3088,35 @@ class PrintTypeRepr : public TypeReprVisitor<PrintTypeRepr> {
30883088
printRec(T->getTypeRepr());
30893089
}
30903090

3091-
void visitIdentTypeRepr(IdentTypeRepr *T) {
3091+
void visitComponentIdentTypeRepr(ComponentIdentTypeRepr *T) {
30923092
printCommon("type_ident");
3093-
Indent += 2;
3094-
3095-
SmallVector<ComponentIdentTypeRepr *, 2> components;
3096-
if (auto *comp = dyn_cast<ComponentIdentTypeRepr>(T)) {
3097-
components.push_back(comp);
3098-
} else {
3099-
auto memberComps = cast<CompoundIdentTypeRepr>(T)->getMemberComponents();
31003093

3101-
components.push_back(cast<ComponentIdentTypeRepr>(T->getBaseComponent()));
3102-
components.append(memberComps.begin(), memberComps.end());
3094+
PrintWithColorRAII(OS, IdentifierColor)
3095+
<< " id='" << T->getNameRef() << '\'';
3096+
OS << " bind=";
3097+
if (T->isBound())
3098+
T->getBoundDecl()->dumpRef(OS);
3099+
else
3100+
OS << "none";
3101+
PrintWithColorRAII(OS, ParenthesisColor) << ')';
3102+
if (auto *GenIdT = dyn_cast<GenericIdentTypeRepr>(T)) {
3103+
for (auto genArg : GenIdT->getGenericArgs()) {
3104+
OS << '\n';
3105+
printRec(genArg);
3106+
}
31033107
}
3108+
}
31043109

3105-
for (auto comp : components) {
3110+
void visitMemberTypeRepr(MemberTypeRepr *T) {
3111+
printCommon("type_member");
3112+
3113+
OS << '\n';
3114+
printRec(T->getBaseComponent());
3115+
for (auto *comp : T->getMemberComponents()) {
31063116
OS << '\n';
3107-
printCommon("component");
3108-
PrintWithColorRAII(OS, IdentifierColor)
3109-
<< " id='" << comp->getNameRef() << '\'';
3110-
OS << " bind=";
3111-
if (comp->isBound())
3112-
comp->getBoundDecl()->dumpRef(OS);
3113-
else OS << "none";
3114-
PrintWithColorRAII(OS, ParenthesisColor) << ')';
3115-
if (auto GenIdT = dyn_cast<GenericIdentTypeRepr>(comp)) {
3116-
for (auto genArg : GenIdT->getGenericArgs()) {
3117-
OS << '\n';
3118-
printRec(genArg);
3119-
}
3120-
}
3117+
printRec(comp);
31213118
}
31223119
PrintWithColorRAII(OS, ParenthesisColor) << ')';
3123-
Indent -= 2;
31243120
}
31253121

31263122
void visitFunctionTypeRepr(FunctionTypeRepr *T) {

lib/AST/ASTWalker.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1951,7 +1951,7 @@ bool Traversal::visitGenericIdentTypeRepr(GenericIdentTypeRepr *T) {
19511951
return false;
19521952
}
19531953

1954-
bool Traversal::visitCompoundIdentTypeRepr(CompoundIdentTypeRepr *T) {
1954+
bool Traversal::visitMemberTypeRepr(MemberTypeRepr *T) {
19551955
if (doIt(T->getBaseComponent()))
19561956
return true;
19571957

lib/AST/CASTBridging.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -414,8 +414,8 @@ void *IdentTypeRepr_create(void *ctx, BridgedArrayRef bridgedComponents) {
414414
return components.front();
415415
}
416416

417-
return CompoundIdentTypeRepr::create(Context, components.front(),
418-
components.drop_front());
417+
return MemberTypeRepr::create(Context, components.front(),
418+
components.drop_front());
419419
}
420420

421421
void *CompositionTypeRepr_create(void *ctx, BridgedArrayRef types,

lib/AST/Expr.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2154,7 +2154,7 @@ TypeExpr *TypeExpr::createForMemberDecl(DeclNameLoc ParentNameLoc,
21542154
new (C) SimpleIdentTypeRepr(NameLoc, Decl->createNameRef());
21552155
MemberComp->setValue(Decl, nullptr);
21562156

2157-
auto *TR = CompoundIdentTypeRepr::create(C, ParentComp, {MemberComp});
2157+
auto *TR = MemberTypeRepr::create(C, ParentComp, {MemberComp});
21582158
return new (C) TypeExpr(TR);
21592159
}
21602160

@@ -2165,8 +2165,8 @@ TypeExpr *TypeExpr::createForMemberDecl(IdentTypeRepr *ParentTR,
21652165

21662166
// Create a new list of components.
21672167
SmallVector<ComponentIdentTypeRepr *, 2> Components;
2168-
if (auto *Compound = dyn_cast<CompoundIdentTypeRepr>(ParentTR)) {
2169-
auto MemberComps = Compound->getMemberComponents();
2168+
if (auto *MemberTR = dyn_cast<MemberTypeRepr>(ParentTR)) {
2169+
auto MemberComps = MemberTR->getMemberComponents();
21702170
Components.append(MemberComps.begin(), MemberComps.end());
21712171
}
21722172

@@ -2175,8 +2175,8 @@ TypeExpr *TypeExpr::createForMemberDecl(IdentTypeRepr *ParentTR,
21752175
NewComp->setValue(Decl, nullptr);
21762176
Components.push_back(NewComp);
21772177

2178-
auto *TR = CompoundIdentTypeRepr::create(C, ParentTR->getBaseComponent(),
2179-
Components);
2178+
auto *TR =
2179+
MemberTypeRepr::create(C, ParentTR->getBaseComponent(), Components);
21802180
return new (C) TypeExpr(TR);
21812181
}
21822182

@@ -2190,7 +2190,7 @@ TypeExpr *TypeExpr::createForSpecializedDecl(IdentTypeRepr *ParentTR,
21902190
return nullptr;
21912191

21922192
if (isa<TypeAliasDecl>(lastComp->getBoundDecl())) {
2193-
if (auto *compound = dyn_cast<CompoundIdentTypeRepr>(ParentTR)) {
2193+
if (auto *memberTR = dyn_cast<MemberTypeRepr>(ParentTR)) {
21942194
// If any of our parent types are unbound, bail out and let
21952195
// the constraint solver can infer generic parameters for them.
21962196
//
@@ -2213,13 +2213,13 @@ TypeExpr *TypeExpr::createForSpecializedDecl(IdentTypeRepr *ParentTR,
22132213
return false;
22142214
};
22152215

2216-
for (auto *comp : compound->getMemberComponents().drop_back()) {
2216+
for (auto *comp : memberTR->getMemberComponents().drop_back()) {
22172217
if (isUnboundGenericComponent(comp))
22182218
return nullptr;
22192219
}
22202220

22212221
if (auto *identBase =
2222-
dyn_cast<ComponentIdentTypeRepr>(compound->getBaseComponent())) {
2222+
dyn_cast<ComponentIdentTypeRepr>(memberTR->getBaseComponent())) {
22232223
if (isUnboundGenericComponent(identBase))
22242224
return nullptr;
22252225
}
@@ -2231,17 +2231,17 @@ TypeExpr *TypeExpr::createForSpecializedDecl(IdentTypeRepr *ParentTR,
22312231
genericComp->setValue(lastComp->getBoundDecl(), lastComp->getDeclContext());
22322232

22332233
TypeRepr *TR = nullptr;
2234-
if (auto *compound = dyn_cast<CompoundIdentTypeRepr>(ParentTR)) {
2235-
auto oldMemberComps = compound->getMemberComponents().drop_back();
2234+
if (auto *memberTR = dyn_cast<MemberTypeRepr>(ParentTR)) {
2235+
auto oldMemberComps = memberTR->getMemberComponents().drop_back();
22362236

22372237
// Create a new list of member components, replacing the last one with the
22382238
// new specialized one.
22392239
SmallVector<ComponentIdentTypeRepr *, 2> newMemberComps;
22402240
newMemberComps.append(oldMemberComps.begin(), oldMemberComps.end());
22412241
newMemberComps.push_back(genericComp);
22422242

2243-
TR = CompoundIdentTypeRepr::create(C, compound->getBaseComponent(),
2244-
newMemberComps);
2243+
TR =
2244+
MemberTypeRepr::create(C, memberTR->getBaseComponent(), newMemberComps);
22452245
} else {
22462246
TR = genericComp;
22472247
}

lib/AST/NameLookup.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2267,10 +2267,10 @@ resolveTypeDeclsToNominal(Evaluator &evaluator,
22672267
if (typealias->getName().is("AnyObject")) {
22682268
// TypeRepr version: Builtin.AnyObject
22692269
if (auto typeRepr = typealias->getUnderlyingTypeRepr()) {
2270-
if (auto compound = dyn_cast<CompoundIdentTypeRepr>(typeRepr)) {
2270+
if (auto memberTR = dyn_cast<MemberTypeRepr>(typeRepr)) {
22712271
if (auto identBase = dyn_cast<ComponentIdentTypeRepr>(
2272-
compound->getBaseComponent())) {
2273-
auto memberComps = compound->getMemberComponents();
2272+
memberTR->getBaseComponent())) {
2273+
auto memberComps = memberTR->getMemberComponents();
22742274
if (memberComps.size() == 1 &&
22752275
identBase->getNameRef().isSimpleName("Builtin") &&
22762276
memberComps.front()->getNameRef().isSimpleName("AnyObject")) {
@@ -2455,15 +2455,15 @@ directReferencesForIdentTypeRepr(Evaluator &evaluator,
24552455
allowUsableFromInline);
24562456
}
24572457

2458-
auto *compound = dyn_cast<CompoundIdentTypeRepr>(ident);
2459-
if (!compound)
2458+
auto *memberTR = dyn_cast<MemberTypeRepr>(ident);
2459+
if (!memberTR)
24602460
return current;
24612461

24622462
// If we didn't find anything, fail now.
24632463
if (current.empty())
24642464
return current;
24652465

2466-
for (const auto &component : compound->getMemberComponents()) {
2466+
for (const auto &component : memberTR->getMemberComponents()) {
24672467
// If we already set a declaration, use it.
24682468
if (auto typeDecl = component->getBoundDecl()) {
24692469
current = {1, typeDecl};
@@ -2511,7 +2511,7 @@ directReferencesForTypeRepr(Evaluator &evaluator,
25112511
return result;
25122512
}
25132513

2514-
case TypeReprKind::CompoundIdent:
2514+
case TypeReprKind::Member:
25152515
case TypeReprKind::GenericIdent:
25162516
case TypeReprKind::SimpleIdent:
25172517
return directReferencesForIdentTypeRepr(evaluator, ctx,
@@ -3089,7 +3089,7 @@ CustomAttrNominalRequest::evaluate(Evaluator &evaluator,
30893089
identTypeRepr->getNameLoc(), DeclNameRef(moduleName));
30903090

30913091
auto *newTE = new (ctx) TypeExpr(
3092-
CompoundIdentTypeRepr::create(ctx, baseComp, {identTypeRepr}));
3092+
MemberTypeRepr::create(ctx, baseComp, {identTypeRepr}));
30933093
attr->resetTypeInformation(newTE);
30943094
return nominal;
30953095
}

lib/AST/TypeRepr.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -139,14 +139,14 @@ TypeRepr *IdentTypeRepr::getBaseComponent() {
139139
if (auto *Comp = dyn_cast<ComponentIdentTypeRepr>(this))
140140
return Comp;
141141

142-
return cast<CompoundIdentTypeRepr>(this)->getBaseComponent();
142+
return cast<MemberTypeRepr>(this)->getBaseComponent();
143143
}
144144

145145
ComponentIdentTypeRepr *IdentTypeRepr::getLastComponent() {
146146
if (auto *Comp = dyn_cast<ComponentIdentTypeRepr>(this))
147147
return Comp;
148148

149-
return cast<CompoundIdentTypeRepr>(this)->getLastComponent();
149+
return cast<MemberTypeRepr>(this)->getLastComponent();
150150
}
151151

152152
DeclNameRef ComponentIdentTypeRepr::getNameRef() const {
@@ -293,8 +293,8 @@ void ComponentIdentTypeRepr::printImpl(ASTPrinter &Printer,
293293
printGenericArgs(Printer, Opts, GenIdT->getGenericArgs());
294294
}
295295

296-
void CompoundIdentTypeRepr::printImpl(ASTPrinter &Printer,
297-
const PrintOptions &Opts) const {
296+
void MemberTypeRepr::printImpl(ASTPrinter &Printer,
297+
const PrintOptions &Opts) const {
298298
printTypeRepr(getBaseComponent(), Printer, Opts);
299299
for (auto C : getMemberComponents()) {
300300
Printer << ".";
@@ -382,13 +382,13 @@ GenericIdentTypeRepr *GenericIdentTypeRepr::create(const ASTContext &C,
382382
return new (mem) GenericIdentTypeRepr(Loc, Id, GenericArgs, AngleBrackets);
383383
}
384384

385-
CompoundIdentTypeRepr *CompoundIdentTypeRepr::create(
386-
const ASTContext &C, TypeRepr *Base,
387-
ArrayRef<ComponentIdentTypeRepr *> MemberComponents) {
385+
MemberTypeRepr *
386+
MemberTypeRepr::create(const ASTContext &C, TypeRepr *Base,
387+
ArrayRef<ComponentIdentTypeRepr *> MemberComponents) {
388388
auto size =
389389
totalSizeToAlloc<ComponentIdentTypeRepr *>(MemberComponents.size());
390-
auto mem = C.Allocate(size, alignof(CompoundIdentTypeRepr));
391-
return new (mem) CompoundIdentTypeRepr(Base, MemberComponents);
390+
auto mem = C.Allocate(size, alignof(MemberTypeRepr));
391+
return new (mem) MemberTypeRepr(Base, MemberComponents);
392392
}
393393

394394
SILBoxTypeRepr *SILBoxTypeRepr::create(ASTContext &C,

lib/IDE/CodeCompletion.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ class CodeCompletionCallbacksImpl : public CodeCompletionCallbacks {
197197
// It doesn't type check as a type, so see if it's a qualifying module name.
198198
if (auto *ITR = dyn_cast<IdentTypeRepr>(ParsedTypeLoc.getTypeRepr())) {
199199
// If it has more than one component, it can't be a module name.
200-
if (isa<CompoundIdentTypeRepr>(ITR))
200+
if (isa<MemberTypeRepr>(ITR))
201201
return false;
202202

203203
const auto *component = cast<ComponentIdentTypeRepr>(ITR);

lib/Migrator/APIDiffMigratorPass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ class ChildIndexFinder : public TypeReprVisitor<ChildIndexFinder, FoundResult> {
205205
return handleParent(T, T->getGenericArgs());
206206
}
207207

208-
FoundResult visitCompoundIdentTypeRepr(CompoundIdentTypeRepr *T) {
208+
FoundResult visitMemberTypeRepr(MemberTypeRepr *T) {
209209
return visit(T->getLastComponent());
210210
}
211211

lib/Parse/ParseType.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -751,8 +751,7 @@ Parser::parseTypeIdentifier(bool isParsingQualifiedDeclBaseType) {
751751
ITR = ComponentsR.front();
752752
} else {
753753
ArrayRef<ComponentIdentTypeRepr *> Comps(ComponentsR);
754-
ITR = CompoundIdentTypeRepr::create(Context, Comps.front(),
755-
Comps.drop_front());
754+
ITR = MemberTypeRepr::create(Context, Comps.front(), Comps.drop_front());
756755
}
757756
}
758757

lib/Sema/TypeCheckAvailability.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4000,8 +4000,8 @@ class TypeReprAvailabilityWalker : public ASTWalker {
40004000
return Action::SkipChildren();
40014001
}
40024002

4003-
if (auto *CTR = dyn_cast<CompoundIdentTypeRepr>(T)) {
4004-
for (auto *comp : CTR->getMemberComponents()) {
4003+
if (auto *memberTR = dyn_cast<MemberTypeRepr>(T)) {
4004+
for (auto *comp : memberTR->getMemberComponents()) {
40054005
// If a parent type is unavailable, don't go on to diagnose
40064006
// the member since that will just produce a redundant
40074007
// diagnostic.

0 commit comments

Comments
 (0)