mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[NFC] Remove the now-dead PackExpanded accessors from AbstractionPattern
This commit is contained in:
@@ -1543,19 +1543,15 @@ public:
|
||||
AbstractionPattern getObjCMethodAsyncCompletionHandlerType(
|
||||
CanType swiftCompletionHandlerType) const;
|
||||
|
||||
/// Given that this is a pack expansion, invoke the given callback for
|
||||
/// each component of the substituted expansion of this pattern. The
|
||||
/// pattern will be for a pack expansion type over a contextual type if
|
||||
/// the substituted component is still a pack expansion. If there aren't
|
||||
/// substitutions available, this will just invoke the callback with the
|
||||
/// component.
|
||||
void forEachPackExpandedComponent(
|
||||
llvm::function_ref<void(AbstractionPattern pattern)> fn) const;
|
||||
|
||||
/// Given that this is a pack expansion, return the number of components
|
||||
/// that it should expand to. This, and the general correctness of
|
||||
/// traversing variadically generic tuple and function types under
|
||||
/// substitution, relies on substitutions having been set properly
|
||||
/// on the abstraction pattern; without that, AbstractionPattern assumes
|
||||
/// that every component expands to a single pack expansion component,
|
||||
/// which will generally only work in specific situations.
|
||||
size_t getNumPackExpandedComponents() const;
|
||||
|
||||
SmallVector<AbstractionPattern, 4> getPackExpandedComponents() const;
|
||||
|
||||
/// If this pattern refers to a foreign ObjC method that was imported as
|
||||
/// async, return the bridged-back-to-ObjC completion handler type.
|
||||
CanType getObjCMethodAsyncCompletionHandlerForeignType(
|
||||
|
||||
@@ -675,15 +675,6 @@ AbstractionPattern AbstractionPattern::getPackExpansionPatternType() const {
|
||||
llvm_unreachable("bad kind");
|
||||
}
|
||||
|
||||
SmallVector<AbstractionPattern, 4>
|
||||
AbstractionPattern::getPackExpandedComponents() const {
|
||||
SmallVector<AbstractionPattern, 4> result;
|
||||
forEachPackExpandedComponent([&](AbstractionPattern pattern) {
|
||||
result.push_back(pattern);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
size_t AbstractionPattern::getNumPackExpandedComponents() const {
|
||||
assert(isPackExpansion());
|
||||
assert(getKind() == Kind::Type || getKind() == Kind::Discard);
|
||||
@@ -699,40 +690,6 @@ size_t AbstractionPattern::getNumPackExpandedComponents() const {
|
||||
return substShape->getNumElements();
|
||||
}
|
||||
|
||||
void AbstractionPattern::forEachPackExpandedComponent(
|
||||
llvm::function_ref<void (AbstractionPattern)> fn) const {
|
||||
assert(isPackExpansion());
|
||||
|
||||
switch (getKind()) {
|
||||
case Kind::Type:
|
||||
case Kind::Discard: {
|
||||
// If we don't have generic substitutions, just produce this pattern.
|
||||
if (!GenericSubs) return fn(*this);
|
||||
auto origExpansion = cast<PackExpansionType>(getType());
|
||||
|
||||
// Substitute the expansion shape.
|
||||
auto substShape = cast<PackType>(
|
||||
origExpansion.getCountType().subst(GenericSubs)->getCanonicalType());
|
||||
|
||||
// Call the callback with each component of the substituted shape.
|
||||
for (auto substShapeElt : substShape.getElementTypes()) {
|
||||
CanType origEltType = origExpansion.getPatternType();
|
||||
if (auto substShapeEltExpansion =
|
||||
dyn_cast<PackExpansionType>(substShapeElt)) {
|
||||
origEltType = CanPackExpansionType::get(origEltType,
|
||||
substShapeEltExpansion.getCountType());
|
||||
}
|
||||
fn(AbstractionPattern(GenericSubs, GenericSig, origEltType));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
default:
|
||||
llvm_unreachable("not a pack expansion");
|
||||
}
|
||||
llvm_unreachable("bad kind");
|
||||
}
|
||||
|
||||
AbstractionPattern AbstractionPattern::removingMoveOnlyWrapper() const {
|
||||
switch (getKind()) {
|
||||
case Kind::Invalid:
|
||||
|
||||
Reference in New Issue
Block a user