title: Google Closure Compiler incomplete alias created for namespace
body: <p>I'm having an issue with Closure Compiler. This is my function :</p>
  
  <pre><code>Editor.Elements.Map = function(type, view, x, y) {
      var element = type[0].toUpperCase() + type.slice(1);
      if(typeof Editor.Elements[element] === 'function') {
          return new Editor.Elements[element](view).create(x, y);
      }
      return null;
  }
  </code></pre>
  
  <p>Which would call a class like this :</p>
  
  <pre><code>/**
   *  @constructor
   *  @extends {Editor.Elements.Element}
   *  @param view (object) {Editor.View}
   */
  Editor.Elements.Circle = function(view) {
  
      Editor.Elements.Element.apply(this, arguments);
  
      if (!(view instanceof Editor.View)) {
          throw new Error('An Instance of Editor.View is required.');
      }
  
      var me = this, _me = {};
  
      ...
  }
  </code></pre>
  
  <p>I'm getting the following warning :</p>
  
  <pre><code>JSC_UNSAFE_NAMESPACE: incomplete alias created for namespace Editor.Elements
  </code></pre>
  
  <p>Which refers to these two lines :</p>
  
  <pre><code>if(typeof Editor.Elements[element] === 'function') { /* ... */ } // 1.
  return new Editor.Elements[element](view).create(x, y);          // 2.
  </code></pre>
  
  <p>Even if I was to remove the first warning I can't get ride of the second. Is there any way I can work around this possibly with annotations ?</p>