- adjusted condition for ZScript global variable deprecation warning

The message is always printed for any use of deprecated global variable
If such variable is accessed inside a deprecated function from a core script lump, the message is printed only when verbosity level is set to highest

https://forum.zdoom.org/viewtopic.php?t=64830
This commit is contained in:
alexey.lysiuk 2019-05-30 10:20:49 +03:00
parent 249e658f8b
commit d9c619c800

View file

@ -6127,18 +6127,15 @@ FxExpression *FxIdentifier::Resolve(FCompileContext& ctx)
{ {
if (sym->mVersion <= ctx.Version) if (sym->mVersion <= ctx.Version)
{ {
if (!(ctx.Function->Variants[0].Flags & VARF_Deprecated) && Wads.GetLumpFile(ctx.Lump) != 0) // Allow use of deprecated symbols in deprecated functions of the internal code. This is meant to allow deprecated code to remain as it was,
{ // even if it depends on some deprecated symbol.
ScriptPosition.Message(MSG_WARNING, "Accessing deprecated global variable %s - deprecated since %d.%d.%d", sym->SymbolName.GetChars(), vsym->mVersion.major, vsym->mVersion.minor, vsym->mVersion.revision); // The main motivation here is to keep the deprecated static functions accessing the global level variable as they were.
} // Print these only if debug output is active and at the highest verbosity level.
else const bool internal = (ctx.Function->Variants[0].Flags & VARF_Deprecated) && Wads.GetLumpFile(ctx.Lump) == 0;
{
// Allow use of deprecated symbols in deprecated functions of the internal code. This is meant to allow deprecated code to remain as it was, ScriptPosition.Message(internal ? MSG_DEBUGMSG : MSG_WARNING,
// even if it depends on some deprecated symbol. "%sAccessing deprecated global variable %s - deprecated since %d.%d.%d", internal ? TEXTCOLOR_BLUE : "",
// The main motivation here is to keep the deprecated static functions accessing the global level variable as they were. sym->SymbolName.GetChars(), vsym->mVersion.major, vsym->mVersion.minor, vsym->mVersion.revision);
// Print these only if debug output is active and at the highest verbosity level.
ScriptPosition.Message(MSG_DEBUGMSG, TEXTCOLOR_BLUE "Accessing deprecated global variable %s - deprecated since %d.%d.%d", sym->SymbolName.GetChars(), vsym->mVersion.major, vsym->mVersion.minor, vsym->mVersion.revision);
}
} }
} }