[FIR] Avoid unnecessary `UNNECESSARY_LATEINIT`

^KT-68082
diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/properties/backingField/lateinitBackingFields.kt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/properties/backingField/lateinitBackingFields.kt
index 9343214..580687b 100644
--- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/properties/backingField/lateinitBackingFields.kt
+++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/properties/backingField/lateinitBackingFields.kt
@@ -13,7 +13,7 @@
 
 // Not allowed for properties with
 // custom accessors & backing fields
-<!INAPPLICABLE_LATEINIT_MODIFIER, INAPPLICABLE_LATEINIT_MODIFIER, UNNECESSARY_LATEINIT!>lateinit<!> <!VAR_PROPERTY_WITH_EXPLICIT_BACKING_FIELD!>var<!> number: Number
+<!INAPPLICABLE_LATEINIT_MODIFIER, INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> <!VAR_PROPERTY_WITH_EXPLICIT_BACKING_FIELD!>var<!> number: Number
     field = 4
     set(value) {
         field = 10
@@ -22,7 +22,7 @@
 val something: Number
     <!LATEINIT_FIELD_IN_VAL_PROPERTY, LATEINIT_PROPERTY_FIELD_DECLARATION_WITH_INITIALIZER, WRONG_MODIFIER_TARGET!>lateinit<!> field = 4
 
-<!INAPPLICABLE_LATEINIT_MODIFIER, INAPPLICABLE_LATEINIT_MODIFIER, UNNECESSARY_LATEINIT!>lateinit<!> <!VAR_PROPERTY_WITH_EXPLICIT_BACKING_FIELD!>var<!> oneMore: Number
+<!INAPPLICABLE_LATEINIT_MODIFIER, INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> <!VAR_PROPERTY_WITH_EXPLICIT_BACKING_FIELD!>var<!> oneMore: Number
     <!LATEINIT_PROPERTY_FIELD_DECLARATION_WITH_INITIALIZER, WRONG_MODIFIER_TARGET!>lateinit<!> field = 4
     set(value) {
         field = 10
diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirTopLevelPropertiesChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirTopLevelPropertiesChecker.kt
index c2d3009..50c79c4 100644
--- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirTopLevelPropertiesChecker.kt
+++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirTopLevelPropertiesChecker.kt
@@ -229,6 +229,7 @@
                 if (LanguageFeature.EnableDfaWarningsInK2.isEnabled()) {
                     if (
                         backingFieldRequired &&
+                        !propertySymbol.hasExplicitBackingField &&
                         !inInterface &&
                         isCorrectlyInitialized &&
                         propertySymbol.backingFieldSymbol?.hasAnnotation(StandardClassIds.Annotations.Transient, context.session) != true &&