motif icon indicating copy to clipboard operation
motif copied to clipboard

ScopeFactory with single unused dependency ignores the given creatable instance

Open yayaa opened this issue 6 years ago • 1 comments

Generated code seems to ignore given instance for the dependency source while using ScopeFactory with a single unused dependency and tries to create the instance directly.

Library version: 0.3.3-SNAPSHOT

Repro steps or stacktrace:

Scope

@Scope
public interface TestScope extends Creatable<TestScope.Dependencies> {

    interface Dependencies {
        String blah();
    }
}

Creating instance of scope

TestScope.Dependencies dependencySource = 
    new TestScope.Dependencies() {
        @Override
        public String blah() {
            return "something";
         }
   };
ScopeFactory.create(TestScope.class, dependencySource);

Generated code

@ScopeImpl(
    children = {},
    scope = TestScope.class,
    dependencies = TestScope.Dependencies.class
)
public class TestScopeImpl implements TestScope {
  private final TestScope.Dependencies dependencies;

  public TestScopeImpl(TestScope.Dependencies dependencies) {
    this.dependencies = dependencies;
  }

  public TestScopeImpl() {
    this(new TestScope.Dependencies() {});
  }

  TestScope testScope() {
    return this;
  }
}

Notice this(new TestScope.Dependencies() {}); in constructor.

yayaa avatar Apr 02 '20 17:04 yayaa

Hi! I was wondering if there's any updates on this issue?

anawara avatar Sep 30 '20 21:09 anawara