@@ -23,10 +23,12 @@ import com.intellij.psi.JavaPsiFacade
2323import com.intellij.psi.PsiAnnotation
2424import com.intellij.psi.PsiAnnotationOwner
2525import com.intellij.psi.PsiClass
26+ import com.intellij.psi.PsiEllipsisType
2627import com.intellij.psi.PsiField
2728import com.intellij.psi.PsiMethod
2829import com.intellij.psi.PsiModifier.STATIC
2930import com.intellij.psi.PsiNameHelper
31+ import com.intellij.psi.PsiParameter
3032import com.intellij.psi.PsiQualifiedReference
3133import com.intellij.psi.PsiType
3234import org.jetbrains.org.objectweb.asm.Opcodes
@@ -136,7 +138,7 @@ enum class InjectorType(private val annotation: String) {
136138 method.returnType!!
137139 }
138140
139- parameterList.parameters.mapTo(parameters, ::Parameter )
141+ parameterList.parameters.mapTo(parameters, ::sanitizedParameter )
140142 return Pair (parameters, returnType)
141143 }
142144
@@ -202,10 +204,20 @@ enum class InjectorType(private val annotation: String) {
202204 }
203205
204206 // Add method parameters to list
205- parameters.mapTo(list, ::Parameter )
207+ parameters.mapTo(list, ::sanitizedParameter )
206208 return list
207209 }
208210
211+ private fun sanitizedParameter (parameter : PsiParameter ): Parameter {
212+ // Parameters should not use ellipsis because others like CallbackInfo may follow
213+ val type = parameter.type
214+ return if (type is PsiEllipsisType ) {
215+ Parameter (parameter.name, type.toArrayType())
216+ } else {
217+ Parameter (parameter)
218+ }
219+ }
220+
209221 fun findAnnotations (element : PsiAnnotationOwner ): List <Pair <InjectorType , PsiAnnotation >> {
210222 return element.annotations.mapNotNull {
211223 val name = it.qualifiedName ? : return @mapNotNull null
0 commit comments