public SourceSnippet getCreationStatements(
      NameGenerator nameGenerator, List<InjectorMethod> methodsOutput)
      throws NoSourceNameException {
    String providerTypeName = ReflectUtil.getSourceName(providerType);
    String targetKeyName = ReflectUtil.getSourceName(targetKey.getTypeLiteral());

    return new SourceSnippetBuilder()
        .append(providerTypeName)
        .append(" result = new ")
        .append(providerTypeName)
        .append("() { \n")
        .append("  public ")
        .append(targetKeyName)
        .append(" get() { \n")
        .append("    return ")
        .append(SourceSnippets.callGetter(targetKey))
        .append(";\n")
        .append("  }\n")
        .append("};")
        .build();
  }
 ImplicitProviderBinding(Key<?> providerKey) {
   this(providerKey, ReflectUtil.getProvidedKey(providerKey));
 }