Skip to content

Commit b84f8ab

Browse files
committed
Rename "suppressible protocols" to "invertible protocols".
We've decided to use the "invertible protocols" terminology throughout the runtime and compiler, so move over to that terminology consistently.
1 parent 79b78ac commit b84f8ab

File tree

16 files changed

+330
-332
lines changed

16 files changed

+330
-332
lines changed

include/swift/ABI/GenericContext.h

Lines changed: 72 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#include "swift/ABI/TargetLayout.h"
2222
#include "swift/ABI/MetadataValues.h"
2323
#include "swift/ABI/MetadataRef.h"
24-
#include "swift/ABI/SuppressibleProtocols.h"
24+
#include "swift/ABI/InvertibleProtocols.h"
2525
#include "swift/ABI/TrailingObjects.h"
2626
#include "swift/Demangling/Demangle.h"
2727

@@ -105,8 +105,8 @@ struct TargetGenericContextDescriptorHeader {
105105
return getNumArguments() > 0;
106106
}
107107

108-
bool hasConditionalSuppressedProtocols() const {
109-
return Flags.hasConditionalSuppressedProtocols();
108+
bool hasConditionalInvertedProtocols() const {
109+
return Flags.hasConditionalInvertedProtocols();
110110
}
111111
};
112112
using GenericContextDescriptorHeader =
@@ -143,19 +143,19 @@ class TargetGenericRequirementDescriptor {
143143
/// Only valid if the requirement has Layout kind.
144144
GenericRequirementLayoutKind Layout;
145145

146-
/// The set of suppressible protocols whose check is suppressed, along
147-
/// with the index of the generic parameter being suppressed.
146+
/// The set of invertible protocols whose check is disabled, along
147+
/// with the index of the generic parameter to which this applies.
148148
///
149149
/// The index is technically redundant with the subject type, but its
150150
/// storage is effectively free because this union is 32 bits anyway. The
151-
/// index 0xFFFF is reserved for "not a generic parameter", in case we
152-
/// need to use that in the future.
151+
/// index 0xFFFF is reserved for "not a generic parameter", in which case
152+
/// the constraints are on the subject type.
153153
///
154-
/// Only valid if the requirement has SuppressedProtocols kind.
154+
/// Only valid if the requirement has InvertedProtocols kind.
155155
struct {
156156
uint16_t GenericParamIndex;
157-
SuppressibleProtocolSet Protocols;
158-
} SuppressedProtocols;
157+
InvertibleProtocolSet Protocols;
158+
} InvertedProtocols;
159159
};
160160

161161
constexpr GenericRequirementFlags getFlags() const {
@@ -223,16 +223,16 @@ class TargetGenericRequirementDescriptor {
223223
return Layout;
224224
}
225225

226-
/// Retrieve the set of suppressed protocols.
227-
SuppressibleProtocolSet getSuppressedProtocols() const {
228-
assert(getKind() == GenericRequirementKind::SuppressedProtocols);
229-
return SuppressedProtocols.Protocols;
226+
/// Retrieve the set of inverted protocols.
227+
InvertibleProtocolSet getInvertedProtocols() const {
228+
assert(getKind() == GenericRequirementKind::InvertedProtocols);
229+
return InvertedProtocols.Protocols;
230230
}
231231

232-
/// Retrieve the suppressible protocol kind.
233-
uint16_t getSuppressedProtocolsGenericParamIndex() const {
234-
assert(getKind() == GenericRequirementKind::SuppressedProtocols);
235-
return SuppressedProtocols.GenericParamIndex;
232+
/// Retrieve the invertible protocol kind.
233+
uint16_t getInvertedProtocolsGenericParamIndex() const {
234+
assert(getKind() == GenericRequirementKind::InvertedProtocols);
235+
return InvertedProtocols.GenericParamIndex;
236236
}
237237

238238
/// Determine whether this generic requirement has a known kind.
@@ -246,7 +246,7 @@ class TargetGenericRequirementDescriptor {
246246
case GenericRequirementKind::SameConformance:
247247
case GenericRequirementKind::SameType:
248248
case GenericRequirementKind::SameShape:
249-
case GenericRequirementKind::SuppressedProtocols:
249+
case GenericRequirementKind::InvertedProtocols:
250250
return true;
251251
}
252252

@@ -299,24 +299,24 @@ struct GenericPackShapeDescriptor {
299299
};
300300

301301
/// A count for the number of requirements for the number of requirements
302-
/// for a given conditional conformance to a suppressible protocols.
303-
struct ConditionalSuppressibleProtocolsRequirementCount {
302+
/// for a given conditional conformance to a invertible protocols.
303+
struct ConditionalInvertibleProtocolsRequirementCount {
304304
uint16_t count;
305305
};
306306

307-
/// A suppressible protocol set used for the conditional conformances in a
307+
/// A invertible protocol set used for the conditional conformances in a
308308
/// generic context.
309-
struct ConditionalSuppressibleProtocolSet: SuppressibleProtocolSet {
310-
using SuppressibleProtocolSet::SuppressibleProtocolSet;
309+
struct ConditionalInvertibleProtocolSet: InvertibleProtocolSet {
310+
using InvertibleProtocolSet::InvertibleProtocolSet;
311311
};
312312

313313
/// A generic requirement for describing a conditional conformance to a
314-
/// suppressible protocol.
314+
/// invertible protocol.
315315
///
316316
/// This type is equivalent to a `TargetGenericRequirementDescriptor`, and
317317
/// differs only because it needs to occur alongside
318318
template<typename Runtime>
319-
struct TargetConditionalSuppressibleProtocolRequirement: TargetGenericRequirementDescriptor<Runtime> { };
319+
struct TargetConditionalInvertibleProtocolRequirement: TargetGenericRequirementDescriptor<Runtime> { };
320320

321321
/// An array of generic parameter descriptors, all
322322
/// GenericParamDescriptor::implicit(), which is by far
@@ -478,27 +478,27 @@ class TrailingGenericContextObjects<TargetSelf<Runtime>,
478478
TargetGenericRequirementDescriptor<Runtime>,
479479
GenericPackShapeHeader,
480480
GenericPackShapeDescriptor,
481-
ConditionalSuppressibleProtocolSet,
482-
ConditionalSuppressibleProtocolsRequirementCount,
483-
TargetConditionalSuppressibleProtocolRequirement<Runtime>,
481+
ConditionalInvertibleProtocolSet,
482+
ConditionalInvertibleProtocolsRequirementCount,
483+
TargetConditionalInvertibleProtocolRequirement<Runtime>,
484484
FollowingTrailingObjects...>
485485
{
486486
protected:
487487
using Self = TargetSelf<Runtime>;
488488
using GenericContextHeaderType = TargetGenericContextHeaderType<Runtime>;
489489
using GenericRequirementDescriptor =
490490
TargetGenericRequirementDescriptor<Runtime>;
491-
using GenericConditionalSuppressibleProtocolRequirement =
492-
TargetConditionalSuppressibleProtocolRequirement<Runtime>;
491+
using GenericConditionalInvertibleProtocolRequirement =
492+
TargetConditionalInvertibleProtocolRequirement<Runtime>;
493493
using TrailingObjects = swift::ABI::TrailingObjects<Self,
494494
GenericContextHeaderType,
495495
GenericParamDescriptor,
496496
GenericRequirementDescriptor,
497497
GenericPackShapeHeader,
498498
GenericPackShapeDescriptor,
499-
ConditionalSuppressibleProtocolSet,
500-
ConditionalSuppressibleProtocolsRequirementCount,
501-
GenericConditionalSuppressibleProtocolRequirement,
499+
ConditionalInvertibleProtocolSet,
500+
ConditionalInvertibleProtocolsRequirementCount,
501+
GenericConditionalInvertibleProtocolRequirement,
502502
FollowingTrailingObjects...>;
503503
friend TrailingObjects;
504504

@@ -528,81 +528,81 @@ class TrailingGenericContextObjects<TargetSelf<Runtime>,
528528
return getFullGenericContextHeader();
529529
}
530530

531-
bool hasConditionalSuppressedProtocols() const {
531+
bool hasConditionalInvertedProtocols() const {
532532
if (!asSelf()->isGeneric())
533533
return false;
534534

535-
return getGenericContextHeader().hasConditionalSuppressedProtocols();
535+
return getGenericContextHeader().hasConditionalInvertedProtocols();
536536
}
537537

538-
const SuppressibleProtocolSet &
539-
getConditionalSuppressedProtocols() const {
540-
assert(hasConditionalSuppressedProtocols());
538+
const InvertibleProtocolSet &
539+
getConditionalInvertedProtocols() const {
540+
assert(hasConditionalInvertedProtocols());
541541
return *this->template
542-
getTrailingObjects<ConditionalSuppressibleProtocolSet>();
542+
getTrailingObjects<ConditionalInvertibleProtocolSet>();
543543
}
544544

545-
/// Retrieve the counts for # of conditional suppressible protocols for each
546-
/// conditional conformance to a suppressible protocol.
545+
/// Retrieve the counts for # of conditional invertible protocols for each
546+
/// conditional conformance to a invertible protocol.
547547
///
548548
/// The counts are cumulative, so the first entry in the array is the
549549
/// number of requirements for the first conditional conformance. The
550550
/// second entry in the array is the number of requirements in the first
551551
/// and second conditional conformances. The last entry is, therefore, the
552552
/// total count of requirements in the structure.
553-
llvm::ArrayRef<ConditionalSuppressibleProtocolsRequirementCount>
554-
getConditionalSuppressibleProtocolRequirementCounts() const {
555-
if (!asSelf()->hasConditionalSuppressedProtocols())
553+
llvm::ArrayRef<ConditionalInvertibleProtocolsRequirementCount>
554+
getConditionalInvertibleProtocolRequirementCounts() const {
555+
if (!asSelf()->hasConditionalInvertedProtocols())
556556
return {};
557557

558558
return {
559559
this->template
560-
getTrailingObjects<ConditionalSuppressibleProtocolsRequirementCount>(),
561-
getNumConditionalSuppressibleProtocolsRequirementCounts()
560+
getTrailingObjects<ConditionalInvertibleProtocolsRequirementCount>(),
561+
getNumConditionalInvertibleProtocolsRequirementCounts()
562562
};
563563
}
564564

565565
/// Retrieve the array of requirements for conditional conformances to
566-
/// the ith conditional conformance to a suppressible protocol.
567-
llvm::ArrayRef<GenericConditionalSuppressibleProtocolRequirement>
568-
getConditionalSuppressibleProtocolRequirementsAt(unsigned i) const {
569-
auto counts = getConditionalSuppressibleProtocolRequirementCounts();
566+
/// the ith conditional conformance to a invertible protocol.
567+
llvm::ArrayRef<GenericConditionalInvertibleProtocolRequirement>
568+
getConditionalInvertibleProtocolRequirementsAt(unsigned i) const {
569+
auto counts = getConditionalInvertibleProtocolRequirementCounts();
570570
assert(i < counts.size());
571571

572572
unsigned startIndex = (i == 0) ? 0 : counts[i-1].count;
573573
unsigned endIndex = counts[i].count;
574574

575575
auto basePtr =
576576
this->template
577-
getTrailingObjects<GenericConditionalSuppressibleProtocolRequirement>();
577+
getTrailingObjects<GenericConditionalInvertibleProtocolRequirement>();
578578
return { basePtr + startIndex, basePtr + endIndex };
579579
}
580580

581581
/// Retrieve the array of requirements for conditional conformances to
582-
/// the ith conditional conformance to a suppressible protocol.
583-
llvm::ArrayRef<GenericConditionalSuppressibleProtocolRequirement>
584-
getConditionalSuppressibleProtocolRequirementsFor(
585-
SuppressibleProtocolKind kind
582+
/// the ith conditional conformance to a invertible protocol.
583+
llvm::ArrayRef<GenericConditionalInvertibleProtocolRequirement>
584+
getConditionalInvertibleProtocolRequirementsFor(
585+
InvertibleProtocolKind kind
586586
) const {
587-
if (!asSelf()->hasConditionalSuppressedProtocols())
587+
if (!asSelf()->hasConditionalInvertedProtocols())
588588
return { };
589589

590-
auto conditionallySuppressed = getConditionalSuppressedProtocols();
591-
if (!conditionallySuppressed.contains(kind))
590+
auto conditionallyInverted = getConditionalInvertedProtocols();
591+
if (!conditionallyInverted.contains(kind))
592592
return { };
593593

594594
// Count the number of "set" bits up to (but not including) the
595595
// bit we're looking at.
596596
unsigned targetBit = static_cast<uint8_t>(kind);
597-
auto suppressedBits = conditionallySuppressed.rawBits();
597+
auto invertedBits = conditionallyInverted.rawBits();
598598
unsigned priorBits = 0;
599599
for (unsigned i = 0; i != targetBit; ++i) {
600-
if (suppressedBits & 0x01)
600+
if (invertedBits & 0x01)
601601
++priorBits;
602-
suppressedBits = suppressedBits >> 1;
602+
invertedBits = invertedBits >> 1;
603603
}
604604

605-
return getConditionalSuppressibleProtocolRequirementsAt(priorBits);
605+
return getConditionalInvertibleProtocolRequirementsAt(priorBits);
606606
}
607607

608608
const TargetGenericContext<Runtime> *getGenericContext() const {
@@ -687,28 +687,28 @@ class TrailingGenericContextObjects<TargetSelf<Runtime>,
687687
}
688688

689689
size_t numTrailingObjects(
690-
OverloadToken<ConditionalSuppressibleProtocolSet>
690+
OverloadToken<ConditionalInvertibleProtocolSet>
691691
) const {
692-
return asSelf()->hasConditionalSuppressedProtocols() ? 1 : 0;
692+
return asSelf()->hasConditionalInvertedProtocols() ? 1 : 0;
693693
}
694694

695-
unsigned getNumConditionalSuppressibleProtocolsRequirementCounts() const {
696-
if (!asSelf()->hasConditionalSuppressedProtocols())
695+
unsigned getNumConditionalInvertibleProtocolsRequirementCounts() const {
696+
if (!asSelf()->hasConditionalInvertedProtocols())
697697
return 0;
698698

699-
return countBitsUsed(getConditionalSuppressedProtocols().rawBits());
699+
return countBitsUsed(getConditionalInvertedProtocols().rawBits());
700700
}
701701

702702
size_t numTrailingObjects(
703-
OverloadToken<ConditionalSuppressibleProtocolsRequirementCount>
703+
OverloadToken<ConditionalInvertibleProtocolsRequirementCount>
704704
) const {
705-
return getNumConditionalSuppressibleProtocolsRequirementCounts();
705+
return getNumConditionalInvertibleProtocolsRequirementCounts();
706706
}
707707

708708
size_t numTrailingObjects(
709-
OverloadToken<GenericConditionalSuppressibleProtocolRequirement>
709+
OverloadToken<GenericConditionalInvertibleProtocolRequirement>
710710
) const {
711-
auto counts = getConditionalSuppressibleProtocolRequirementCounts();
711+
auto counts = getConditionalInvertibleProtocolRequirementCounts();
712712
return counts.empty() ? 0 : counts.back().count;
713713
}
714714

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//===--- SuppressibleProtocols.def - Suppressible protocol meta -*- C++ -*-===//
1+
//===--- InvertibleProtocols.def - invertible protocol meta -*- C++ -*-===//
22
//
33
// This source file is part of the Swift.org open source project
44
//
@@ -11,21 +11,21 @@
1111
//===----------------------------------------------------------------------===//
1212
//
1313
// This file defines macros used for macro-metaprogramming with ABI-defined
14-
// suppressible protocols.
14+
// invertible protocols.
1515
//
16-
// The SUPPRESSIBLE_PROTOCOL(Name, Bit, MangleChar) macro is used to specify
17-
// each suppressible protocol that's conceptually part of the ABI. The
16+
// The INVERTIBLE_PROTOCOL(Name, Bit) macro is used to specify each
17+
// each invertible protocol that's conceptually part of the ABI. The
1818
// arguments are:
1919
// Name: The name of the protocol, e.g., Copyable
20-
// Bit: The bit in the set bitset of suppressible protocols that is used
20+
// Bit: The bit in the set bitset of invertible protocols that is used
2121
// to indicate this.
2222
//===----------------------------------------------------------------------===//
2323

24-
#ifndef SUPPRESSIBLE_PROTOCOL
25-
# error Must define SUPPRESSIBLE_PROTOCOL macro before including this file
24+
#ifndef INVERTIBLE_PROTOCOL
25+
# error Must define INVERTIBLE_PROTOCOL macro before including this file
2626
#endif
2727

28-
SUPPRESSIBLE_PROTOCOL(Copyable, 0)
29-
SUPPRESSIBLE_PROTOCOL(Escapable, 1)
28+
INVERTIBLE_PROTOCOL(Copyable, 0)
29+
INVERTIBLE_PROTOCOL(Escapable, 1)
3030

31-
#undef SUPPRESSIBLE_PROTOCOL
31+
#undef INVERTIBLE_PROTOCOL

0 commit comments

Comments
 (0)