How does the compiler distinguish the method call when multiple candidates exist?

Continuing the discussion from Method call resolution behaviour: