Proporcionar una instancia genérica en Kotlin & Guice

Tengo un Module Guice que proporciona una List<String> usando un método @Provides -annotated.

 class TestModule() : Module { override fun configure(binder: Binder) {} @Provides fun getStrings(): List<String> = listOf("foo", "bar") } class Test { @Test fun `provider can not deliver`() { val injector = Guice.createInjector(TestModule()) injector.getInstance(object : Key<List<String>>() {}) } } 

La testing, sin embargo, falla con:

 1) No implementation for java.util.List<? extends java.lang.String> was bound. while locating java.util.List<? extends java.lang.String> 

Ahora, esto parece ser lo mismo que esta pregunta, pero no tengo idea de dónde agregar la anotación @JvmSuppressWildcards ; agregarlo al método getStrings() no cambia nada, al igual que agregarlo al object en la llamada getInstance() . ¿Cómo hago que Guice haga lo que quiero?

Después de muchas testings y errores, llegué a esta solución:

 @Test fun `provider can not deliver`() { val injector = Guice.createInjector(TestModule()) injector.getInstance(object : Key<List<@JvmSuppressWildcards String>>() {}) } 

Es el último lugar en el que hubiera pensado que la anotación es realmente válida, pero de repente la testing fue verde.