Program: 60353
Project: 60353
Buggy source:
public void testMapBinderWithMultipleAnnotationValueSets(){
  Module module=new AbstractModule(){
    @Override protected void configure(){
      MapBinder<String,String> abcMapBinder=MapBinder.newMapBinder(binder(),String.class,String.class,named("String_Node_Str"));
      abcMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      abcMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      abcMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      MapBinder<String,String> deMapBinder=MapBinder.newMapBinder(binder(),String.class,String.class,named("String_Node_Str"));
      deMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      deMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
    }
  }
;
  Injector injector=Guice.createInjector(module);
  Key<Map<String,String>> abcKey=Key.get(mapOfString,named("String_Node_Str"));
  Map<String,String> abc=injector.getInstance(abcKey);
  Key<Map<String,String>> deKey=Key.get(mapOfString,named("String_Node_Str"));
  Map<String,String> de=injector.getInstance(deKey);
  assertEquals(mapOf("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"),abc);
  assertEquals(mapOf("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"),de);
  assertMapVisitor(abcKey,stringType,stringType,setOf(module),BOTH,false,1,instance("String_Node_Str","String_Node_Str"),instance("String_Node_Str","String_Node_Str"),instance("String_Node_Str","String_Node_Str"));
  assertMapVisitor(deKey,stringType,stringType,setOf(module),BOTH,false,1,instance("String_Node_Str","String_Node_Str"),instance("String_Node_Str","String_Node_Str"));
}

Fixed version (ground truth):
public void testMapBinderWithMultipleAnnotationValueSets(){
  Module module=new AbstractModule(){
    @Override protected void configure(){
      MapBinder<String,String> abcMapBinder=MapBinder.newMapBinder(binder(),String.class,String.class,named("String_Node_Str"));
      abcMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      abcMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      abcMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      MapBinder<String,String> deMapBinder=MapBinder.newMapBinder(binder(),String.class,String.class,named("String_Node_Str"));
      deMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      deMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
    }
  }
;
  Injector injector=Guice.createInjector(module);
  Key<Map<String,String>> abcKey=Key.get(mapOfString,named("String_Node_Str"));
  Map<String,String> abc=injector.getInstance(abcKey);
  Key<Map<String,String>> deKey=Key.get(mapOfString,named("String_Node_Str"));
  Map<String,String> de=injector.getInstance(deKey);
  assertEquals(mapOf("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"),abc);
  assertEquals(mapOf("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"),de);
  assertMapVisitor(abcKey,stringType,stringType,setOf(module),BOTH,false,1,instance("String_Node_Str","String_Node_Str"),instance("String_Node_Str","String_Node_Str"),instance("String_Node_Str","String_Node_Str"));
  assertMapVisitor(deKey,stringType,stringType,setOf(module),BOTH,false,1,instance("String_Node_Str","String_Node_Str"),instance("String_Node_Str","String_Node_Str"));
  injector.getInstance(Key.get(mapOfStringProvider,named("String_Node_Str")));
  injector.getInstance(Key.get(mapOfStringJavaxProvider,named("String_Node_Str")));
  injector.getInstance(Key.get(mapOfStringProvider,named("String_Node_Str")));
  injector.getInstance(Key.get(mapOfStringJavaxProvider,named("String_Node_Str")));
}