Skip to content

Commit bb7fa7d

Browse files
authored
Merge pull request swiftlang#33472 from hborla/locator-path-element-restriction
[ConstraintLocator] Always store the PathElementKind in each locator path element.
2 parents 937e141 + 17926b9 commit bb7fa7d

File tree

2 files changed

+153
-274
lines changed

2 files changed

+153
-274
lines changed

lib/Sema/ConstraintLocator.cpp

Lines changed: 1 addition & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -32,54 +32,7 @@ void ConstraintLocator::Profile(llvm::FoldingSetNodeID &id, ASTNode anchor,
3232
id.AddInteger(path.size());
3333
for (auto elt : path) {
3434
id.AddInteger(elt.getKind());
35-
switch (elt.getKind()) {
36-
case GenericParameter:
37-
id.AddPointer(elt.castTo<LocatorPathElt::GenericParameter>().getType());
38-
break;
39-
40-
case ProtocolRequirement: {
41-
auto reqElt = elt.castTo<LocatorPathElt::ProtocolRequirement>();
42-
id.AddPointer(reqElt.getDecl());
43-
break;
44-
}
45-
46-
case Witness:
47-
id.AddPointer(elt.castTo<LocatorPathElt::Witness>().getDecl());
48-
break;
49-
50-
case KeyPathDynamicMember: {
51-
auto kpElt = elt.castTo<LocatorPathElt::KeyPathDynamicMember>();
52-
id.AddPointer(kpElt.getKeyPathDecl());
53-
break;
54-
}
55-
56-
case PatternMatch:
57-
id.AddPointer(elt.castTo<LocatorPathElt::PatternMatch>().getPattern());
58-
break;
59-
60-
case ArgumentAttribute:
61-
case GenericArgument:
62-
case NamedTupleElement:
63-
case TupleElement:
64-
case ApplyArgToParam:
65-
case OpenedGeneric:
66-
case KeyPathComponent:
67-
case ConditionalRequirement:
68-
case TypeParameterRequirement:
69-
case ContextualType:
70-
case SynthesizedArgument:
71-
case TernaryBranch:
72-
case ClosureBody: {
73-
auto numValues = numNumericValuesInPathElement(elt.getKind());
74-
for (unsigned i = 0; i < numValues; ++i)
75-
id.AddInteger(elt.getValue(i));
76-
break;
77-
}
78-
#define SIMPLE_LOCATOR_PATH_ELT(Name) case Name :
79-
#include "ConstraintLocatorPathElts.def"
80-
// Nothing to do for simple locator elements.
81-
break;
82-
}
35+
id.AddInteger(elt.getRawStorage());
8336
}
8437
}
8538

0 commit comments

Comments
 (0)