diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/trackers/KotlinCodeBlockModificationListener.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/trackers/KotlinCodeBlockModificationListener.kt index f77b8e0f130..d65af099937 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/trackers/KotlinCodeBlockModificationListener.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/trackers/KotlinCodeBlockModificationListener.kt @@ -254,10 +254,7 @@ class KotlinCodeBlockModificationListener( (element !is KtAnnotated || element.annotationEntries.isEmpty()) } ?.let { expression -> - val declaration = if (blockDeclaration.initializer != null) - blockDeclaration - else - // property could be initialized on a class level + val declaration = KtPsiUtil.getTopmostParentOfTypes(blockDeclaration, KtClass::class.java) as? KtElement ?: // ktFile to check top level property declarations return null diff --git a/idea/testData/codeInsight/outOfBlock/PropNotNullType_Initializer_ObjectLiteral_Fun.kt b/idea/testData/codeInsight/outOfBlock/PropNotNullType_Initializer_ObjectLiteral_Fun.kt index fc12533436b..0b4d2caee26 100644 --- a/idea/testData/codeInsight/outOfBlock/PropNotNullType_Initializer_ObjectLiteral_Fun.kt +++ b/idea/testData/codeInsight/outOfBlock/PropNotNullType_Initializer_ObjectLiteral_Fun.kt @@ -1,4 +1,7 @@ -// OUT_OF_CODE_BLOCK: FALSE +// TODO NOTE: [VD] Temporary workaround for KT-36460 +// SKIP_ANALYZE_CHECK +// OUT_OF_CODE_BLOCK: TRUE + // ERROR: Unresolved reference: a interface Some diff --git a/idea/testData/codeInsight/outOfBlock/PropNullType_Initializer_If_Fun.kt b/idea/testData/codeInsight/outOfBlock/PropNullType_Initializer_If_Fun.kt index fc8227b2a14..a79a40064ce 100644 --- a/idea/testData/codeInsight/outOfBlock/PropNullType_Initializer_If_Fun.kt +++ b/idea/testData/codeInsight/outOfBlock/PropNullType_Initializer_If_Fun.kt @@ -1,6 +1,10 @@ -// OUT_OF_CODE_BLOCK: FALSE +// TODO NOTE: [VD] Temporary workaround for KT-36460 +// SKIP_ANALYZE_CHECK +// OUT_OF_CODE_BLOCK: TRUE + // ERROR: This variable must either have a type annotation or be initialized // ERROR: Type mismatch: inferred type is Unit but Int? was expected +// ERROR: Type mismatch: inferred type is Unit but Int? was expected val test: Int? = if (true) { fun test() { diff --git a/idea/testData/codeInsight/outOfBlock/PropNullType_Initializer_ObjectLiteral_Fun.kt b/idea/testData/codeInsight/outOfBlock/PropNullType_Initializer_ObjectLiteral_Fun.kt index 0c898f10435..fc2b45e19c8 100644 --- a/idea/testData/codeInsight/outOfBlock/PropNullType_Initializer_ObjectLiteral_Fun.kt +++ b/idea/testData/codeInsight/outOfBlock/PropNullType_Initializer_ObjectLiteral_Fun.kt @@ -1,8 +1,10 @@ -// OUT_OF_CODE_BLOCK: FALSE +// TODO NOTE: [VD] Temporary workaround for KT-36460 +// SKIP_ANALYZE_CHECK +// OUT_OF_CODE_BLOCK: TRUE + // Problem with lazy initialization of nullable properties -// TODO: Investigate -// --ERROR: Unresolved reference: q +// ERROR: Unresolved reference: a interface Some val test: Some? = object: Some { diff --git a/idea/testData/codeInsight/outOfBlock/PropertyWithType_Initializer_String.kt b/idea/testData/codeInsight/outOfBlock/PropertyWithType_Initializer_String.kt index 900189965eb..66500f680ba 100644 --- a/idea/testData/codeInsight/outOfBlock/PropertyWithType_Initializer_String.kt +++ b/idea/testData/codeInsight/outOfBlock/PropertyWithType_Initializer_String.kt @@ -1,3 +1,5 @@ -// OUT_OF_CODE_BLOCK: FALSE +// TODO NOTE: [VD] Temporary workaround for KT-36460 +// SKIP_ANALYZE_CHECK +// OUT_OF_CODE_BLOCK: TRUE val test: String = "" \ No newline at end of file