make sure MembersInjector dependencies don't blow up on requireExplicitBindings.

git-svn-id: https://google-guice.googlecode.com/svn/trunk@1327 d779f126-a31b-0410-b53b-1d3aecad763e
diff --git a/core/src/com/google/inject/internal/InjectorImpl.java b/core/src/com/google/inject/internal/InjectorImpl.java
index 897e521..791d7da 100644
--- a/core/src/com/google/inject/internal/InjectorImpl.java
+++ b/core/src/com/google/inject/internal/InjectorImpl.java
@@ -212,7 +212,7 @@
       throws ErrorsException {
 
 
-    boolean jitOverride = isProvider(key) || isTypeLiteral(key);
+    boolean jitOverride = isProvider(key) || isTypeLiteral(key) || isMembersInjector(key);
     if(options.jitDisabled && jitType == JitLimitation.NO_JIT && !jitOverride) {
       throw errors.jitDisabled(key).toException();
     }
diff --git a/core/test/com/google/inject/JitBindingsTest.java b/core/test/com/google/inject/JitBindingsTest.java
index 6e48316..ccf1516 100644
--- a/core/test/com/google/inject/JitBindingsTest.java
+++ b/core/test/com/google/inject/JitBindingsTest.java
@@ -323,6 +323,25 @@
     assertEquals(of("bar"), foo.set);
   }
   
+  public void testMembersInjectorsCanBeInjected() {
+    Injector injector = new InjectorBuilder()
+    .requireExplicitBindings()
+    .addModules(new AbstractModule() {
+      @Override protected void configure() {
+      }
+      
+      @Provides String data(MembersInjector<String> mi) {
+        String data = "foo";
+        mi.injectMembers(data);
+        return data;
+      }
+    })
+    .build();
+
+    String data = injector.getInstance(String.class);
+    assertEquals("foo", data);
+  }
+  
   private void ensureWorks(Injector injector, Class<?>... classes) {
     for(int i = 0; i < classes.length; i++) {
       injector.getInstance(classes[i]);