code: function(type, property, fullName) {
          Ember.assert('fullName must be a proper full name', validateFullName(fullName));
  
          if (this.parent) { illegalChildOperation('typeInjection'); }
  
          var fullNameType = fullName.split(':')[0];
          if (fullNameType === type) {
            throw new Error('Cannot inject a `' + fullName + '` on other ' + type + '(s). Register the `' + fullName + '` as a different type and perform the typeInjection.');
          }
  
          addTypeInjection(this.typeInjections, type, property, fullName);
        }
docs: Used only via `injection`.
  
  Provides a specialized form of injection, specifically enabling
  all objects of one type to be injected with a reference to another
  object.
  
  For example, provided each object of type `controller` needed a `router`.
  one would do the following:
  
  ```javascript
  var container = new Container();
  
  container.register('router:main', Router);
  container.register('controller:user', UserController);
  container.register('controller:post', PostController);
  
  container.typeInjection('controller', 'router', 'router:main');
  
  var user = container.lookup('controller:user');
  var post = container.lookup('controller:post');
  
  user.router instanceof Router; //=> true
  post.router instanceof Router; //=> true
  
  both controllers share the same router
  user.router === post.router; //=> true
  ```
  
  @private
  @method typeInjection
  @param {String} type
  @param {String} property
  @param {String} fullName