Refactor `AstMemberSel` creation with `AstVar` (#5251)
No functional change intended. Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
This commit is contained in:
parent
bbb223f217
commit
abb46c9cb2
|
|
@ -1564,12 +1564,7 @@ public:
|
|||
this->fromp(fromp);
|
||||
dtypep(nullptr); // V3Width will resolve
|
||||
}
|
||||
AstMemberSel(FileLine* fl, AstNodeExpr* fromp, AstNodeDType* dtp)
|
||||
: ASTGEN_SUPER_MemberSel(fl)
|
||||
, m_name{dtp->name()} {
|
||||
this->fromp(fromp);
|
||||
dtypep(dtp);
|
||||
}
|
||||
AstMemberSel(FileLine* fl, AstNodeExpr* fromp, AstVar* varp);
|
||||
ASTGEN_MEMBERS_AstMemberSel;
|
||||
void dump(std::ostream& str) const override;
|
||||
void dumpJson(std::ostream& str) const override;
|
||||
|
|
|
|||
|
|
@ -1831,6 +1831,13 @@ AstNodeUOrStructDType* AstMemberDType::getChildStructp() const {
|
|||
return VN_CAST(subdtp->skipRefp(), NodeUOrStructDType); // Maybe nullptr
|
||||
}
|
||||
|
||||
AstMemberSel::AstMemberSel(FileLine* fl, AstNodeExpr* fromp, AstVar* varp)
|
||||
: ASTGEN_SUPER_MemberSel(fl)
|
||||
, m_name{varp->name()} {
|
||||
this->fromp(fromp);
|
||||
this->varp(varp);
|
||||
dtypep(varp->dtypep());
|
||||
}
|
||||
bool AstMemberSel::same(const AstNode* samep) const {
|
||||
const AstMemberSel* const sp = VN_DBG_AS(samep, MemberSel);
|
||||
return sp != nullptr && access() == sp->access() && fromp()->isSame(sp->fromp())
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@
|
|||
#include "V3MemberMap.h"
|
||||
|
||||
#include <set>
|
||||
#include <vector>
|
||||
|
||||
VL_DEFINE_DEBUG_FUNCTIONS;
|
||||
|
||||
|
|
@ -167,9 +166,7 @@ public:
|
|||
AstMemberSel* const memberselp = new AstMemberSel{
|
||||
varp->fileline(),
|
||||
new AstVarRef{varp->fileline(), m_instance.m_handlep, VAccess::WRITE},
|
||||
varp->dtypep()};
|
||||
memberselp->name(varp->name());
|
||||
memberselp->varp(VN_AS(memberMap.findMember(m_instance.m_classp, varp->name()), Var));
|
||||
VN_AS(memberMap.findMember(m_instance.m_classp, varp->name()), Var)};
|
||||
AstNode* initAsgnp
|
||||
= new AstAssign{varp->fileline(), memberselp,
|
||||
new AstVarRef{varp->fileline(), varp, VAccess::READ}};
|
||||
|
|
@ -307,8 +304,7 @@ class DynScopeVisitor final : public VNVisitor {
|
|||
refp->unlinkFrBack(&handle);
|
||||
AstMemberSel* const membersel = new AstMemberSel{
|
||||
refp->fileline(), new AstVarRef{refp->fileline(), dynScope.m_handlep, refp->access()},
|
||||
refp->dtypep()};
|
||||
membersel->name(refp->varp()->name());
|
||||
refp->varp()};
|
||||
if (refp->varp()->direction() == VDirection::INPUT) {
|
||||
membersel->varp(
|
||||
VN_AS(m_memberMap.findMember(dynScope.m_classp, refp->varp()->name()), Var));
|
||||
|
|
|
|||
Loading…
Reference in New Issue