Fix false missing implementation warning.
This commit is contained in:
parent
a8d70c6edf
commit
2b3bf5f51d
|
|
@ -2686,7 +2686,8 @@ class LinkDotResolveVisitor final : public VNVisitor {
|
||||||
const AstNodeFTask* const baseFuncp = VN_CAST(baseSubp, NodeFTask);
|
const AstNodeFTask* const baseFuncp = VN_CAST(baseSubp, NodeFTask);
|
||||||
if (!baseFuncp || !baseFuncp->pureVirtual()) continue;
|
if (!baseFuncp || !baseFuncp->pureVirtual()) continue;
|
||||||
bool existsInDerived = foundp && !foundp->imported();
|
bool existsInDerived = foundp && !foundp->imported();
|
||||||
if (!existsInDerived && !derivedClassp->isInterfaceClass()) {
|
if (m_statep->forPrimary() && !existsInDerived
|
||||||
|
&& !derivedClassp->isInterfaceClass()) {
|
||||||
derivedClassp->v3error(
|
derivedClassp->v3error(
|
||||||
"Class " << derivedClassp->prettyNameQ() << impOrExtends
|
"Class " << derivedClassp->prettyNameQ() << impOrExtends
|
||||||
<< baseClassp->prettyNameQ()
|
<< baseClassp->prettyNameQ()
|
||||||
|
|
@ -2698,7 +2699,8 @@ class LinkDotResolveVisitor final : public VNVisitor {
|
||||||
<< baseSubp->warnContextSecondary());
|
<< baseSubp->warnContextSecondary());
|
||||||
}
|
}
|
||||||
const auto itn = m_ifClassImpNames.find(baseSubp->name());
|
const auto itn = m_ifClassImpNames.find(baseSubp->name());
|
||||||
if (!existsInDerived && itn != m_ifClassImpNames.end()
|
if (m_statep->forPrimary() && !existsInDerived
|
||||||
|
&& itn != m_ifClassImpNames.end()
|
||||||
&& itn->second != baseSubp) { // Not exact same function from diamond
|
&& itn->second != baseSubp) { // Not exact same function from diamond
|
||||||
derivedClassp->v3error(
|
derivedClassp->v3error(
|
||||||
"Class " << derivedClassp->prettyNameQ() << impOrExtends
|
"Class " << derivedClassp->prettyNameQ() << impOrExtends
|
||||||
|
|
@ -2717,8 +2719,8 @@ class LinkDotResolveVisitor final : public VNVisitor {
|
||||||
const AstConstraint* const baseFuncp = VN_CAST(baseSubp, Constraint);
|
const AstConstraint* const baseFuncp = VN_CAST(baseSubp, Constraint);
|
||||||
if (!baseFuncp || !baseFuncp->isKwdPure()) continue;
|
if (!baseFuncp || !baseFuncp->isKwdPure()) continue;
|
||||||
bool existsInDerived = foundp && !foundp->imported();
|
bool existsInDerived = foundp && !foundp->imported();
|
||||||
if (!existsInDerived && !derivedClassp->isInterfaceClass()
|
if (m_statep->forPrimary() && !existsInDerived
|
||||||
&& !derivedClassp->isVirtual()) {
|
&& !derivedClassp->isInterfaceClass() && !derivedClassp->isVirtual()) {
|
||||||
derivedClassp->v3error(
|
derivedClassp->v3error(
|
||||||
"Class " << derivedClassp->prettyNameQ() << impOrExtends
|
"Class " << derivedClassp->prettyNameQ() << impOrExtends
|
||||||
<< baseClassp->prettyNameQ()
|
<< baseClassp->prettyNameQ()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue