[k2, dfa] Use transitive closure of dependsOn for stability checks
This commit is contained in:
committed by
Space Team
parent
337330f8c8
commit
f28863b983
+2
-5
@@ -7,14 +7,11 @@ package org.jetbrains.kotlin.fir.resolve.dfa
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.moduleData
|
||||
import org.jetbrains.kotlin.fir.originalOrSelf
|
||||
import org.jetbrains.kotlin.fir.references.FirThisReference
|
||||
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||
@@ -215,7 +212,7 @@ class VariableStorageImpl(private val session: FirSession) : VariableStorage() {
|
||||
return when (propertyModuleData) {
|
||||
currentModuleData,
|
||||
in currentModuleData.friendDependencies,
|
||||
in currentModuleData.dependsOnDependencies,
|
||||
in currentModuleData.allDependsOnDependencies,
|
||||
-> PropertyStability.STABLE_VALUE
|
||||
else -> PropertyStability.ALIEN_PUBLIC_PROPERTY
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -20,7 +20,7 @@ fun isCast(d: Direct, t: Transitive) {
|
||||
}
|
||||
|
||||
if (t.finalProperty is String) {
|
||||
<!SMARTCAST_IMPOSSIBLE!>t.finalProperty<!>.length
|
||||
t.finalProperty.length
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,5 +29,5 @@ fun asCast(d: Direct, t: Transitive) {
|
||||
d.finalProperty.length
|
||||
|
||||
t.finalProperty as String
|
||||
<!SMARTCAST_IMPOSSIBLE!>t.finalProperty<!>.length
|
||||
t.finalProperty.length
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user