-
Notifications
You must be signed in to change notification settings - Fork 664
Allow methodcall and new to access interface arrays #5973
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
…gnment should not be a non-virtual interface.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks.
Please resolve the test conflict.
Let me know when ready for another review - first click "resolved" on above, remove commented-out code, and do a "make format" please. |
This should be ready for another review, I'm slightly surprised that 'make format' has apparently run itself! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The autoformatter is cancelling the regression run, so you need to run it on your side and push.
src/V3Inst.cpp
Outdated
// copy between arrays | ||
if (!VN_IS(lhsarrp->subDTypep()->skipRefp(), IfaceRefDType)) return; | ||
if (!VN_IS(rhsarrp->subDTypep()->skipRefp(), IfaceRefDType)) return; | ||
if (VN_AS(rhsarrp->subDTypep()->skipRefp(), IfaceRefDType)->isVirtual()) | ||
return; | ||
if (!VN_AS(lhsarrp->subDTypep()->skipRefp(), IfaceRefDType)->isVirtual()) { | ||
nodep->lhsp()->v3error("Illegal target of assignment"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Illegal or unsupported? Can it turn up if something unexpected like a queue is involved? Add the types to the error so more obvious? (prettyDTypeNameQ())
Handle de-array case so that new and methods can access interfaces from an array.