Always consider container's experimentality in ExperimentalUsageChecker

This results in more diagnostics usually, but allows library authors to
avoid annotating everything in each experimental class with the marker
(only the class needs to be annotated now)

 #KT-22759
This commit is contained in:
Alexander Udalov
2018-02-07 16:20:47 +01:00
parent 7123202670
commit a4af9dd5d1
5 changed files with 150 additions and 3 deletions
@@ -142,9 +142,7 @@ class ExperimentalUsageChecker(project: Project) : CallChecker {
val container = containingDeclaration
if (container is ClassDescriptor && this !is ConstructorDescriptor) {
for (annotation in container.annotations) {
result.addIfNotNull(annotation.annotationClass?.loadExperimentalityForMarkerAnnotation())
}
result.addAll(container.loadExperimentalities(moduleAnnotationsResolver))
}
for (moduleAnnotationClassId in moduleAnnotationsResolver.getAnnotationsOnContainingModule(this)) {