import java.util.*; class Bug2 { // this causes the bug -> type is inferred by parameter not left side assignment static void bug(Collection collection) { Collection c1 = Collections.unmodifiableCollection(collection); // workaround that compiles: Collection c2 = Collections.unmodifiableCollection(collection); } }