diff --git a/src/Types.cc b/src/Types.cc index a198ef624..9e2c19e75 100644 --- a/src/Types.cc +++ b/src/Types.cc @@ -71,7 +71,10 @@ namespace bolt { Type* Type::rewrite(std::function Fn, bool Recursive) { auto Ty2 = Fn(this); - if (!Recursive && this != Ty2) { + if (this != Ty2) { + if (Recursive) { + return Ty2->rewrite(Fn, Recursive); + } return Ty2; } switch (Kind) {