Think i ask this question before but still don't understand to a certain degree.

1. From raw to <?> - no unchecked conversion warning. Understood since both are reifiable type.
2. From raw to <? extends Object> - unchecked conversion warning. Understood since <? extends Object> is a non reifiable type.
3. From <?> to <? extends Object> - no unchecked conversion warning. Why? Since the former is a reifiable type and the latter is not. I see this as similiar to clause 2.