Do not warn about shadowing parameters in functions without implementation

This commit is contained in:
a3d4
2021-06-09 12:35:26 +02:00
committed by chriseth
parent edee67b4cc
commit 70b8b1c834
8 changed files with 44 additions and 5 deletions
+12
View File
@@ -606,6 +606,18 @@ bool Declaration::isEventOrErrorParameter() const
return dynamic_cast<EventDefinition const*>(scope()) || dynamic_cast<ErrorDefinition const*>(scope());
}
bool Declaration::isVisibleAsUnqualifiedName() const
{
if (!scope())
return true;
if (isStructMember() || isEnumValue() || isEventOrErrorParameter())
return false;
if (auto const* functionDefinition = dynamic_cast<FunctionDefinition const*>(scope()))
if (!functionDefinition->isImplemented())
return false; // parameter of a function without body
return true;
}
DeclarationAnnotation& Declaration::annotation() const
{
return initAnnotation<DeclarationAnnotation>();