Stanislav Gromov

Results 37 issues of Stanislav Gromov

**What this PR does / why we need it**: This PR does the following: * Introduces warning 252 for operators `++`, `--`, and compound assignment operators (`+=`, `-=`, `*=` etc,)...

**What this PR does / why we need it**: This PR implements switch expressions, as proposed in #496. Examples of use: ```Pawn GetDiscount(numitems) { assert(numitems > 0); return switch (numitems;...

state: stale

**What this PR does / why we need it**: Removes keywords `*begin`, `*end` and `*then`, as well as alternative syntaxes for `if`, `switch`, `for`, `while` and `do-while` statements, as explained...

**What this PR does / why we need it**: Fixes the compiler crash from an incomplete `do-while` statement without the `while (...);` part (see #678). Function `test()` (file `sc1.c`) was...

### Issue description: (The bug described in this issue belongs to the interpreter from this repository (`pawnruns`), not SA-MP; also, if I understand it correctly, open.mp is also going to...

state: stale

### Issue description: `entry()` is a special function, it's called automatically on each state change, but for some reason it's also allowed to be called manually. Perhaps we should treat...

state: stale

### Issue description: Specifying an incomplete `do-while` statement without the `while (...);` part makes the compiler misinterpret further code, which may cause a crash due to calling `fgets()` with an...

state: stale

**What this PR does / why we need it**: This PR implements `warning 210: possible use of symbol before initialization: "(identifier)"`. Although [the text for this warning is present](https://github.com/pawn-lang/compiler/blob/c565a5d1dff0ad4950162fc3dd98a0e00ae236fe/source/compiler/sc5.c#L169) in...

state: stale

**What this PR does / why we need it**: This PR relocates fatal errors to a range of 300+ (as discussed in #615), thus freeing the range of 100-199 for...

state: stale

### Issue description: Although the compiler became much better at detecting unused assignments to variables (see #480, #533), it still can't detect unused compound assignments (`+=`, `*=` etc.) ### Minimal...

state: stale