Skip to content

Commit 42a29f1

Browse files
committed
Add fallback for parent class name retrieval in validation property result
1 parent dd18e42 commit 42a29f1

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/main/kotlin/org/domaframework/doma/intellij/common/sql/validator/result/ValidationPropertyResult.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,11 @@ class ValidationPropertyResult(
3737
parent: PsiParentClass?,
3838
) {
3939
val project = identify.project
40+
val parentClassType = parentClass?.type
4041
val parentName =
4142
parentClass?.clazz?.name
42-
?: (parentClass?.type as? PsiClassType)?.name
43+
?: (parentClassType as? PsiClassType)?.name
44+
?: parentClassType?.canonicalText
4345
?: ""
4446
holder.registerProblem(
4547
identify,

src/test/testData/src/main/resources/META-INF/doma/example/dao/EmployeeSummaryDao/bindVariableForEntityAndNonEntityParentClass.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ INSERT INTO employee_project (employee_name, department, project)
99
JOIN user u1 ON e1.employee_id = u1.user_id
1010
AND e1.user_tag = /*# 't' */'a'
1111
AND e1.user_dept = /*# "development" */'dev'
12-
-- Access to parent private field
12+
-- Access to parent private field
1313
WHERE u1.user_name = /* employee.userName.toLowerCase() */'name'
14+
-- Access to property on primitive type
15+
OR u1.name = /* employee.userName.isBlank().<error descr="The field or method [x] does not exist in the class [boolean]">x</error> */'boolean'
1416
-- Access to non-existent parent field
1517
OR u1.user_name = /* employee.<error descr="The field or method [userFirstName] does not exist in the class [Employee]">userFirstName</error>.toLowerCase() */'name'
1618
-- Public parent method

0 commit comments

Comments
 (0)