Skip to content

Commit b51b385

Browse files
committed
Add validation for null top parent class in SqlInspectionVisitor
1 parent 1d664a3 commit b51b385

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/main/kotlin/org/domaframework/doma/intellij/inspection/sql/visitor/SqlInspectionVisitor.kt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,13 @@ import org.domaframework.doma.intellij.common.psi.PsiParentClass
3030
import org.domaframework.doma.intellij.common.psi.PsiStaticElement
3131
import org.domaframework.doma.intellij.common.sql.cleanString
3232
import org.domaframework.doma.intellij.common.sql.validator.result.ValidationDaoParamResult
33+
import org.domaframework.doma.intellij.common.sql.validator.result.ValidationPropertyResult
3334
import org.domaframework.doma.intellij.common.util.ForDirectiveUtil
3435
import org.domaframework.doma.intellij.extension.expr.accessElements
3536
import org.domaframework.doma.intellij.extension.psi.findParameter
3637
import org.domaframework.doma.intellij.extension.psi.getForItem
3738
import org.domaframework.doma.intellij.extension.psi.isFirstElement
39+
import org.domaframework.doma.intellij.extension.psi.psiClassType
3840
import org.domaframework.doma.intellij.psi.SqlElFieldAccessExpr
3941
import org.domaframework.doma.intellij.psi.SqlElForDirective
4042
import org.domaframework.doma.intellij.psi.SqlElIdExpr
@@ -178,12 +180,23 @@ class SqlInspectionVisitor(
178180
val psiStaticClass = PsiStaticElement(staticAccuser.elClass.elIdExprList, staticAccuser.containingFile)
179181
val referenceClass = psiStaticClass.getRefClazz() ?: return
180182
val topParentClass = ForDirectiveUtil.getStaticFieldAccessTopElementClassType(staticAccuser, referenceClass)
183+
if (topParentClass == null) {
184+
blockElements.firstOrNull()?.let {
185+
ValidationPropertyResult(
186+
it,
187+
PsiParentClass(referenceClass.psiClassType),
188+
this.shortName,
189+
).highlightElement(holder)
190+
}
191+
return
192+
}
181193
val result =
182-
topParentClass?.let {
194+
topParentClass.let {
183195
ForDirectiveUtil.getFieldAccessLastPropertyClassType(
184196
blockElements,
185197
staticAccuser.project,
186198
it,
199+
shortName = this.shortName,
187200
)
188201
}
189202
result?.highlightElement(holder)

0 commit comments

Comments
 (0)