Fix NPE in ExperimentalUsageChecker in corner case

Since there's no nullability assertion, null could end up in this list
and cause NPE further at `reportNotAcceptedExperimentalities`. This
could happen if a declaration was annotated with WasExperimental, the
marker was annotated with the new RequiresOptIn, and API version 1.2 was
used.

No new tests are added because 1.2 is obsolete and WasExperimental is
internal.
This commit is contained in:
Alexander Udalov
2019-12-24 18:29:09 +01:00
parent ca05ff1791
commit d547af00aa
@@ -130,7 +130,7 @@ class ExperimentalUsageChecker(project: Project) : CallChecker {
if (annotations.any { it.fqName == WAS_EXPERIMENTAL_FQ_NAME }) {
val accessibility = checkSinceKotlinVersionAccessibility(languageVersionSettings)
if (accessibility is SinceKotlinAccessibility.NotAccessibleButWasExperimental) {
result.addAll(accessibility.markerClasses.map { it.loadExperimentalityForMarkerAnnotation() })
result.addAll(accessibility.markerClasses.mapNotNull { it.loadExperimentalityForMarkerAnnotation() })
}
}