diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt
index 080f22696b3..c7a575651d8 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt
+++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt
@@ -367,7 +367,8 @@ class ControlFlowInformationProvider private constructor(
}
}
is VariableDescriptor ->
- if (!variableDescriptor.isLateInit) {
+ if (!variableDescriptor.isLateInit &&
+ !(variableDescriptor is MemberDescriptor && variableDescriptor.isEffectivelyExternal())) {
report(Errors.UNINITIALIZED_VARIABLE.on(element, variableDescriptor), ctxt)
}
}
diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.kt
index b43a42905c3..39aa437d7a6 100644
--- a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.kt
+++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.kt
@@ -2,7 +2,9 @@
// unreachable code suppressed due to KT-9586
external val baz: Int
+val useBaz = baz
external val boo: Int = definedExternally
+val useBoo = boo
external fun foo()
external fun bar() { definedExternally }
@@ -37,5 +39,3 @@ external object O {
fun foo(s: String): String
fun bar(s: String): String = definedExternally
}
-
-
diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt
index dcf1c88e1fa..8044252a2bd 100644
--- a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt
+++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt
@@ -2,6 +2,8 @@ package
public external val baz: kotlin.Int
public external val boo: kotlin.Int
+public val useBaz: kotlin.Int
+public val useBoo: kotlin.Int
public external fun bar(): kotlin.Unit
public external fun foo(): kotlin.Unit
diff --git a/idea/src/META-INF/extensions/kotlin2js.xml b/idea/src/META-INF/extensions/kotlin2js.xml
index f003384214e..efe138dbfdd 100644
--- a/idea/src/META-INF/extensions/kotlin2js.xml
+++ b/idea/src/META-INF/extensions/kotlin2js.xml
@@ -2,6 +2,5 @@
org.jetbrains.kotlin
-
diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/analyze/suppressWarnings.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/analyze/suppressWarnings.kt
index e07f5b294e3..8b394cfb058 100644
--- a/js/js.frontend/src/org/jetbrains/kotlin/js/analyze/suppressWarnings.kt
+++ b/js/js.frontend/src/org/jetbrains/kotlin/js/analyze/suppressWarnings.kt
@@ -19,14 +19,8 @@ package org.jetbrains.kotlin.js.analyze
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.VariableDescriptor
-import org.jetbrains.kotlin.diagnostics.Diagnostic
-import org.jetbrains.kotlin.diagnostics.DiagnosticWithParameters1
-import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.js.PredefinedAnnotation.*
-import org.jetbrains.kotlin.js.translate.utils.AnnotationsUtils
-import org.jetbrains.kotlin.psi.KtSimpleNameExpression
import org.jetbrains.kotlin.resolve.checkers.PlatformDiagnosticSuppressor
-import org.jetbrains.kotlin.resolve.diagnostics.DiagnosticSuppressor
private val NATIVE_ANNOTATIONS = arrayOf(NATIVE.fqName, NATIVE_INVOKE.fqName, NATIVE_GETTER.fqName, NATIVE_SETTER.fqName)
@@ -45,17 +39,3 @@ object JsNativeDiagnosticSuppressor : PlatformDiagnosticSuppressor {
override fun shouldReportNoBody(descriptor: CallableMemberDescriptor): Boolean = !descriptor.isLexicallyInsideJsNative()
}
-
-class SuppressUninitializedErrorsForNativeDeclarations : DiagnosticSuppressor {
- override fun isSuppressed(diagnostic: Diagnostic): Boolean {
- if (diagnostic.factory != Errors.UNINITIALIZED_VARIABLE) return false
-
- @Suppress("UNCHECKED_CAST")
- val diagnosticWithParameters = diagnostic as DiagnosticWithParameters1
-
- val variableDescriptor = diagnosticWithParameters.a
-
- return AnnotationsUtils.isNativeObject(variableDescriptor)
- }
-}
-