> In our case, it should have been the string "display" but called display instead, and by sheer coincidence the word display in any Ruby object is a valid caller.
Wow, that sounds incredibly dangerous... how do you even test for not introducing a bug like that somewhere? I am not so familiar with Ruby, is there a linter or something that can catch these?
It sounds similar to a phenomenon I've seen in Python. You can overwrite the builtins using Python. There's very rarely a good reason to do so, but people often clobber variables like 'type', 'max', 'min' accidentally. I know at least some atom and vim plugins exist to warn you about this.
Wow, that sounds incredibly dangerous... how do you even test for not introducing a bug like that somewhere? I am not so familiar with Ruby, is there a linter or something that can catch these?