Fix self references to parameterized classes (#3962)

This commit is contained in:
Ryszard Rozak
2023-02-17 11:17:35 -05:00
committed by GitHub
parent 063f9a7a4c
commit 45f955f175
2 changed files with 34 additions and 0 deletions
+3
View File
@@ -547,7 +547,10 @@ class ParamProcessor final {
AstClass* const newClassp) {
if (AstClassRefDType* const classRefp = VN_CAST(nodep, ClassRefDType)) {
if (classRefp->classp() == oldClassp) classRefp->classp(newClassp);
} else if (AstClassOrPackageRef* const classRefp = VN_CAST(nodep, ClassOrPackageRef)) {
if (classRefp->classOrPackagep() == oldClassp) classRefp->classOrPackagep(newClassp);
}
if (nodep->op1p()) replaceRefsRecurse(nodep->op1p(), oldClassp, newClassp);
if (nodep->op2p()) replaceRefsRecurse(nodep->op2p(), oldClassp, newClassp);
if (nodep->op3p()) replaceRefsRecurse(nodep->op3p(), oldClassp, newClassp);