Kapt: Support "*" in supported annotation qualified names (all annotations)
(cherry picked from commit 27ec053)
This commit is contained in:
committed by
Yan Zhulanow
parent
a73cf65840
commit
9d2144f221
+11
-4
@@ -73,14 +73,21 @@ class AnnotationProcessingExtension(
|
|||||||
// Round 1
|
// Round 1
|
||||||
val round1Environment = KotlinRoundEnvironment(analysisContext)
|
val round1Environment = KotlinRoundEnvironment(analysisContext)
|
||||||
for (processor in processors) {
|
for (processor in processors) {
|
||||||
val supportedAnnotationNames = processor.supportedAnnotationTypes.filter { it in analysisContext.annotationsMap }
|
val supportedAnnotationNames = processor.supportedAnnotationTypes
|
||||||
if (supportedAnnotationNames.isEmpty()) continue
|
val supportsAnyAnnotation = supportedAnnotationNames.contains("*")
|
||||||
|
|
||||||
|
val applicableAnnotationNames = when (supportsAnyAnnotation) {
|
||||||
|
true -> analysisContext.annotationsMap.keys
|
||||||
|
false -> processor.supportedAnnotationTypes.filter { it in analysisContext.annotationsMap }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (applicableAnnotationNames.isEmpty()) continue
|
||||||
|
|
||||||
val supportedAnnotations = supportedAnnotationNames
|
val applicableAnnotations = applicableAnnotationNames
|
||||||
.map { javaPsiFacade.findClass(it, projectScope)?.let { JeTypeElement(it) } }
|
.map { javaPsiFacade.findClass(it, projectScope)?.let { JeTypeElement(it) } }
|
||||||
.filterNotNullTo(hashSetOf())
|
.filterNotNullTo(hashSetOf())
|
||||||
|
|
||||||
processor.process(supportedAnnotations, round1Environment)
|
processor.process(applicableAnnotations, round1Environment)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Round 2
|
// Round 2
|
||||||
|
|||||||
Reference in New Issue
Block a user