Program: 60451
Project: 60451
Buggy source:
public void testIsSingletonPositive(){
  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"));
  final Key<String> g=Key.get(String.class,named("String_Node_Str"));
  final Key<Object> h=Key.get(Object.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.SINGLETON);
      bind(d).toInstance("String_Node_Str");
      bind(e).toProvider(Providers.of("String_Node_Str")).asEagerSingleton();
      bind(f).toProvider(Providers.of("String_Node_Str")).in(Singleton.class);
      bind(h).to(AnnotatedSingleton.class);
    }
    @Provides @Named("String_Node_Str") @Singleton String provideG(){
      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)));
  assertTrue(Scopes.isSingleton(map.get(c)));
  assertTrue(Scopes.isSingleton(map.get(d)));
  assertTrue(Scopes.isSingleton(map.get(e)));
  assertTrue(Scopes.isSingleton(map.get(f)));
  assertTrue(Scopes.isSingleton(map.get(g)));
  assertFalse(Scopes.isSingleton(map.get(h)));
  Injector injector=Guice.createInjector(singletonBindings);
  assertTrue(Scopes.isSingleton(injector.getBinding(a)));
  assertTrue(Scopes.isSingleton(injector.getBinding(b)));
  assertTrue(Scopes.isSingleton(injector.getBinding(c)));
  assertTrue(Scopes.isSingleton(injector.getBinding(d)));
  assertTrue(Scopes.isSingleton(injector.getBinding(e)));
  assertTrue(Scopes.isSingleton(injector.getBinding(f)));
  assertTrue(Scopes.isSingleton(injector.getBinding(g)));
  assertTrue(Scopes.isSingleton(injector.getBinding(h)));
}

Fixed version (ground truth):
public void testIsSingletonPositive(){
  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"));
  final Key<String> g=Key.get(String.class,named("String_Node_Str"));
  final Key<Object> h=Key.get(Object.class,named("String_Node_Str"));
  final Key<String> i=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.SINGLETON);
      bind(d).toInstance("String_Node_Str");
      bind(e).toProvider(Providers.of("String_Node_Str")).asEagerSingleton();
      bind(f).toProvider(Providers.of("String_Node_Str")).in(Singleton.class);
      bind(h).to(AnnotatedSingleton.class);
      install(new PrivateModule(){
        @Override protected void configure(){
          bind(i).toProvider(Providers.of("String_Node_Str")).in(Singleton.class);
          expose(i);
        }
      }
);
    }
    @Provides @Named("String_Node_Str") @Singleton String provideG(){
      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)));
  assertTrue(Scopes.isSingleton(map.get(c)));
  assertTrue(Scopes.isSingleton(map.get(d)));
  assertTrue(Scopes.isSingleton(map.get(e)));
  assertTrue(Scopes.isSingleton(map.get(f)));
  assertTrue(Scopes.isSingleton(map.get(g)));
  assertFalse(Scopes.isSingleton(map.get(h)));
  assertTrue(Scopes.isSingleton(map.get(i)));
  Injector injector=Guice.createInjector(singletonBindings);
  assertTrue(Scopes.isSingleton(injector.getBinding(a)));
  assertTrue(Scopes.isSingleton(injector.getBinding(b)));
  assertTrue(Scopes.isSingleton(injector.getBinding(c)));
  assertTrue(Scopes.isSingleton(injector.getBinding(d)));
  assertTrue(Scopes.isSingleton(injector.getBinding(e)));
  assertTrue(Scopes.isSingleton(injector.getBinding(f)));
  assertTrue(Scopes.isSingleton(injector.getBinding(g)));
  assertTrue(Scopes.isSingleton(injector.getBinding(h)));
  assertTrue(Scopes.isSingleton(injector.getBinding(i)));
}