Here's what's happening:
- Inferencing engine must choose between the static and non-static variants of the methods.
- Since the number of arguments is 2, and inferencing engine only matches based on argument number, it arbitrarily chooses the non-static variant
- Since the non-static variant is used in a static context, it is underlined. The assumption is that invoking this non-static method in a static context will cause a runtime error.
The bug here is that we are only looking at number of parameters, but since this is a named parameter list, we should be able to know that we are looking for the method variant that takes a map.