alliedmodders/amxmodx — pull request #164 by Arkshine (2014-12-10 00:05:13+00:00)
Title: FIx regression with member tag of enum not being checked on assigment

This fixes regression introduced in AMXX 1.60: https://github.com/alliedmodders/amxmodx/commit/a105bc740282c568109a0280bb51a327718792d2

Original fix removes tag mismatch warning in such situation:
```PAWN
enum GABEGG
{
GABEN_CONST_1,
GABEN_CONST_2,
};

new Float:MyArray_2[GABEGG];

MyArray_2[GABEN_CONST_1] = 42.0; // no more warning
```

But introduced a regression when tagged members of enum is used.
Tag check is processed with `MyArray` instead of member tag.
```PAWN
enum GABEN
{
MyTag:m_Gaben_1,
Float:m_Gaben_2,
Regex:m_Gaben_3,
bool:m_Gaben_4,
m_Gaben_5
};

new MyArray[GABEN];
```
With original fix, member tag is ignored and coder has to rely on `_:` to untag before:
```PAWN
MyArray[m_Gaben_1] = MyTag:42; // warning
MyArray[m_Gaben_2] = _:42.0;
MyArray[m_Gaben_2] = 42.0; // warning
MyArray[m_Gaben_2] = 42; // no warning, it should have one
MyArray[m_Gaben_3] = _:regex_compile("Something");
MyArray[m_Gaben_3] = regex_compile("Something"); // warning
MyArray[m_Gaben_3] = Regex:42; // warning
MyArray[m_Gaben_4] = true;
MyArray[m_Gaben_5] = 42;
```
With new fix, trick with `_:` is kept, while member tag is now checked:
```PAWN
MyArray[m_Gaben_1] = MyTag:42;
MyArray[m_Gaben_2] = _:42.0; // no warning for compatibility
MyArray[m_Gaben_2] = 42.0;
MyArray[m_Gaben_2] = 42; // warning, expects a Float
MyArray[m_Gaben_3] = _:regex_compile("Something"); // no warning for compatibility
MyArray[m_Gaben_3] = regex_compile("Something");
MyArray[m_Gaben_3] = Regex:42;
MyArray[m_Gaben_4] = true;
MyArray[m_Gaben_5] = 42;

MyArray_2[GABEN_CONST_1] = 42.0; // still no warning
```

I hope I did not forget something and that it looks enough sane.
Tell me your thoughts David.