diff options
author | Evan Tatarka <evan@tatarka.me> | 2021-10-24 21:28:54 -0400 |
---|---|---|
committer | Jiaxiang Chen <jiaxiang@google.com> | 2021-10-27 14:31:48 -0700 |
commit | d6ea4c3050e16fd7ad6ebe226f67d928077d72b5 (patch) | |
tree | 313ba352ca5bd9d651da90f22ea666f0fcf5a477 /api | |
parent | d1d38bca1bd2f4f74a334f0a5db2adcd79c3344f (diff) | |
download | ksp-d6ea4c3050e16fd7ad6ebe226f67d928077d72b5.tar.gz |
Fixed unexpected behavior with KSValidateVisitor
1. visitFunctionDeclaration was always returning false for validate if
the predicate lambda returned false to skip.
2. visitPropertyDeclaration wasn't visiting the type unlike other visit
methods.
Diffstat (limited to 'api')
-rw-r--r-- | api/src/main/kotlin/com/google/devtools/ksp/visitor/KSValidateVisitor.kt | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/api/src/main/kotlin/com/google/devtools/ksp/visitor/KSValidateVisitor.kt b/api/src/main/kotlin/com/google/devtools/ksp/visitor/KSValidateVisitor.kt index 8e2747df..4947a41f 100644 --- a/api/src/main/kotlin/com/google/devtools/ksp/visitor/KSValidateVisitor.kt +++ b/api/src/main/kotlin/com/google/devtools/ksp/visitor/KSValidateVisitor.kt @@ -75,7 +75,7 @@ open class KSValidateVisitor( override fun visitFunctionDeclaration(function: KSFunctionDeclaration, data: KSNode?): Boolean { if (function.returnType != null && - !(predicate(function, function.returnType!!) && function.returnType!!.accept(this, data)) + predicate(function, function.returnType!!) && !function.returnType!!.accept(this, data) ) { return false } @@ -89,7 +89,7 @@ open class KSValidateVisitor( } override fun visitPropertyDeclaration(property: KSPropertyDeclaration, data: KSNode?): Boolean { - if (predicate(property, property.type) && property.type.resolve().isError) { + if (predicate(property, property.type) && !property.type.accept(this, data)) { return false } if (!this.visitDeclaration(property, data)) { |