core/src/com/google/inject/internal/InjectorShell.java
private static void bindInjector(InjectorImpl injector) {
    Key<Injector> key = Key.get(Injector.class);
    InjectorFactory injectorFactory = new InjectorFactory(injector);
    injector.state.putBinding(
        key,
        new ProviderInstanceBindingImpl<Injector>(
            injector,
            key,
            SourceProvider.UNKNOWN_SOURCE,
            injectorFactory,
            Scoping.UNSCOPED,
            injectorFactory,
            ImmutableSet.<InjectionPoint>of()));
  }
private static void bindInjector(InjectorImpl injector) {
    Key<Injector> key = Key.get(Injector.class);
    InjectorFactory injectorFactory = new InjectorFactory(injector);
    injector.state.putBinding(
        key,
        new ProviderInstanceBindingImpl<Injector>(
            injector,
            key,
            SourceProvider.UNKNOWN_SOURCE,
            injectorFactory,
            Scoping.UNSCOPED,
            injectorFactory,
            ImmutableSet.<InjectionPoint>of()));
  }
private static void bindInjector ( InjectorImpl injector ) { Key < Injector > key = Key . get ( Injector . class ) ; InjectorFactory injectorFactory = new InjectorFactory ( injector ) ; injector . state . putBinding ( key , new ProviderInstanceBindingImpl < Injector > ( injector , key , SourceProvider . UNKNOWN_SOURCE , injectorFactory , Scoping . UNSCOPED , injectorFactory , ImmutableSet . < InjectionPoint > of ( ) ) ) ; }
The Injector is a special case because we allow both parent and child injectors to both have a
binding for that key.
The Injector is a special case because we allow both parent and child injectors to both have a binding for that key .