@@ -35,6 +35,7 @@ import dev.zacsweers.metro.BindingContainer
35
35
import dev.zacsweers.metro.Binds
36
36
import dev.zacsweers.metro.ContributesTo
37
37
import dev.zacsweers.metro.IntoMap
38
+ import dev.zacsweers.metro.Origin
38
39
import io.element.android.annotations.ContributesNode
39
40
import org.jetbrains.kotlin.name.FqName
40
41
@@ -71,12 +72,14 @@ class ContributesNodeProcessor(
71
72
val scope = annotation.arguments.find { it.name?.asString() == " scope" }!! .value as KSType
72
73
val modulePackage = ksClass.packageName.asString()
73
74
val moduleClassName = " ${ksClass.simpleName.asString()} _Module"
75
+ val nodeClassName = ClassName .bestGuess(ksClass.qualifiedName!! .asString())
74
76
val content = FileSpec .builder(
75
77
packageName = modulePackage,
76
78
fileName = moduleClassName,
77
79
)
78
80
.addType(
79
81
TypeSpec .interfaceBuilder(moduleClassName)
82
+ .addAnnotation(AnnotationSpec .builder(Origin ::class ).addMember(" %T::class" , nodeClassName).build())
80
83
.addAnnotation(BindingContainer ::class )
81
84
.addAnnotation(AnnotationSpec .builder(ContributesTo ::class ).addMember(" %T::class" , scope.toTypeName()).build())
82
85
.addFunction(
@@ -138,6 +141,7 @@ class ContributesNodeProcessor(
138
141
.addType(
139
142
TypeSpec .interfaceBuilder(assistedFactoryClassName)
140
143
.addSuperinterface(ClassName .bestGuess(assistedNodeFactoryFqName.asString()).parameterizedBy(nodeClassName))
144
+ .addAnnotation(AnnotationSpec .builder(Origin ::class ).addMember(" %T::class" , nodeClassName).build())
141
145
.addAnnotation(AssistedFactory ::class )
142
146
.addFunction(
143
147
FunSpec .builder(" create" )
0 commit comments