Oh yes, you are right. Then this is not dead code, just a useless null check.
2018-07-04 19:55 GMT+07:00 Scott Palmer <swpal...@gmail.com>: > On Jul 4, 2018, at 5:42 AM, Zheka Kozlov <orionllm...@gmail.com> wrote: > > > > I noticed dead code in java.util.HashMap.merge(): > > > > public V merge(K key, V value, > > BiFunction<? super V, ? super V, ? extends V> > > remappingFunction) { > > if (value == null) > > throw new NullPointerException(); > > > > ... > > > > if (value != null) { *// Condition ' value != null' is always true* > > if (t != null) > > t.putTreeVal(this, tab, hash, key, value); > > else { > > tab[i] = newNode(hash, key, value, first); > > if (binCount >= TREEIFY_THRESHOLD - 1) > > treeifyBin(tab, hash); > > } > > ++modCount; > > ++size; > > afterNodeInsertion(true); > > } > > return value; > > } > > > > The code in the if branch will never be executed because `value` was > > previously checked at the beginning of the method. > > > > Is this a mistake? > > You mean it will ALWAYS be executed. Yes, it looks to me like the ‘if’ is > useless. > > >