mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Rename 'RequirementKind::ValueWitnessMarker' to 'WitnessMarker'.
It's witnessing protocol requirements, not values, and "value witness" has a particular meaning in IRGen. Swift SVN r11814
This commit is contained in:
@@ -31,12 +31,12 @@ enum class RequirementKind : unsigned int {
|
||||
/// A same-type requirement T == U, where T and U are types that shall be
|
||||
/// equivalent.
|
||||
SameType,
|
||||
/// A marker that indicates where the value witness for the given (first)
|
||||
/// A marker that indicates where the witness for the given (first)
|
||||
/// type should be located.
|
||||
///
|
||||
/// FIXME: This is a crutch used to help us eliminate various walks over
|
||||
/// "all archetypes".
|
||||
ValueWitnessMarker
|
||||
WitnessMarker
|
||||
};
|
||||
|
||||
/// \brief A single requirement placed on the type parameters (or associated
|
||||
|
||||
@@ -345,7 +345,7 @@ void PrintAST::printGenericParams(GenericParamList *Params) {
|
||||
bool IsFirst = true;
|
||||
for (auto &Req : Requirements) {
|
||||
if (Req.isInvalid() ||
|
||||
Req.getKind() == RequirementKind::ValueWitnessMarker)
|
||||
Req.getKind() == RequirementKind::WitnessMarker)
|
||||
continue;
|
||||
|
||||
if (IsFirst) {
|
||||
@@ -366,7 +366,7 @@ void PrintAST::printGenericParams(GenericParamList *Params) {
|
||||
Printer << " == ";
|
||||
printTypeLoc(Req.getSecondTypeLoc());
|
||||
break;
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
llvm_unreachable("Handled above");
|
||||
}
|
||||
}
|
||||
@@ -1458,7 +1458,7 @@ public:
|
||||
// Print the requirements.
|
||||
bool isFirstReq = true;
|
||||
for (const auto &req : T->getRequirements()) {
|
||||
if (req.getKind() == RequirementKind::ValueWitnessMarker)
|
||||
if (req.getKind() == RequirementKind::WitnessMarker)
|
||||
continue;
|
||||
|
||||
if (isFirstReq) {
|
||||
@@ -1478,7 +1478,7 @@ public:
|
||||
Printer << " == ";
|
||||
break;
|
||||
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
llvm_unreachable("Handled above");
|
||||
}
|
||||
visit(req.getSecondType());
|
||||
|
||||
@@ -537,7 +537,7 @@ bool ArchetypeBuilder::addRequirement(const RequirementRepr &Req) {
|
||||
return addSameTypeRequirement(FirstPA, Req.getEqualLoc(), SecondPA);
|
||||
}
|
||||
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
llvm_unreachable("Value witness marker in requirement");
|
||||
}
|
||||
|
||||
@@ -580,7 +580,7 @@ void ArchetypeBuilder::addRequirement(const Requirement &req) {
|
||||
return;
|
||||
}
|
||||
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -180,7 +180,7 @@ getBuiltinGenericFunction(Identifier Id,
|
||||
->castTo<GenericTypeParamType>());
|
||||
}
|
||||
|
||||
Requirement Marker(RequirementKind::ValueWitnessMarker,
|
||||
Requirement Marker(RequirementKind::WitnessMarker,
|
||||
GenericParamTypes[0], Type());
|
||||
Type InterfaceType = GenericFunctionType::get(GenericParamTypes, Marker,
|
||||
ArgParamType, ResType,
|
||||
|
||||
@@ -247,7 +247,7 @@ addRequirementForRepr(SmallVectorImpl<Requirement> &requirements,
|
||||
*/
|
||||
return;
|
||||
}
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
llvm_unreachable("should not exist after typechecking (?)");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2138,7 +2138,7 @@ case TypeKind::Id:
|
||||
return true;
|
||||
break;
|
||||
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1204,7 +1204,7 @@ struct ASTNodeBase {};
|
||||
// Skip the next same-type constraint.
|
||||
continue;
|
||||
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
done = true;
|
||||
break;
|
||||
}
|
||||
@@ -1265,7 +1265,7 @@ struct ASTNodeBase {};
|
||||
}
|
||||
|
||||
if (requirements.front().getKind()
|
||||
== RequirementKind::ValueWitnessMarker) {
|
||||
== RequirementKind::WitnessMarker) {
|
||||
auto type = ArchetypeBuilder::mapTypeIntoContext(
|
||||
dc,
|
||||
requirements.front().getFirstType());
|
||||
|
||||
@@ -2679,7 +2679,7 @@ namespace {
|
||||
auto genericParam = selfDecl->getDeclaredType()
|
||||
->castTo<GenericTypeParamType>();
|
||||
Requirement genericRequirements[2] = {
|
||||
Requirement(RequirementKind::ValueWitnessMarker, genericParam, Type()),
|
||||
Requirement(RequirementKind::WitnessMarker, genericParam, Type()),
|
||||
Requirement(RequirementKind::Conformance, genericParam,
|
||||
result->getDeclaredType())
|
||||
};
|
||||
|
||||
@@ -103,7 +103,7 @@ Type Solution::computeSubstitutions(
|
||||
// Same-type requirements aren't recorded in substitutions.
|
||||
break;
|
||||
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
// Flush the current conformances.
|
||||
if (!substitutions.empty()) {
|
||||
substitutions.back().Conformance
|
||||
|
||||
@@ -718,7 +718,7 @@ void ConstraintSystem::openGeneric(
|
||||
break;
|
||||
}
|
||||
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -823,7 +823,7 @@ static void checkGenericParamList(ArchetypeBuilder &builder,
|
||||
|
||||
break;
|
||||
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
llvm_unreachable("value witness markers in syntactic requirement?");
|
||||
}
|
||||
|
||||
@@ -863,7 +863,7 @@ void TypeChecker::revertGenericParamList(GenericParamList *genericParams,
|
||||
revertDependentTypeLoc(req.getSecondTypeLoc());
|
||||
break;
|
||||
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
llvm_unreachable("value witness markers in syntactic requirement?");
|
||||
}
|
||||
}
|
||||
@@ -922,7 +922,7 @@ static void finalizeGenericParamList(ArchetypeBuilder &builder,
|
||||
}
|
||||
break;
|
||||
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
llvm_unreachable("value witness markers in syntactic requirement?");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -319,7 +319,7 @@ static bool checkGenericParameters(TypeChecker &tc, ArchetypeBuilder *builder,
|
||||
|
||||
break;
|
||||
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
llvm_unreachable("value witness markers in syntactic requirement?");
|
||||
}
|
||||
|
||||
@@ -407,7 +407,7 @@ addRequirements(
|
||||
using PotentialArchetype = ArchetypeBuilder::PotentialArchetype;
|
||||
|
||||
// Add a value witness marker.
|
||||
requirements.push_back(Requirement(RequirementKind::ValueWitnessMarker,
|
||||
requirements.push_back(Requirement(RequirementKind::WitnessMarker,
|
||||
type, Type()));
|
||||
|
||||
// Add superclass requirement, if needed.
|
||||
|
||||
@@ -709,7 +709,7 @@ GenericParamList *ModuleFile::maybeReadGenericParams(DeclContext *DC) {
|
||||
break;
|
||||
}
|
||||
|
||||
case ValueWitnessMarker: {
|
||||
case WitnessMarker: {
|
||||
// Shouldn't happen where we have requirement representations.
|
||||
error();
|
||||
break;
|
||||
@@ -794,11 +794,11 @@ void ModuleFile::readGenericRequirements(
|
||||
first, second));
|
||||
break;
|
||||
}
|
||||
case GenericRequirementKind::ValueWitnessMarker: {
|
||||
case GenericRequirementKind::WitnessMarker: {
|
||||
assert(rawTypeIDs.size() == 1);
|
||||
auto first = getType(rawTypeIDs[0]);
|
||||
|
||||
requirements.push_back(Requirement(RequirementKind::ValueWitnessMarker,
|
||||
requirements.push_back(Requirement(RequirementKind::WitnessMarker,
|
||||
first, Type()));
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ static inline OperatorKind getStableFixity(DeclKind kind) {
|
||||
enum GenericRequirementKind : uint8_t {
|
||||
Conformance = 0,
|
||||
SameType,
|
||||
ValueWitnessMarker
|
||||
WitnessMarker
|
||||
};
|
||||
using GenericRequirementKindField = BCFixed<2>;
|
||||
|
||||
|
||||
@@ -492,7 +492,7 @@ static uint8_t getRawStableRequirementKind(RequirementKind kind) {
|
||||
switch (kind) {
|
||||
CASE(Conformance)
|
||||
CASE(SameType)
|
||||
CASE(ValueWitnessMarker)
|
||||
CASE(WitnessMarker)
|
||||
}
|
||||
#undef CASE
|
||||
}
|
||||
@@ -515,7 +515,7 @@ void Serializer::writeRequirements(ArrayRef<Requirement> requirements) {
|
||||
addTypeRef(req.getSecondType()));
|
||||
break;
|
||||
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
GenericRequirementLayout::emitRecord(
|
||||
Out, ScratchRecord, reqAbbrCode,
|
||||
getRawStableRequirementKind(req.getKind()),
|
||||
@@ -564,7 +564,7 @@ bool Serializer::writeGenericParams(const GenericParamList *genericParams) {
|
||||
addTypeRef(next.getFirstType()),
|
||||
addTypeRef(next.getSecondType()));
|
||||
break;
|
||||
case RequirementKind::ValueWitnessMarker:
|
||||
case RequirementKind::WitnessMarker:
|
||||
llvm_unreachable("Can't show up in requirement representations");
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user