Timothy Torres
Timothy Torres

Reputation: 56

Why does Corona give an error loading code that loads fine with lua?

I'm having problems with a specific line of code - building.transmitter:[operation](player, unpack({...})) that causes an error in Corona, yet this loads fine when it's run in Lua separately. I suspect it has something to do with the : being placed before the [operation] variable but I'm clueless why.

Specifically the module is written as,

local activate = {}

local function activate.transmitter(player, operation, ...) 
  building = player:getTile()   
  building.transmitter:[operation](player, unpack({...}))
end

return activate

The runtime errror that is appearing gives me

"error loading module from file, '<name>' expected near '['"

Edit - WOW! I didn't notice that when troubleshooting this in Corona I changed some of the lines of code to identify the problem. I then mistakenly tested the edited code in Lua and it ran fine. I didn't realize the code wasn't the original until siffiejoe pointed out the interpreter getting an error as well. Sorry for the mistake.

Upvotes: 1

Views: 178

Answers (1)

iBad
iBad

Reputation: 286

maybe Corona uses older version of Lua which does not support this syntax. You can try workaround instead of

building.transmitter:[operation](player, unpack({...}));

you can call

building.transmitter[operation](building.transmitter, player, unpack({...}));

Upvotes: 1

Related Questions