public/lib/emberjs/ember.js
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);
      }
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);
      }
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 ) ; }
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
Used only via injection .