Internals: Refactoring V3Param. No functional change intended.

This commit is contained in:
Wilson Snyder 2025-09-13 22:39:45 -04:00
parent d7b8ede53f
commit 121193e49b
1 changed files with 9 additions and 15 deletions

View File

@ -1122,32 +1122,26 @@ class ParamProcessor final {
void cellDeparam(AstCell* nodep, AstNodeModule*& srcModpr) { void cellDeparam(AstCell* nodep, AstNodeModule*& srcModpr) {
// Must always clone __Vrcm (recursive modules) // Must always clone __Vrcm (recursive modules)
if (nodeDeparamCommon(nodep, srcModpr, nodep->paramsp(), nodep->pinsp(), nodeDeparamCommon(nodep, srcModpr, nodep->paramsp(), nodep->pinsp(), nodep->recursive());
nodep->recursive())) { nodep->modp(srcModpr); // Might be unchanged if not cloned (newModp == srcModp)
nodep->modp(srcModpr); nodep->modName(srcModpr->name());
nodep->modName(srcModpr->name());
}
nodep->recursive(false); nodep->recursive(false);
} }
void ifaceRefDeparam(AstIfaceRefDType* const nodep, AstNodeModule*& srcModpr) { void ifaceRefDeparam(AstIfaceRefDType* const nodep, AstNodeModule*& srcModpr) {
nodeDeparamCommon(nodep, srcModpr, nodep->paramsp(), nullptr, false); nodeDeparamCommon(nodep, srcModpr, nodep->paramsp(), nullptr, false);
nodep->ifacep(VN_AS(srcModpr, Iface)); nodep->ifacep(VN_AS(srcModpr, Iface));
} }
void classRefDeparam(AstClassOrPackageRef* nodep, AstNodeModule*& srcModpr) { void classRefDeparam(AstClassOrPackageRef* nodep, AstNodeModule*& srcModpr) {
resolveDefaultParams(nodep); resolveDefaultParams(nodep);
if (nodeDeparamCommon(nodep, srcModpr, nodep->paramsp(), nullptr, false)) nodeDeparamCommon(nodep, srcModpr, nodep->paramsp(), nullptr, false);
nodep->classOrPackagep(srcModpr); nodep->classOrPackagep(srcModpr); // Might be unchanged if not cloned (newModp == srcModp)
} }
void classRefDeparam(AstClassRefDType* nodep, AstNodeModule*& srcModpr) { void classRefDeparam(AstClassRefDType* nodep, AstNodeModule*& srcModpr) {
resolveDefaultParams(nodep); resolveDefaultParams(nodep);
if (nodeDeparamCommon(nodep, srcModpr, nodep->paramsp(), nullptr, false)) { nodeDeparamCommon(nodep, srcModpr, nodep->paramsp(), nullptr, false);
AstClass* const classp = VN_AS(srcModpr, Class); AstClass* const newClassp = VN_AS(srcModpr, Class);
nodep->classp(classp); nodep->classp(newClassp); // Might be unchanged if not cloned (newModp == srcModp)
nodep->classOrPackagep(classp); nodep->classOrPackagep(newClassp);
}
} }
public: public: