I was perusing an Lua code file, and the very top of the file contains:
    1  | TradeSkillFrameReset = TradeSkillFrame_LoadUI;
    2  | 
    3  | TradeSkillFrame_LoadUI = function()
    4  |    TradeSkillFrameReset();
            ...
    112|    TradeSkillFrame_LoadUI = TradeSkillFrameReset;
            ...
    114| end;
The very first line they are doing an assignment:
TradeSkillFrameReset = TradeSkillFrame_LoadUI;
At this point in the code file they are assigning an undeclaraed identifier (TradeSkillFrame_LoadUI) to an undeclared variable (TradeSkillFrameReset). Is this allowed in Lua?
- is variable declaration implicit?
- are all undeclared identifiers assumed to be forward declarations?
The more confusing thing is that the first TradeSkillFrame_LoadUI seems to do is call itself:
TradeSkillFrame_LoadUI = function()
   TradeSkillFrameReset();
How is this not an infinite loop?
Edit: Added remaining references to TradeSkillFrameReset and TradeSkillFrame_LoadUI.
 
     
     
     
     
     
     
    