This is not possible, but you can make it error by detecting if it has self.
Simply add a variable in the first parameter of the getInfo function. If self exists, then it means it was called with the colon operator, and you can error. Otherwise, it was called with the dot operator, and you can continue.
Tables are structures that allow indexing, i.e. the dot operator when accessing data inside them. The colon is also a way of accessing indices that are functions, but the big difference is that the colon operator sends the table itself as an argument. Lua does that to make OOP easier for the user.
local Object = {}
function Object:DoSomething(arg)
print(arg)
end
return Object
Doing Object.DoSomething() will print nil, but doing Object:DoSomething() will print the Object table.
Note that doing Object.DoSomething(Object) is the same as Object:DoSomething().