If multiple children have the same key, for example ([jsfiddle](https://jsfiddle.net/olegs/p09cweky/1/)):

``` javascript
var Hello = React.createClass({
    render: function() {
        return (<ul>
        <li key={"1"}>what</li>
        <li key={"1"}>what</li>
        </ul>
        )
    }
});
```

React prints the following warning to the console:

```
Warning: flattenChildren(...): Encountered two children with the same key, `.$1`. Child keys must be unique; when two children share a key, only the first child will be used.
```

The key referenced in the warning prepends an internal-looking '.$' to the key specified by the user. This is a bit misleading - ideally, it would mention the exact key value set by the user.

children,
  nameSoFar,
  callback,
  traverseContext
) {
  var type = typeof children;
  if (type === 'undefined' || type === 'boolean') {
    
    children = null;
  }
  if (children === null ||
      type === 'string' ||
      type === 'number' ||
      ReactElement.isValidElement(children)) {
    callback(
      traverseContext,
      children,
      
      
      nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar