Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,8 @@ boolean matchesNoBoxing(Type requiredType, Type beanType) {
}
return true;
}
} else if (WILDCARD_TYPE.equals(requiredType.kind())) {
return parametersMatch(requiredType, beanType);
}
return false;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ public class RemoveUnusedBeansTest {
@RegisterExtension
public ArcTestContainer container = ArcTestContainer.builder()
.beanClasses(HasObserver.class, Foo.class, FooAlternative.class, HasName.class, UnusedProducers.class,
InjectedViaInstance.class, InjectedViaProvider.class, Excluded.class, UsedProducers.class,
InjectedViaInstance.class, InjectedViaInstanceWithWildcard.class, InjectedViaInstanceWithWildcard2.class,
InjectedViaProvider.class, Excluded.class,
UsedProducers.class,
UnusedProducerButInjected.class, UsedViaInstanceWithUnusedProducer.class, UsesBeanViaInstance.class)
.removeUnusedBeans(true)
.addRemovalExclusion(b -> b.getBeanClass().toString().equals(Excluded.class.getName()))
Expand All @@ -40,6 +42,8 @@ public void testRemoval() {
assertTrue(container.instance(HasObserver.class).isAvailable());
assertTrue(container.instance(HasName.class).isAvailable());
assertTrue(container.instance(InjectedViaInstance.class).isAvailable());
assertTrue(container.instance(InjectedViaInstanceWithWildcard.class).isAvailable());
assertTrue(container.instance(InjectedViaInstanceWithWildcard2.class).isAvailable());
assertTrue(container.instance(InjectedViaProvider.class).isAvailable());
assertTrue(container.instance(String.class).isAvailable());
assertTrue(container.instance(UsedProducers.class).isAvailable());
Expand Down Expand Up @@ -96,6 +100,12 @@ static class FooAlternative extends Foo {
@Inject
Instance<InjectedViaInstance> instance;

@Inject
Instance<? extends InjectedViaInstanceWithWildcard> instanceWildcard;

@Inject
Instance<Comparable<? extends Foo>> instanceWildcard2;

@Inject
String foo;

Expand All @@ -106,6 +116,21 @@ static class InjectedViaInstance {

}

@Singleton
static class InjectedViaInstanceWithWildcard {

}

@Singleton
static class InjectedViaInstanceWithWildcard2 implements Comparable<FooAlternative> {

@Override
public int compareTo(FooAlternative o) {
return 0;
}

}

@Singleton
static class InjectedViaProvider {

Expand Down