Parse local variables sharing a name with a function as variables

pull/3152/head
Evil Eye 3 years ago
parent cd4d76f8c5
commit 5037def3b3

@ -50,6 +50,7 @@
Bug #6282: Laura craft doesn't follow the player character
Bug #6283: Avis Dorsey follows you after her death
Bug #6289: Keyword search in dialogues expected the text to be all ASCII characters
Bug #6291: Can't pickup the dead mage's journal from the mysterious hunter mod
Bug #6302: Teleporting disabled actor breaks its disabled state
Bug #6307: Pathfinding in Infidelities quest from Tribunal addon is broken
Feature #890: OpenMW-CS: Column filtering

@ -353,17 +353,23 @@ namespace Compiler
{
if (const Extensions *extensions = getContext().getExtensions())
{
char returnType; // ignored
std::string argumentType; // ignored
bool hasExplicit = false; // ignored
if (extensions->isInstruction (keyword, argumentType, hasExplicit))
bool isInstruction = extensions->isInstruction (keyword, argumentType, hasExplicit);
if(isInstruction || (mExplicit.empty() && extensions->isFunction(keyword, returnType, argumentType, hasExplicit)))
{
// pretend this is not a keyword
std::string name = loc.mLiteral;
if (name.size()>=2 && name[0]=='"' && name[name.size()-1]=='"')
name = name.substr (1, name.size()-2);
if(isInstruction || mLocals.getType(Misc::StringUtils::lowerCase(name)) != ' ')
{
// pretend this is not a keyword
return parseName (name, loc, scanner);
}
}
}
if (keyword==Scanner::K_end || keyword==Scanner::K_begin ||
keyword==Scanner::K_short || keyword==Scanner::K_long ||

Loading…
Cancel
Save