diff --git a/js/js.frontend/src/org/jetbrains/k2js/resolve/KotlinJsDeclarationCheckerProvider.kt b/js/js.frontend/src/org/jetbrains/k2js/resolve/KotlinJsDeclarationCheckerProvider.kt index ddbe1f4c45c..a10258217df 100644 --- a/js/js.frontend/src/org/jetbrains/k2js/resolve/KotlinJsDeclarationCheckerProvider.kt +++ b/js/js.frontend/src/org/jetbrains/k2js/resolve/KotlinJsDeclarationCheckerProvider.kt @@ -48,13 +48,11 @@ private abstract class AbstractNativeAnnotationsChecker(private val requiredAnno return } - val isTopLevel = DescriptorUtils.isTopLevelDeclaration(descriptor) - val hasLocalVisibility = descriptor.getVisibility() == Visibilities.LOCAL + val isMember = !DescriptorUtils.isTopLevelDeclaration(descriptor) && descriptor.getVisibility() != Visibilities.LOCAL val isExtension = DescriptorUtils.isExtension(descriptor) - if (!isTopLevel && !hasLocalVisibility && isExtension || - (isTopLevel || hasLocalVisibility) && !isExtension || - !((isTopLevel || hasLocalVisibility) && isExtension) && !AnnotationsUtils.isNativeObject(descriptor) + if (isMember && (isExtension || !AnnotationsUtils.isNativeObject(descriptor)) || + !isMember && !isExtension ) { diagnosticHolder.report(ErrorsJs.NATIVE_ANNOTATIONS_ALLOWED_ONLY_ON_MEMBER_OR_EXTENSION_FUN.on(declaration, annotationDescriptor.getType())) }