title: Does groovy ignore the type of null values in method signatures?
body: <p>To illustrate the following example I created a litte spock test (but it's about groovy itself, not spock):</p>
  
  <pre><code>void "some spock test"() {
      given: String value = null
      expect: someMethod(value) == 3
  }
  
  int someMethod(String s) {
      return 3
  }
  int someMethod(Map s) {
      return 5
  }
  </code></pre>
  
  <p>There are two methods who's signatures only differ by the type of the given parameter. I thought that when I give it a null value that is explicitly typed as a string, the string-method will be called.
  But that doesn't happen; the test fails, because the map-method is called! Why?</p>
  
  <p>I guess groovy ignores the type and treats all nulls the same. There seems to be some kind of priority of types: When I use Object instead of Map as the parameter type of the wrong-method, its all the same, but when I for instance use Integer, the test succeeds.
  But than again: If groovy really ignores the type of nulls, why can the following fix the original test:</p>
  
  <pre><code>expect: someMethod((String) value) == 3
  </code></pre>