Skip to content

Commit 7b94164

Browse files
committed
Don't warn for shadowed methods in constructor
1 parent 66aca80 commit 7b94164

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

lib/checkother.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4173,9 +4173,13 @@ void CheckOther::checkShadowVariables()
41734173
(functionScope->function->isStatic() || functionScope->function->isFriend()) &&
41744174
shadowed->variable() && !shadowed->variable()->isLocal())
41754175
return;
4176-
if (var.scope() && var.scope()->function && var.scope()->function->isConstructor()
4177-
&& shadowed->variable() && shadowed->variable()->isMember())
4178-
return;
4176+
if (var.scope() && var.scope()->function && var.scope()->function->isConstructor()) {
4177+
if (shadowed->variable() && shadowed->variable()->isMember())
4178+
return;
4179+
if (shadowed->function() && shadowed->function()->nestedIn &&
4180+
shadowed->function()->nestedIn->isClassOrStruct())
4181+
return;
4182+
}
41794183
shadowError(var.nameToken(), var.isArgument() ? "argument" : "local variable",
41804184
shadowed, (shadowed->varId() != 0) ?
41814185
(shadowed->variable()->isMember() ? "member" : "variable") : "function");

0 commit comments

Comments
 (0)