Program: 60454
Project: 60454
Buggy source:
public void testIsSingletonNegative(){
  final Key<String> a=Key.get(String.class,named("String_Node_Str"));
  final Key<String> b=Key.get(String.class,named("String_Node_Str"));
  final Key<String> c=Key.get(String.class,named("String_Node_Str"));
  final Key<String> d=Key.get(String.class,named("String_Node_Str"));
  final Key<String> e=Key.get(String.class,named("String_Node_Str"));
  Module singletonBindings=new AbstractModule(){
    protected void configure(){
      bind(a).to(b);
      bind(b).to(c);
      bind(c).toProvider(Providers.of("String_Node_Str")).in(Scopes.NO_SCOPE);
      bind(d).toProvider(Providers.of("String_Node_Str")).in(CustomScoped.class);
      bindScope(CustomScoped.class,Scopes.NO_SCOPE);
    }
    @Provides @Named("String_Node_Str") @CustomScoped String provideE(){
      return "String_Node_Str";
    }
  }
;
  @SuppressWarnings("String_Node_Str") List<Element> moduleBindings=Elements.getElements(singletonBindings);
  ImmutableMap<Key<?>,Binding<?>> map=indexBindings(moduleBindings);
  assertFalse(Scopes.isSingleton(map.get(a)));
  assertFalse(Scopes.isSingleton(map.get(b)));
  assertFalse(Scopes.isSingleton(map.get(c)));
  assertFalse(Scopes.isSingleton(map.get(d)));
  assertFalse(Scopes.isSingleton(map.get(e)));
  Injector injector=Guice.createInjector(singletonBindings);
  assertFalse(Scopes.isSingleton(injector.getBinding(a)));
  assertFalse(Scopes.isSingleton(injector.getBinding(b)));
  assertFalse(Scopes.isSingleton(injector.getBinding(c)));
  assertFalse(Scopes.isSingleton(injector.getBinding(d)));
  assertFalse(Scopes.isSingleton(injector.getBinding(e)));
}

Fixed version (ground truth):
public void testIsSingletonNegative(){
  final Key<String> a=Key.get(String.class,named("String_Node_Str"));
  final Key<String> b=Key.get(String.class,named("String_Node_Str"));
  final Key<String> c=Key.get(String.class,named("String_Node_Str"));
  final Key<String> d=Key.get(String.class,named("String_Node_Str"));
  final Key<String> e=Key.get(String.class,named("String_Node_Str"));
  final Key<String> f=Key.get(String.class,named("String_Node_Str"));
  Module singletonBindings=new AbstractModule(){
    protected void configure(){
      bind(a).to(b);
      bind(b).to(c);
      bind(c).toProvider(Providers.of("String_Node_Str")).in(Scopes.NO_SCOPE);
      bind(d).toProvider(Providers.of("String_Node_Str")).in(CustomScoped.class);
      bindScope(CustomScoped.class,Scopes.NO_SCOPE);
      install(new PrivateModule(){
        @Override protected void configure(){
          bind(f).toProvider(Providers.of("String_Node_Str")).in(CustomScoped.class);
          expose(f);
        }
      }
);
    }
    @Provides @Named("String_Node_Str") @CustomScoped String provideE(){
      return "String_Node_Str";
    }
  }
;
  @SuppressWarnings("String_Node_Str") List<Element> moduleBindings=Elements.getElements(singletonBindings);
  ImmutableMap<Key<?>,Binding<?>> map=indexBindings(moduleBindings);
  assertFalse(Scopes.isSingleton(map.get(a)));
  assertFalse(Scopes.isSingleton(map.get(b)));
  assertFalse(Scopes.isSingleton(map.get(c)));
  assertFalse(Scopes.isSingleton(map.get(d)));
  assertFalse(Scopes.isSingleton(map.get(e)));
  assertFalse(Scopes.isSingleton(map.get(f)));
  Injector injector=Guice.createInjector(singletonBindings);
  assertFalse(Scopes.isSingleton(injector.getBinding(a)));
  assertFalse(Scopes.isSingleton(injector.getBinding(b)));
  assertFalse(Scopes.isSingleton(injector.getBinding(c)));
  assertFalse(Scopes.isSingleton(injector.getBinding(d)));
  assertFalse(Scopes.isSingleton(injector.getBinding(e)));
  assertFalse(Scopes.isSingleton(injector.getBinding(f)));
}