Consider this example:
The call uhuh(b) fails with error:
However, since m is a Map<String, String>, b type should be inferred as String.
If an error is in this code, I think it should be signalled on the def b = m[c] assignment (or even def a = m.get(c)), because c declared type is Object, and not on the subsequent call involving b.
Perhaps here c is inferred as String thanks to flow typing, but then I still believe uhuh(b) should succeed, just like uhuh(a) does.
Originally submitted for Groovy Eclipse Plugin at: https://github.com/groovy/groovy-eclipse/issues/948