seaofvoices / darklua

A command line tool that transforms Lua code
https://darklua.com/
MIT License
71 stars 9 forks source link

`remove_unused_variable` removes unrelated code in some circumstances #187

Closed sircfenner closed 3 months ago

sircfenner commented 4 months ago

Haven't figured out the exact pattern of this but created minimal repros of a couple of problem cases.

Current behavior, when running darklua process with remove_unused_variable as the only rule:

Case 1

local x
local y
sideEffects()

generates:

<empty file>

The call to sideEffects() should be preserved.

Case 2

sideEffects()
local x
sideEffects()

generates:

<empty lines>
sideEffects()

The additional call to sideEffects() should be preserved.

Tested on darklua version 0.13.0.

jeparlefrancais commented 4 months ago

Thank you for the report, I'll add these test cases too. I really really messed up that rule apparently 😅

Related to #182