[FIR] Introduce containsMultipleNonSubsumed to intersection overrides
After this change the IO created for `SimpleColoredComponent::setToolTipText` will be `containsMultipleNonSubsumed == true` while IOs created for classes in `intersectionOverridesIntersection.kt` will have this property set to `false`. ^KT-65972 Fixed
This commit is contained in:
committed by
Space Team
parent
ee20d979cb
commit
341a23d05c
@@ -47,11 +47,19 @@ open class FirNamedFunctionSymbol(callableId: CallableId) : FirFunctionSymbol<Fi
|
||||
|
||||
interface FirIntersectionCallableSymbol {
|
||||
val intersections: Collection<FirCallableSymbol<*>>
|
||||
|
||||
/**
|
||||
* `true` iff a call to `nonSubsumed()` for `intersections` would result into a list with more than one symbol.
|
||||
* Intuitively, `false` means this intersection is, strictly speaking, redundant, but we still created it
|
||||
* as an implementation detail.
|
||||
*/
|
||||
val containsMultipleNonSubsumed: Boolean
|
||||
}
|
||||
|
||||
class FirIntersectionOverrideFunctionSymbol(
|
||||
callableId: CallableId,
|
||||
override val intersections: Collection<FirCallableSymbol<*>>,
|
||||
override val containsMultipleNonSubsumed: Boolean,
|
||||
) : FirNamedFunctionSymbol(callableId), FirIntersectionCallableSymbol
|
||||
|
||||
class FirConstructorSymbol(callableId: CallableId) : FirFunctionSymbol<FirConstructor>(callableId), ConstructorSymbolMarker {
|
||||
|
||||
@@ -72,12 +72,14 @@ open class FirPropertySymbol(callableId: CallableId, ) : FirVariableSymbol<FirPr
|
||||
|
||||
class FirIntersectionOverridePropertySymbol(
|
||||
callableId: CallableId,
|
||||
override val intersections: Collection<FirCallableSymbol<*>>
|
||||
override val intersections: Collection<FirCallableSymbol<*>>,
|
||||
override val containsMultipleNonSubsumed: Boolean,
|
||||
) : FirPropertySymbol(callableId), FirIntersectionCallableSymbol
|
||||
|
||||
class FirIntersectionOverrideFieldSymbol(
|
||||
callableId: CallableId,
|
||||
override val intersections: Collection<FirCallableSymbol<*>>
|
||||
override val intersections: Collection<FirCallableSymbol<*>>,
|
||||
override val containsMultipleNonSubsumed: Boolean,
|
||||
) : FirFieldSymbol(callableId), FirIntersectionCallableSymbol
|
||||
|
||||
class FirBackingFieldSymbol(callableId: CallableId) : FirVariableSymbol<FirBackingField>(callableId) {
|
||||
|
||||
Reference in New Issue
Block a user