override fun getType()

in src/main/kotlin/com/pestphp/pest/types/ThisFieldTypeProvider.kt [25:39]


    override fun getType(psiElement: PsiElement): PhpType? {
        if (DumbService.isDumb(psiElement.project)) return null

        val fieldReference = psiElement as? FieldReference ?: return null

        if (!fieldReference.classReference.isThisVariableInPest { check(it) }) return null

        val fieldName = fieldReference.name ?: return null

        return (psiElement.containingFile ?: return null).getAllBeforeThisAssignments()
            .filter { (it.variable as? FieldReference)?.name == fieldName }
            .mapNotNull { it.value }
            .filterIsInstance<PhpTypedElement>()
            .firstOrNull()?.type
    }