Consistently use a Witness rather than an expression to represent a possibly-symbolic witness. (#2245)

Previously we used an expression in some places and a `Witness` values in others. The eventual goal is to make `Witness` values behave like other symbolic values such as `NominalClassType`, but the first step is to consistently treat them like values rather than expressions.

No functionality change intended.
This commit is contained in:
Richard Smith
2022-10-03 14:00:41 -07:00
committed by GitHub
parent c198dafbe8
commit 04d49cebd8
11 changed files with 222 additions and 152 deletions
+3
View File
@@ -116,6 +116,9 @@ void Action::Print(llvm::raw_ostream& out) const {
case Action::Kind::ExpressionAction:
out << cast<ExpressionAction>(*this).expression() << " ";
break;
case Action::Kind::WitnessAction:
out << *cast<WitnessAction>(*this).witness() << " ";
break;
case Action::Kind::PatternAction:
out << cast<PatternAction>(*this).pattern() << " ";
break;