Application programming interfaces (APIs) can get whacky,
but compiled languages help users to get things semantically correct.
And dynamic languages?
Their ergonomic “dynamic sauce” ladled over a codebase can sometimes be less than helpful.
This post is about how Groovy’s @CompileStatic
can help to demystify what is happening at the call site of a method that has the same name and descriptor as another.