Fix class-in-module issues

This commit is contained in:
Wilson Snyder 2020-11-27 09:42:51 -05:00
parent 4643d6e883
commit 963fd0664d
2 changed files with 5 additions and 1 deletions

View File

@ -87,7 +87,8 @@ private:
iterateChildren(nodep);
}
}
virtual void visit(AstPackage* nodep) override {
virtual void visit(AstNodeModule* nodep) override {
// Visit for NodeModules that are not AstClass (AstClass is-a AstNodeModule)
VL_RESTORER(m_prefix);
{
m_prefix = nodep->name() + "__03a__03a"; // ::

View File

@ -803,6 +803,7 @@ class ParamVisitor final : public AstNVisitor {
}
m_cellps.clear();
m_modp = nullptr;
UINFO(4, " MOD-done\n");
}
}
}
@ -815,6 +816,8 @@ class ParamVisitor final : public AstNVisitor {
// Fake, made for recursive elimination
UINFO(4, " MOD-recursive-dead. " << nodep << endl);
nodep->dead(true); // So Dead checks won't count references to it
} else if (m_modp) {
UINFO(4, " MOD-under-MOD. " << nodep << endl);
} else if (nodep->level() <= 2 // Haven't added top yet, so level 2 is the top
|| VN_IS(nodep, Package)) { // Likewise haven't done wrapTopPackages yet
// Add request to END of modules left to process