Skip to content

K2 factory generation: support generic type parameter bounds #1122

Open
@RBusarow

Description

@RBusarow

Given a type parameter of T: List<String>, we should see:

public final class InjectClass_Factory<T : kotlin.collections.List<kotlin.String>> public constructor(t: javax.inject.Provider<@kotlin.jvm.JvmSuppressWildcards T>) : dagger.internal.Factory<com.squareup.test.InjectClass<T>> {
    public companion object {
        @kotlin.jvm.JvmStatic public final fun <T : kotlin.collections.List<kotlin.String>> create(t: javax.inject.Provider<@kotlin.jvm.JvmSuppressWildcards T>): com.squareup.test.InjectClass_Factory<T> { /* compiled code */ }

        @kotlin.jvm.JvmStatic public final fun <T : kotlin.collections.List<kotlin.String>> newInstance(t: @kotlin.jvm.JvmSuppressWildcards T): com.squareup.test.InjectClass<T> { /* compiled code */ }
    }

    private final val t: javax.inject.Provider<@kotlin.jvm.JvmSuppressWildcards T> /* compiled code */

    public open fun get(): com.squareup.test.InjectClass<T> { /* compiled code */ }
}

but instead, in FIR we're creating:

public final class InjectClass_Factory public constructor(t: javax.inject.Provider<[Error type: Unknown type parameter 0. Please try recompiling module containing "[container not found]"]>) : dagger.internal.Factory<com.squareup.test.InjectClass> {
    public companion object {
        @kotlin.jvm.JvmStatic public final fun create(t: javax.inject.Provider<[Error type: Unknown type parameter 0. Please try recompiling module containing "[container not found]"]>): com.squareup.test.InjectClass_Factory { /* compiled code */ }

        @kotlin.jvm.JvmStatic public final fun newInstance(t: [Error type: Unknown type parameter 0. Please try recompiling module containing "[container not found]"]): com.squareup.test.InjectClass { /* compiled code */ }
    }
    public final val t: javax.inject.Provider<[Error type: Unknown type parameter 0. Please try recompiling module containing "[container not found]"]> /* compiled code */

    public final fun get(): com.squareup.test.InjectClass<[Error type: Unknown type parameter 0. Please try recompiling module containing "[container not found]"]> { /* compiled code */ }
}

Metadata

Metadata

Assignees

Labels

K2bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions