Add UL support for NoArg compiler plugin

This commit is contained in:
Igor Yakovlev
2019-10-07 18:59:49 +03:00
parent c9f6482f25
commit 110a6700e4
8 changed files with 94 additions and 20 deletions
@@ -28,18 +28,21 @@ abstract class AnnotationBasedLightClassApplicabilityExtension(project: Project,
cachedAnnotationsNames.getAnnotationNames(modifierListOwner)
override fun checkApplicabilityType(declaration: KtDeclaration, descriptor: Lazy<DeclarationDescriptor?>): LightClassApplicabilityType {
if (!declaration.isOrdinaryClass || !declaration.isAnnotated) return UltraLightClass
if (cachedAnnotationsNames.getAnnotationNames(declaration).isEmpty()) return UltraLightClass
val descriptorValue = descriptor.value ?: return UltraLightClass
val classDescriptor = (descriptorValue as? ClassDescriptor)
?: descriptorValue.containingDeclaration as? ClassDescriptor
?: return UltraLightClass
val hasSpecialAnnotation = run { classDescriptor.hasSpecialAnnotation(declaration) }
return if (hasSpecialAnnotation) LightClass else UltraLightClass
return UltraLightClass
//
// if (!declaration.isOrdinaryClass || !declaration.isAnnotated) return UltraLightClass
//
// if (cachedAnnotationsNames.getAnnotationNames(declaration).isEmpty()) return UltraLightClass
//
// val descriptorValue = descriptor.value ?: return UltraLightClass
//
// val classDescriptor = (descriptorValue as? ClassDescriptor)
// ?: descriptorValue.containingDeclaration as? ClassDescriptor
// ?: return UltraLightClass
//
// val hasSpecialAnnotation = run { classDescriptor.hasSpecialAnnotation(declaration) }
//
// return if (hasSpecialAnnotation) LightClass else UltraLightClass
}
}