import java.util.*;

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

