Fix hidden base constructor supplemental message (#21069)

Fixes #21068.
Also say base class *constructor* in supplemental message.
This commit is contained in:
Nick Treleaven 2025-03-23 21:47:29 +00:00 committed by GitHub
parent c4d45a1a49
commit e896b5c98d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 38 additions and 6 deletions

View file

@ -1835,10 +1835,15 @@ FuncDeclaration resolveFuncCall(Loc loc, Scope* sc, Dsymbol s,
functionResolve(mErr, baseFunction, loc, sc, tiargs, baseClass.type, argumentList);
if (mErr.last > MATCH.nomatch && mErr.lastf)
{
errorSupplemental(loc, "%s `%s` hides base class function `%s`",
fd.kind, fd.toPrettyChars(), mErr.lastf.toPrettyChars());
errorSupplemental(loc, "add `alias %s = %s` to `%s`'s body to merge the overload sets",
fd.toChars(), mErr.lastf.toPrettyChars(), tthis.toChars());
errorSupplemental(loc, "Note: %s `%s` hides base class %s `%s`",
fd.kind, fd.toPrettyChars(),
mErr.lastf.kind, mErr.lastf.toPrettyChars());
if (!fd.isCtorDeclaration)
{
errorSupplemental(loc, "Add `alias %s = %s;` to `%s`'s body to merge the overload sets",
fd.toChars(), mErr.lastf.toPrettyChars(), tthis.toChars());
}
return null;
}
}