[FIR] Don't remove subsumed members from intersection overrides's overriddens
This fixes a bunch of missing overridden symbols in IR. This is also required for fixing KT-59921 in the following commit where we need to keep all overridden symbols of intersection overrides so that we can enhance them properly. #KT-57300 Fixed #KT-57299 Fixed #KT-59921 #KT-57300 #KT-62788 #KT-64271 #KT-64382
This commit is contained in:
committed by
Space Team
parent
d80dee6e1c
commit
3b841dcb98
+30
-17
@@ -17,14 +17,12 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtClassOrObjectSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes
|
||||
import org.jetbrains.kotlin.fir.scopes.*
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirIntersectionOverrideFunctionSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirIntersectionOverridePropertySymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.types.toRegularClassSymbol
|
||||
import org.jetbrains.kotlin.fir.unwrapFakeOverrides
|
||||
@@ -36,15 +34,24 @@ internal class KtFirSymbolDeclarationOverridesProvider(
|
||||
override fun <T : KtSymbol> getAllOverriddenSymbols(
|
||||
callableSymbol: T,
|
||||
): List<KtCallableSymbol> {
|
||||
require(callableSymbol is KtFirSymbol<*>)
|
||||
if (callableSymbol is KtFirBackingFieldSymbol) return emptyList()
|
||||
if (callableSymbol is KtValueParameterSymbol) {
|
||||
return callableSymbol.getAllOverriddenSymbols()
|
||||
}
|
||||
(callableSymbol.firSymbol as? FirIntersectionCallableSymbol)?.let { intersectionSymbol ->
|
||||
return intersectionSymbol.intersections.flatMap {
|
||||
getAllOverriddenSymbols(analysisSession.firSymbolBuilder.callableBuilder.buildCallableSymbol(it))
|
||||
}
|
||||
}
|
||||
|
||||
val overriddenElement = mutableSetOf<FirCallableSymbol<*>>()
|
||||
processOverrides(callableSymbol) { firTypeScope, firCallableDeclaration ->
|
||||
firTypeScope.processAllOverriddenDeclarations(firCallableDeclaration) { overriddenDeclaration ->
|
||||
overriddenDeclaration.symbol.collectIntersectionOverridesSymbolsTo(overriddenElement)
|
||||
overriddenDeclaration.symbol.collectIntersectionOverridesSymbolsTo(
|
||||
overriddenElement,
|
||||
callableSymbol.analysisSession.useSiteSession
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,15 +59,22 @@ internal class KtFirSymbolDeclarationOverridesProvider(
|
||||
}
|
||||
|
||||
override fun <T : KtSymbol> getDirectlyOverriddenSymbols(callableSymbol: T): List<KtCallableSymbol> {
|
||||
require(callableSymbol is KtFirSymbol<*>)
|
||||
if (callableSymbol is KtFirBackingFieldSymbol) return emptyList()
|
||||
if (callableSymbol is KtValueParameterSymbol) {
|
||||
return callableSymbol.getDirectlyOverriddenSymbols()
|
||||
}
|
||||
if (callableSymbol is KtCallableSymbol && callableSymbol.firSymbol is FirIntersectionCallableSymbol) {
|
||||
return getIntersectionOverriddenSymbols(callableSymbol)
|
||||
}
|
||||
|
||||
val overriddenElement = mutableSetOf<FirCallableSymbol<*>>()
|
||||
processOverrides(callableSymbol) { firTypeScope, firCallableDeclaration ->
|
||||
firTypeScope.processDirectOverriddenDeclarations(firCallableDeclaration) { overriddenDeclaration ->
|
||||
overriddenDeclaration.symbol.collectIntersectionOverridesSymbolsTo(overriddenElement)
|
||||
overriddenDeclaration.symbol.collectIntersectionOverridesSymbolsTo(
|
||||
overriddenElement,
|
||||
callableSymbol.analysisSession.useSiteSession
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,13 +153,13 @@ internal class KtFirSymbolDeclarationOverridesProvider(
|
||||
process(firTypeScope, firCallableDeclaration)
|
||||
}
|
||||
|
||||
private fun FirCallableSymbol<*>.collectIntersectionOverridesSymbolsTo(to: MutableCollection<FirCallableSymbol<*>>) {
|
||||
private fun FirCallableSymbol<*>.collectIntersectionOverridesSymbolsTo(
|
||||
to: MutableCollection<FirCallableSymbol<*>>,
|
||||
useSiteSession: FirSession,
|
||||
) {
|
||||
when (this) {
|
||||
is FirIntersectionOverrideFunctionSymbol -> {
|
||||
intersections.forEach { it.collectIntersectionOverridesSymbolsTo(to) }
|
||||
}
|
||||
is FirIntersectionOverridePropertySymbol -> {
|
||||
intersections.forEach { it.collectIntersectionOverridesSymbolsTo(to) }
|
||||
is FirIntersectionCallableSymbol -> {
|
||||
getIntersectionOverriddenSymbols(useSiteSession).forEach { it.collectIntersectionOverridesSymbolsTo(to, useSiteSession) }
|
||||
}
|
||||
else -> {
|
||||
to += this.fir.unwrapFakeOverrides().symbol
|
||||
@@ -187,22 +201,21 @@ internal class KtFirSymbolDeclarationOverridesProvider(
|
||||
return false
|
||||
}
|
||||
|
||||
override fun getIntersectionOverriddenSymbols(symbol: KtCallableSymbol): Collection<KtCallableSymbol> {
|
||||
override fun getIntersectionOverriddenSymbols(symbol: KtCallableSymbol): List<KtCallableSymbol> {
|
||||
require(symbol is KtFirSymbol<*>)
|
||||
if (symbol.origin != KtSymbolOrigin.INTERSECTION_OVERRIDE) return emptyList()
|
||||
return symbol.firSymbol
|
||||
.getIntersectionOverriddenSymbols()
|
||||
.getIntersectionOverriddenSymbols(symbol.analysisSession.useSiteSession)
|
||||
.map { analysisSession.firSymbolBuilder.callableBuilder.buildCallableSymbol(it) }
|
||||
|
||||
}
|
||||
|
||||
private fun FirBasedSymbol<*>.getIntersectionOverriddenSymbols(): Collection<FirCallableSymbol<*>> {
|
||||
private fun FirBasedSymbol<*>.getIntersectionOverriddenSymbols(useSiteSession: FirSession): Collection<FirCallableSymbol<*>> {
|
||||
require(this is FirCallableSymbol<*>) {
|
||||
"Required FirCallableSymbol but ${this::class} found"
|
||||
}
|
||||
return when (this) {
|
||||
is FirIntersectionOverrideFunctionSymbol -> intersections
|
||||
is FirIntersectionOverridePropertySymbol -> intersections
|
||||
is FirIntersectionCallableSymbol -> getNonSubsumedOverriddenSymbols(useSiteSession, analysisSession.getScopeSessionFor(useSiteSession))
|
||||
else -> listOf(this)
|
||||
}
|
||||
}
|
||||
|
||||
+15
-65
@@ -939,62 +939,12 @@ KtFunctionSymbol:
|
||||
|
||||
KtKotlinPropertySymbol:
|
||||
annotationsList: []
|
||||
backingFieldSymbol: KtBackingFieldSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
isExtension: false
|
||||
name: field
|
||||
origin: PROPERTY_BACKING_FIELD
|
||||
owningProperty: KtKotlinPropertySymbol(kotlin/collections/List.size)
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Int
|
||||
symbolKind: LOCAL
|
||||
typeParameters: []
|
||||
getContainingFileSymbol: null
|
||||
getContainingJvmClassName: kotlin.collections.List
|
||||
getContainingModule: KtBinaryModule "Builtins for JVM (1.8)"
|
||||
deprecationStatus: null
|
||||
callableIdIfNonLocal: kotlin/collections/List.size
|
||||
backingFieldSymbol: null
|
||||
callableIdIfNonLocal: kotlin/collections/MutableList.size
|
||||
contextReceivers: []
|
||||
getter: KtPropertyGetterSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
hasBody: false
|
||||
hasStableParameterNames: true
|
||||
isDefault: true
|
||||
isExtension: false
|
||||
isInline: false
|
||||
isOverride: false
|
||||
modality: ABSTRACT
|
||||
origin: LIBRARY
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Int
|
||||
symbolKind: ACCESSOR
|
||||
typeParameters: []
|
||||
valueParameters: []
|
||||
visibility: Public
|
||||
getDispatchReceiver(): KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: [
|
||||
KtTypeParameterType:
|
||||
annotationsList: []
|
||||
type: E
|
||||
]
|
||||
type: kotlin/collections/List<E>
|
||||
getContainingFileSymbol: null
|
||||
getContainingJvmClassName: kotlin.collections.List
|
||||
getContainingModule: KtBinaryModule "Builtins for JVM (1.8)"
|
||||
deprecationStatus: null
|
||||
getter: null
|
||||
hasBackingField: false
|
||||
hasGetter: true
|
||||
hasGetter: false
|
||||
hasSetter: false
|
||||
initializer: null
|
||||
isActual: false
|
||||
@@ -1009,7 +959,7 @@ KtKotlinPropertySymbol:
|
||||
isVal: true
|
||||
modality: ABSTRACT
|
||||
name: size
|
||||
origin: LIBRARY
|
||||
origin: INTERSECTION_OVERRIDE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
@@ -1026,9 +976,9 @@ KtKotlinPropertySymbol:
|
||||
annotationsList: []
|
||||
type: E
|
||||
]
|
||||
type: kotlin/collections/List<E>
|
||||
type: kotlin/collections/MutableList<E>
|
||||
getContainingFileSymbol: null
|
||||
getContainingJvmClassName: kotlin.collections.List
|
||||
getContainingJvmClassName: kotlin.collections.MutableList
|
||||
getContainingModule: KtBinaryModule "Builtins for JVM (1.8)"
|
||||
deprecationStatus: null
|
||||
getterDeprecationStatus: null
|
||||
@@ -1038,7 +988,7 @@ KtKotlinPropertySymbol:
|
||||
|
||||
KtFunctionSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: kotlin/collections/List.isEmpty
|
||||
callableIdIfNonLocal: kotlin/collections/MutableList.isEmpty
|
||||
contextReceivers: []
|
||||
contractEffects: []
|
||||
hasStableParameterNames: true
|
||||
@@ -1055,7 +1005,7 @@ KtFunctionSymbol:
|
||||
isSuspend: false
|
||||
modality: ABSTRACT
|
||||
name: isEmpty
|
||||
origin: LIBRARY
|
||||
origin: INTERSECTION_OVERRIDE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
@@ -1072,9 +1022,9 @@ KtFunctionSymbol:
|
||||
annotationsList: []
|
||||
type: E
|
||||
]
|
||||
type: kotlin/collections/List<E>
|
||||
type: kotlin/collections/MutableList<E>
|
||||
getContainingFileSymbol: null
|
||||
getContainingJvmClassName: kotlin.collections.List
|
||||
getContainingJvmClassName: kotlin.collections.MutableList
|
||||
getContainingModule: KtBinaryModule "Builtins for JVM (1.8)"
|
||||
deprecationStatus: null
|
||||
|
||||
@@ -1097,7 +1047,7 @@ KtFunctionSymbol:
|
||||
isSuspend: false
|
||||
modality: ABSTRACT
|
||||
name: contains
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
origin: INTERSECTION_OVERRIDE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
@@ -1118,7 +1068,7 @@ KtFunctionSymbol:
|
||||
isNoinline: false
|
||||
isVararg: false
|
||||
name: element
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
origin: INTERSECTION_OVERRIDE
|
||||
receiverParameter: null
|
||||
returnType: KtTypeParameterType:
|
||||
annotationsList: []
|
||||
@@ -1209,7 +1159,7 @@ KtFunctionSymbol:
|
||||
isSuspend: false
|
||||
modality: ABSTRACT
|
||||
name: containsAll
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
origin: INTERSECTION_OVERRIDE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
@@ -1230,7 +1180,7 @@ KtFunctionSymbol:
|
||||
isNoinline: false
|
||||
isVararg: false
|
||||
name: elements
|
||||
origin: SUBSTITUTION_OVERRIDE
|
||||
origin: INTERSECTION_OVERRIDE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
|
||||
+42
@@ -345,6 +345,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
||||
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("duplicateDefaultValuesSubsumedIntersection.kt")
|
||||
public void testDuplicateDefaultValuesSubsumedIntersection() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/duplicateDefaultValuesSubsumedIntersection.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
||||
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
||||
@@ -28698,6 +28704,36 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
||||
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOfAbstractAndOpen.kt")
|
||||
public void testIntersectionOfAbstractAndOpen() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOfAbstractAndOpen.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOfSubstitutedProperties.kt")
|
||||
public void testIntersectionOfSubstitutedProperties() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOfSubstitutedProperties.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOverrideWithSubsumedDifferentType.kt")
|
||||
public void testIntersectionOverrideWithSubsumedDifferentType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOverrideWithSubsumedDifferentType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOverridesIntersection.kt")
|
||||
public void testIntersectionOverridesIntersection() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOverridesIntersection.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionWithSubsumedWithSubstitution.kt")
|
||||
public void testIntersectionWithSubsumedWithSubstitution() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionWithSubsumedWithSubstitution.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("InvisiblePotentialOverride.kt")
|
||||
public void testInvisiblePotentialOverride() throws Exception {
|
||||
@@ -28965,6 +29001,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/genericWithUpperBound.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionReturnTypeMismatchSubsumed.kt")
|
||||
public void testIntersectionReturnTypeMismatchSubsumed() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/intersectionReturnTypeMismatchSubsumed.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt13355.kt")
|
||||
public void testKt13355() throws Exception {
|
||||
|
||||
+42
@@ -345,6 +345,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
||||
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("duplicateDefaultValuesSubsumedIntersection.kt")
|
||||
public void testDuplicateDefaultValuesSubsumedIntersection() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/duplicateDefaultValuesSubsumedIntersection.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
||||
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
||||
@@ -28698,6 +28704,36 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
||||
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOfAbstractAndOpen.kt")
|
||||
public void testIntersectionOfAbstractAndOpen() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOfAbstractAndOpen.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOfSubstitutedProperties.kt")
|
||||
public void testIntersectionOfSubstitutedProperties() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOfSubstitutedProperties.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOverrideWithSubsumedDifferentType.kt")
|
||||
public void testIntersectionOverrideWithSubsumedDifferentType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOverrideWithSubsumedDifferentType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOverridesIntersection.kt")
|
||||
public void testIntersectionOverridesIntersection() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOverridesIntersection.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionWithSubsumedWithSubstitution.kt")
|
||||
public void testIntersectionWithSubsumedWithSubstitution() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionWithSubsumedWithSubstitution.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("InvisiblePotentialOverride.kt")
|
||||
public void testInvisiblePotentialOverride() throws Exception {
|
||||
@@ -28965,6 +29001,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/genericWithUpperBound.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionReturnTypeMismatchSubsumed.kt")
|
||||
public void testIntersectionReturnTypeMismatchSubsumed() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/intersectionReturnTypeMismatchSubsumed.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt13355.kt")
|
||||
public void testKt13355() throws Exception {
|
||||
|
||||
Vendored
+9
-9
@@ -6,15 +6,15 @@ B:
|
||||
[Enhancement]: public abstract fun getFoo(): R|kotlin/String!| from Java enhancement scope for /A [id: 1]
|
||||
|
||||
C:
|
||||
[Source]: public open override fun getFoo(): R|kotlin/String| from Java enhancement scope for /C [id: 0]
|
||||
[Source]: public open override fun getFoo(): R|kotlin/String| from Use site scope of /B [id: 0]
|
||||
[Enhancement]: public abstract fun getFoo(): R|kotlin/String!| from Java enhancement scope for /A [id: 1]
|
||||
[Enhancement]: public abstract fun getFoo(): R|kotlin/String!| from Java enhancement scope for /A [id: 1]
|
||||
[IntersectionOverride]: public open override fun getFoo(): R|kotlin/String| from Java enhancement scope for /C [id: 0]
|
||||
[Source]: public open override fun getFoo(): R|kotlin/String| from Use site scope of /B [id: 1]
|
||||
[Enhancement]: public abstract fun getFoo(): R|kotlin/String!| from Java enhancement scope for /A [id: 2]
|
||||
[Enhancement]: public abstract fun getFoo(): R|kotlin/String!| from Java enhancement scope for /A [id: 2]
|
||||
|
||||
D:
|
||||
[Source]: public open override fun getFoo(): R|kotlin/String| from Use site scope of /D [id: 0]
|
||||
[Source]: public open override fun getFoo(): R|kotlin/String| from Java enhancement scope for /C [id: 0]
|
||||
[Source]: public open override fun getFoo(): R|kotlin/String| from Use site scope of /B [id: 0]
|
||||
[Enhancement]: public abstract fun getFoo(): R|kotlin/String!| from Java enhancement scope for /A [id: 1]
|
||||
[Enhancement]: public abstract fun getFoo(): R|kotlin/String!| from Java enhancement scope for /A [id: 1]
|
||||
[IntersectionOverride]: public open override fun getFoo(): R|kotlin/String| from Use site scope of /D [id: 0]
|
||||
[IntersectionOverride]: public open override fun getFoo(): R|kotlin/String| from Java enhancement scope for /C [id: 0]
|
||||
[Source]: public open override fun getFoo(): R|kotlin/String| from Use site scope of /B [id: 1]
|
||||
[Enhancement]: public abstract fun getFoo(): R|kotlin/String!| from Java enhancement scope for /A [id: 2]
|
||||
[Enhancement]: public abstract fun getFoo(): R|kotlin/String!| from Java enhancement scope for /A [id: 2]
|
||||
|
||||
|
||||
compiler/fir/analysis-tests/testData/resolve/scopes/noIntersectionOverrideOfTwoMembers.overrides.txt
Vendored
+17
-17
@@ -1,38 +1,38 @@
|
||||
C:
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /C [id: 0]
|
||||
[IntersectionOverride]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /C [id: 0]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /A [id: 1]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /B [id: 0]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /B [id: 2]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /A [id: 1]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /C [id: 0]
|
||||
[IntersectionOverride]: public abstract val x: R|kotlin/Any| from Use site scope of /C [id: 0]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 1]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /B [id: 0]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /B [id: 2]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 1]
|
||||
|
||||
Explicit:
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Int| from Use site scope of /Explicit [id: 0]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[IntersectionOverride]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /B [id: 1]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /B [id: 3]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Int| from Use site scope of /D [id: 3]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Int| from Use site scope of /D [id: 4]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /Explicit [id: 0]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[IntersectionOverride]: public abstract val x: R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /B [id: 1]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /B [id: 3]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /D [id: 3]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /D [id: 4]
|
||||
|
||||
Implicit:
|
||||
[IntersectionOverride]: public abstract fun foo(): R|kotlin/Int| from Use site scope of /Implicit [id: 0]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[IntersectionOverride]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /B [id: 1]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /B [id: 3]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Int| from Use site scope of /D [id: 3]
|
||||
[IntersectionOverride]: public abstract override val x: R|kotlin/Any| from Use site scope of /Implicit [id: 0]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Int| from Use site scope of /D [id: 4]
|
||||
[IntersectionOverride]: public abstract val x: R|kotlin/Any| from Use site scope of /Implicit [id: 0]
|
||||
[IntersectionOverride]: public abstract val x: R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /B [id: 1]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /B [id: 3]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /D [id: 3]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /D [id: 4]
|
||||
|
||||
|
||||
+17
-17
@@ -1,38 +1,38 @@
|
||||
C:
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /C [id: 0]
|
||||
[IntersectionOverride]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /C [id: 0]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /A [id: 1]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /B [id: 0]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /B [id: 2]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /A [id: 1]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /C [id: 0]
|
||||
[IntersectionOverride]: public abstract val x: R|kotlin/Any| from Use site scope of /C [id: 0]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 1]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /B [id: 0]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /B [id: 2]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 1]
|
||||
|
||||
Explicit:
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Int| from Use site scope of /Explicit [id: 0]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[IntersectionOverride]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /B [id: 1]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /B [id: 3]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Int| from Use site scope of /D [id: 3]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Int| from Use site scope of /D [id: 4]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /Explicit [id: 0]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[IntersectionOverride]: public abstract val x: R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /B [id: 1]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /B [id: 3]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /D [id: 3]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /D [id: 4]
|
||||
|
||||
Implicit:
|
||||
[IntersectionOverride]: public abstract fun foo(): R|kotlin/Int| from Use site scope of /Implicit [id: 0]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[IntersectionOverride]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /B [id: 1]
|
||||
[Source]: public abstract override fun foo(): R|kotlin/Any| from Use site scope of /B [id: 3]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Int| from Use site scope of /D [id: 3]
|
||||
[IntersectionOverride]: public abstract override val x: R|kotlin/Any| from Use site scope of /Implicit [id: 0]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[Source]: public abstract fun foo(): R|kotlin/Int| from Use site scope of /D [id: 4]
|
||||
[IntersectionOverride]: public abstract val x: R|kotlin/Any| from Use site scope of /Implicit [id: 0]
|
||||
[IntersectionOverride]: public abstract val x: R|kotlin/Any| from Use site scope of /C [id: 1]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /B [id: 1]
|
||||
[Source]: public abstract override val x: R|kotlin/Any| from Use site scope of /B [id: 3]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 2]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /D [id: 3]
|
||||
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /D [id: 4]
|
||||
|
||||
|
||||
Vendored
+9
-9
@@ -1,11 +1,11 @@
|
||||
D:
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract override fun foo(): R|E4| from Use site scope of /D [id: 0]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract override fun foo(): R|E4| from Substitution scope for [Use site scope of /B] for type D<E4> [id: 0]
|
||||
[Source]: public abstract override fun foo(): R|E2| from Use site scope of /B [id: 1]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E2| from Substitution scope for [Use site scope of /A] for type B<E2> [id: 2]
|
||||
[Source]: public abstract fun foo(): R|E1| from Use site scope of /A [id: 3]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E4| from Substitution scope for [Use site scope of /C] for type D<E4> [id: 4]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E3| from Use site scope of /C [id: 5]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E3| from Substitution scope for [Use site scope of /A] for type C<E3> [id: 5]
|
||||
[Source]: public abstract fun foo(): R|E1| from Use site scope of /A [id: 3]
|
||||
[IntersectionOverride]: public abstract override fun foo(): R|E4| from Use site scope of /D [id: 0]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract override fun foo(): R|E4| from Substitution scope for [Use site scope of /B] for type D<E4> [id: 1]
|
||||
[Source]: public abstract override fun foo(): R|E2| from Use site scope of /B [id: 2]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E2| from Substitution scope for [Use site scope of /A] for type B<E2> [id: 3]
|
||||
[Source]: public abstract fun foo(): R|E1| from Use site scope of /A [id: 4]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E4| from Substitution scope for [Use site scope of /C] for type D<E4> [id: 5]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E3| from Use site scope of /C [id: 6]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E3| from Substitution scope for [Use site scope of /A] for type C<E3> [id: 6]
|
||||
[Source]: public abstract fun foo(): R|E1| from Use site scope of /A [id: 4]
|
||||
|
||||
|
||||
+42
@@ -345,6 +345,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
|
||||
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("duplicateDefaultValuesSubsumedIntersection.kt")
|
||||
public void testDuplicateDefaultValuesSubsumedIntersection() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/duplicateDefaultValuesSubsumedIntersection.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
||||
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
||||
@@ -26462,6 +26468,36 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
|
||||
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOfAbstractAndOpen.kt")
|
||||
public void testIntersectionOfAbstractAndOpen() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOfAbstractAndOpen.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOfSubstitutedProperties.kt")
|
||||
public void testIntersectionOfSubstitutedProperties() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOfSubstitutedProperties.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOverrideWithSubsumedDifferentType.kt")
|
||||
public void testIntersectionOverrideWithSubsumedDifferentType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOverrideWithSubsumedDifferentType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOverridesIntersection.kt")
|
||||
public void testIntersectionOverridesIntersection() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOverridesIntersection.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionWithSubsumedWithSubstitution.kt")
|
||||
public void testIntersectionWithSubsumedWithSubstitution() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionWithSubsumedWithSubstitution.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("InvisiblePotentialOverride.kt")
|
||||
public void testInvisiblePotentialOverride() throws Exception {
|
||||
@@ -26729,6 +26765,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
|
||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/genericWithUpperBound.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionReturnTypeMismatchSubsumed.kt")
|
||||
public void testIntersectionReturnTypeMismatchSubsumed() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/intersectionReturnTypeMismatchSubsumed.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt13355.kt")
|
||||
public void testKt13355() throws Exception {
|
||||
|
||||
+42
@@ -345,6 +345,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
|
||||
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("duplicateDefaultValuesSubsumedIntersection.kt")
|
||||
public void testDuplicateDefaultValuesSubsumedIntersection() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/duplicateDefaultValuesSubsumedIntersection.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
||||
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
||||
@@ -26468,6 +26474,36 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
|
||||
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOfAbstractAndOpen.kt")
|
||||
public void testIntersectionOfAbstractAndOpen() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOfAbstractAndOpen.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOfSubstitutedProperties.kt")
|
||||
public void testIntersectionOfSubstitutedProperties() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOfSubstitutedProperties.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOverrideWithSubsumedDifferentType.kt")
|
||||
public void testIntersectionOverrideWithSubsumedDifferentType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOverrideWithSubsumedDifferentType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOverridesIntersection.kt")
|
||||
public void testIntersectionOverridesIntersection() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOverridesIntersection.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionWithSubsumedWithSubstitution.kt")
|
||||
public void testIntersectionWithSubsumedWithSubstitution() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionWithSubsumedWithSubstitution.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("InvisiblePotentialOverride.kt")
|
||||
public void testInvisiblePotentialOverride() throws Exception {
|
||||
@@ -26735,6 +26771,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
|
||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/genericWithUpperBound.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionReturnTypeMismatchSubsumed.kt")
|
||||
public void testIntersectionReturnTypeMismatchSubsumed() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/intersectionReturnTypeMismatchSubsumed.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt13355.kt")
|
||||
public void testKt13355() throws Exception {
|
||||
|
||||
+12
-6
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.constructors
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
||||
import org.jetbrains.kotlin.fir.declarations.getNonSubsumedOverriddenSymbols
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isFinal
|
||||
import org.jetbrains.kotlin.fir.scopes.*
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
@@ -31,6 +32,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.fir.unwrapFakeOverridesOrDelegated
|
||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.popLast
|
||||
import org.jetbrains.kotlin.fir.resolve.SessionHolder
|
||||
|
||||
sealed class FirJsNameClashClassMembersChecker(mppKind: MppCheckerKind) : FirClassChecker(mppKind) {
|
||||
object Regular : FirJsNameClashClassMembersChecker(MppCheckerKind.Platform) {
|
||||
@@ -113,13 +115,17 @@ sealed class FirJsNameClashClassMembersChecker(mppKind: MppCheckerKind) : FirCla
|
||||
}
|
||||
}
|
||||
|
||||
fun addAllSymbolsFrom(symbols: Collection<FirCallableSymbol<*>>) {
|
||||
fun addAllSymbolsFrom(symbols: Collection<FirCallableSymbol<*>>, sessionHolder: SessionHolder) {
|
||||
for (symbol in symbols) {
|
||||
when (symbol) {
|
||||
is FirIntersectionCallableSymbol -> {
|
||||
addAllSymbolsFrom(symbol.intersections)
|
||||
for (intersectedSymbol in symbol.intersections) {
|
||||
overrideIntersections.getOrPut(intersectedSymbol) { hashSetOf() }.addAll(symbol.intersections)
|
||||
val nonSubsumedOverriddenSymbols = symbol.getNonSubsumedOverriddenSymbols(
|
||||
sessionHolder.session,
|
||||
sessionHolder.scopeSession
|
||||
)
|
||||
addAllSymbolsFrom(nonSubsumedOverriddenSymbols, sessionHolder)
|
||||
for (intersectedSymbol in nonSubsumedOverriddenSymbols) {
|
||||
overrideIntersections.getOrPut(intersectedSymbol) { hashSetOf() }.addAll(nonSubsumedOverriddenSymbols)
|
||||
}
|
||||
}
|
||||
else -> allSymbols.add(symbol)
|
||||
@@ -137,8 +143,8 @@ sealed class FirJsNameClashClassMembersChecker(mppKind: MppCheckerKind) : FirCla
|
||||
val scope = declaration.symbol.unsubstitutedScope(context)
|
||||
|
||||
scope.processDeclaredConstructors(allSymbols::add)
|
||||
addAllSymbolsFrom(scope.collectAllFunctions())
|
||||
addAllSymbolsFrom(scope.collectAllProperties())
|
||||
addAllSymbolsFrom(scope.collectAllFunctions(), context.sessionHolder)
|
||||
addAllSymbolsFrom(scope.collectAllProperties(), context.sessionHolder)
|
||||
|
||||
for (callableMemberSymbol in allSymbols) {
|
||||
val overriddenLeaves = scope.collectOverriddenLeaves(callableMemberSymbol)
|
||||
|
||||
@@ -34,7 +34,6 @@ import org.jetbrains.kotlin.fir.scopes.*
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.multipleDelegatesWithTheSameSignature
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.SymbolInternals
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
@@ -335,7 +334,11 @@ fun FirCallableSymbol<*>.getImplementationStatus(
|
||||
}
|
||||
|
||||
if (symbol is FirIntersectionCallableSymbol) {
|
||||
if (containingClassSymbol === parentClassSymbol && symbol.subjectToManyNotImplemented(sessionHolder)) {
|
||||
val dispatchReceiverScope = symbol.dispatchReceiverScope(sessionHolder.session, sessionHolder.scopeSession)
|
||||
val memberWithBaseScope = MemberWithBaseScope(symbol, dispatchReceiverScope)
|
||||
val nonSubsumed = memberWithBaseScope.getNonSubsumedOverriddenSymbols()
|
||||
|
||||
if (containingClassSymbol === parentClassSymbol && !memberWithBaseScope.isTrivialIntersection() && nonSubsumed.subjectToManyNotImplemented(sessionHolder)) {
|
||||
return ImplementationStatus.AMBIGUOUSLY_INHERITED
|
||||
}
|
||||
|
||||
@@ -345,7 +348,7 @@ fun FirCallableSymbol<*>.getImplementationStatus(
|
||||
var hasImplementation = false
|
||||
var hasImplementationVar = false
|
||||
|
||||
for (intersection in symbol.intersections) {
|
||||
for (intersection in nonSubsumed) {
|
||||
val unwrapped = intersection.unwrapFakeOverrides()
|
||||
val isVar = unwrapped is FirPropertySymbol && unwrapped.isVar
|
||||
val isFromClass = unwrapped.getContainingClassSymbol(sessionHolder.session)?.classKind == ClassKind.CLASS
|
||||
@@ -403,11 +406,11 @@ fun FirCallableSymbol<*>.getImplementationStatus(
|
||||
}
|
||||
}
|
||||
|
||||
private fun FirIntersectionCallableSymbol.subjectToManyNotImplemented(sessionHolder: SessionHolder): Boolean {
|
||||
private fun List<FirCallableSymbol<*>>.subjectToManyNotImplemented(sessionHolder: SessionHolder): Boolean {
|
||||
var nonAbstractCountInClass = 0
|
||||
var nonAbstractCountInInterface = 0
|
||||
var abstractCountInInterface = 0
|
||||
for (intersectionSymbol in intersections) {
|
||||
for (intersectionSymbol in this) {
|
||||
val containingClassSymbol = intersectionSymbol.getContainingClassSymbol(sessionHolder.session) as? FirRegularClassSymbol
|
||||
val hasInterfaceContainer = containingClassSymbol?.classKind == ClassKind.INTERFACE
|
||||
if (intersectionSymbol.modality != Modality.ABSTRACT) {
|
||||
|
||||
+24
-9
@@ -17,8 +17,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.isVisibleInClass
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.unsubstitutedScope
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||
import org.jetbrains.kotlin.fir.containingClassLookupTag
|
||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.classId
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isAbstract
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
||||
@@ -26,15 +25,14 @@ import org.jetbrains.kotlin.fir.declarations.utils.isSuspend
|
||||
import org.jetbrains.kotlin.fir.delegatedWrapperData
|
||||
import org.jetbrains.kotlin.fir.isSubstitutionOverride
|
||||
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
||||
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
||||
import org.jetbrains.kotlin.fir.scopes.getDirectOverriddenMembers
|
||||
import org.jetbrains.kotlin.fir.scopes.getDirectOverriddenProperties
|
||||
import org.jetbrains.kotlin.fir.scopes.*
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.toConeType
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.types.ConeErrorType
|
||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.fir.types.typeContext
|
||||
import org.jetbrains.kotlin.fir.unwrapSubstitutionOverrides
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
||||
import org.jetbrains.kotlin.types.TypeCheckerState
|
||||
@@ -121,6 +119,15 @@ sealed class FirImplementationMismatchChecker(mppKind: MppCheckerKind) : FirClas
|
||||
AbstractTypeChecker.isSubtypeOf(typeCheckerState, inheritedTypeSubstituted, baseType)
|
||||
}
|
||||
|
||||
/**
|
||||
* An intersection override is trivial if one of the overridden symbols subsumes all others.
|
||||
*
|
||||
* @see org.jetbrains.kotlin.fir.scopes.impl.FirTypeIntersectionScopeContext.convertGroupedCallablesToIntersectionResults
|
||||
*/
|
||||
fun FirCallableSymbol<*>.isTrivialIntersectionOverride(): Boolean {
|
||||
return callableId.classId != containingClass.classId || MemberWithBaseScope(this, classScope).isTrivialIntersection()
|
||||
}
|
||||
|
||||
val intersectionSymbols = when {
|
||||
//substitution override means simple materialization of single method, so nothing to check
|
||||
symbol.isSubstitutionOverride -> return
|
||||
@@ -134,7 +141,9 @@ sealed class FirImplementationMismatchChecker(mppKind: MppCheckerKind) : FirClas
|
||||
//current symbol needs to be added, because basically it is the implementation
|
||||
cleared + symbol
|
||||
}
|
||||
symbol is FirIntersectionCallableSymbol && symbol.callableId.classId == containingClass.classId ->
|
||||
symbol is FirIntersectionCallableSymbol && !symbol.isTrivialIntersectionOverride() ->
|
||||
// We intentionally don't use getNonSubsumedOverriddenSymbols here, otherwise we'll get lots of new errors (compared to K1)
|
||||
// in cases where a Java superclass inherits multiple members with conflicting nullability annotations.
|
||||
symbol.intersections
|
||||
else -> return
|
||||
}
|
||||
@@ -203,12 +212,18 @@ sealed class FirImplementationMismatchChecker(mppKind: MppCheckerKind) : FirClas
|
||||
reporter.reportOn(containingClass.source, FirErrors.VAR_OVERRIDDEN_BY_VAL_BY_DELEGATION, symbol, overriddenVar, context)
|
||||
}
|
||||
|
||||
private fun FirTypeScope.collectFunctionsNamed(name: Name, containingClass: FirClass): List<FirNamedFunctionSymbol> {
|
||||
private fun FirTypeScope.collectFunctionsNamed(
|
||||
name: Name,
|
||||
containingClass: FirClass,
|
||||
context: CheckerContext,
|
||||
): List<FirNamedFunctionSymbol> {
|
||||
val allFunctions = mutableListOf<FirNamedFunctionSymbol>()
|
||||
|
||||
processFunctionsByName(name) { sym ->
|
||||
when (sym) {
|
||||
is FirIntersectionOverrideFunctionSymbol -> sym.intersections.mapNotNullTo(allFunctions) { it as? FirNamedFunctionSymbol }
|
||||
is FirIntersectionOverrideFunctionSymbol -> sym
|
||||
.getNonSubsumedOverriddenSymbols(context.session, context.scopeSession)
|
||||
.mapNotNullTo(allFunctions) { it as? FirNamedFunctionSymbol }
|
||||
else -> allFunctions.add(sym)
|
||||
}
|
||||
}
|
||||
@@ -225,7 +240,7 @@ sealed class FirImplementationMismatchChecker(mppKind: MppCheckerKind) : FirClas
|
||||
scope: FirTypeScope,
|
||||
name: Name
|
||||
) {
|
||||
val allFunctions = scope.collectFunctionsNamed(name, containingClass)
|
||||
val allFunctions = scope.collectFunctionsNamed(name, containingClass, context)
|
||||
|
||||
val sameArgumentGroups = allFunctions.groupBy { function ->
|
||||
buildList {
|
||||
|
||||
+2
-4
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.KtSourceElement
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.diagnostics.reportOn
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.MppCheckerKind
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.collectOverriddenFunctionsWhere
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.processOverriddenFunctions
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.unsubstitutedScope
|
||||
@@ -17,11 +16,10 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||
import org.jetbrains.kotlin.fir.containingClassLookupTag
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.getSingleMatchedExpectForActualOrNull
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes
|
||||
import org.jetbrains.kotlin.fir.isSubstitutionOverride
|
||||
import org.jetbrains.kotlin.fir.isSubstitutionOrIntersectionOverride
|
||||
import org.jetbrains.kotlin.fir.scopes.processAllFunctions
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
|
||||
@@ -66,7 +64,7 @@ sealed class FirMultipleDefaultsInheritedFromSupertypesChecker(mppKind: MppCheck
|
||||
// default values of actual functions are located in corresponding expect functions
|
||||
val overriddenWithDefaults = overridden.getSingleMatchedExpectForActualOrNull() as? FirNamedFunctionSymbol ?: overridden
|
||||
// Substitution overrides copy default values from originals
|
||||
if (!overriddenWithDefaults.isSubstitutionOverride && overriddenWithDefaults.valueParameterSymbols.any { it.hasDefaultValue }) {
|
||||
if (!overriddenWithDefaults.isSubstitutionOrIntersectionOverride && overriddenWithDefaults.valueParameterSymbols.any { it.hasDefaultValue }) {
|
||||
overriddenFunctions += overriddenWithDefaults
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -78,7 +78,7 @@ sealed class FirNotImplementedOverrideChecker(mppKind: MppCheckerKind) : FirClas
|
||||
|
||||
fun collectSymbol(symbol: FirCallableSymbol<*>) {
|
||||
val delegatedWrapperData = symbol.delegatedWrapperData
|
||||
if (delegatedWrapperData != null) {
|
||||
if (delegatedWrapperData != null && symbol !is FirIntersectionCallableSymbol) {
|
||||
val directOverriddenMembersWithBaseScope = classScope
|
||||
.getDirectOverriddenMembersWithBaseScope(symbol)
|
||||
.filter { it.member != symbol }
|
||||
|
||||
@@ -9,7 +9,10 @@ import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.util.PrivateForInline
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isInline
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
||||
import org.jetbrains.kotlin.fir.resolve.scope
|
||||
import org.jetbrains.kotlin.fir.scopes.*
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectOrStaticData
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
@@ -19,6 +22,7 @@ import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.fir.types.coneTypeSafe
|
||||
import org.jetbrains.kotlin.fir.types.isNullableAny
|
||||
import org.jetbrains.kotlin.fir.types.toSymbol
|
||||
import org.jetbrains.kotlin.fir.unwrapSubstitutionOverrides
|
||||
import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||
|
||||
fun FirClass.constructors(session: FirSession): List<FirConstructorSymbol> {
|
||||
@@ -126,3 +130,72 @@ fun FirSimpleFunction.isEquals(session: FirSession): Boolean {
|
||||
val parameter = valueParameters.first()
|
||||
return parameter.returnTypeRef.coneType.fullyExpandedType(session).isNullableAny
|
||||
}
|
||||
|
||||
/**
|
||||
* An intersection override is trivial if one of the overridden symbols subsumes all others.
|
||||
*
|
||||
* @see org.jetbrains.kotlin.fir.scopes.impl.FirTypeIntersectionScopeContext.convertGroupedCallablesToIntersectionResults
|
||||
*/
|
||||
fun MemberWithBaseScope<FirCallableSymbol<*>>.isTrivialIntersection(): Boolean {
|
||||
return baseScope
|
||||
.getDirectOverriddenMembersWithBaseScope(member)
|
||||
.nonSubsumed()
|
||||
.mapTo(mutableSetOf()) { it.member.unwrapSubstitutionOverrides() }.size == 1
|
||||
}
|
||||
|
||||
fun FirIntersectionCallableSymbol.getNonSubsumedOverriddenSymbols(
|
||||
session: FirSession,
|
||||
scopeSession: ScopeSession,
|
||||
): List<FirCallableSymbol<*>> {
|
||||
require(this is FirCallableSymbol<*>)
|
||||
|
||||
val dispatchReceiverScope = dispatchReceiverScope(session, scopeSession)
|
||||
return MemberWithBaseScope(this, dispatchReceiverScope).getNonSubsumedOverriddenSymbols()
|
||||
}
|
||||
|
||||
fun MemberWithBaseScope<FirCallableSymbol<*>>.getNonSubsumedOverriddenSymbols(): List<FirCallableSymbol<*>> {
|
||||
return flattenIntersectionsRecursively()
|
||||
.nonSubsumed()
|
||||
.distinctBy { it.member.unwrapSubstitutionOverrides<FirCallableSymbol<*>>() }
|
||||
.map { it.member }
|
||||
}
|
||||
|
||||
fun FirCallableSymbol<*>.dispatchReceiverScope(session: FirSession, scopeSession: ScopeSession): FirTypeScope {
|
||||
val dispatchReceiverType = requireNotNull(dispatchReceiverType)
|
||||
return dispatchReceiverType.scope(
|
||||
session,
|
||||
scopeSession,
|
||||
CallableCopyTypeCalculator.DoNothing,
|
||||
FirResolvePhase.STATUS
|
||||
) ?: FirTypeScope.Empty
|
||||
}
|
||||
|
||||
fun MemberWithBaseScope<FirCallableSymbol<*>>.flattenIntersectionsRecursively(): List<MemberWithBaseScope<FirCallableSymbol<*>>> {
|
||||
if (member.origin != FirDeclarationOrigin.IntersectionOverride) return listOf(this)
|
||||
|
||||
return baseScope.getDirectOverriddenMembersWithBaseScope(member).flatMap { it.flattenIntersectionsRecursively() }
|
||||
}
|
||||
|
||||
/**
|
||||
* A callable declaration D [subsumes](https://kotlinlang.org/spec/inheritance.html#matching-and-subsumption-of-declarations)
|
||||
* a callable declaration B if D overrides B.
|
||||
*/
|
||||
fun Collection<MemberWithBaseScope<FirCallableSymbol<*>>>.nonSubsumed(): List<MemberWithBaseScope<FirCallableSymbol<*>>> {
|
||||
val baseMembers = mutableSetOf<FirCallableSymbol<*>>()
|
||||
for ((member, scope) in this) {
|
||||
val unwrapped = member.unwrapSubstitutionOverrides<FirCallableSymbol<*>>()
|
||||
val addIfDifferent = { it: FirCallableSymbol<*> ->
|
||||
val symbol = it.unwrapSubstitutionOverrides()
|
||||
if (symbol != unwrapped) {
|
||||
baseMembers += symbol
|
||||
}
|
||||
ProcessorAction.NEXT
|
||||
}
|
||||
if (member is FirNamedFunctionSymbol) {
|
||||
scope.processOverriddenFunctions(member, addIfDifferent)
|
||||
} else if (member is FirPropertySymbol) {
|
||||
scope.processOverriddenProperties(member, addIfDifferent)
|
||||
}
|
||||
}
|
||||
return filter { (member, _) -> member.unwrapSubstitutionOverrides<FirCallableSymbol<*>>() !in baseMembers }
|
||||
}
|
||||
+6
-33
@@ -10,9 +10,7 @@ import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.caches.*
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.modality
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.visibility
|
||||
@@ -159,8 +157,7 @@ class FirTypeIntersectionScopeContext(
|
||||
val groupWithInvisible =
|
||||
overrideService.extractBothWaysOverridable(allMembersWithScope.maxByVisibility(), allMembersWithScope, overrideChecker)
|
||||
val group = groupWithInvisible.filter { it.isVisible() }.ifEmpty { groupWithInvisible }
|
||||
val nonSubsumed = if (forClassUseSiteScope) group.nonSubsumed() else group
|
||||
val mostSpecific = overrideService.selectMostSpecificMembers(nonSubsumed, ReturnTypeCalculatorForFullBodyResolve.Default)
|
||||
val mostSpecific = overrideService.selectMostSpecificMembers(group, ReturnTypeCalculatorForFullBodyResolve.Default)
|
||||
val nonTrivial = if (forClassUseSiteScope) {
|
||||
// Create a non-trivial intersection override when the base methods come from different scopes,
|
||||
// even if one of them is more specific than the others, i.e. when there is more than one method that is not subsumed.
|
||||
@@ -169,15 +166,15 @@ class FirTypeIntersectionScopeContext(
|
||||
// It is also possible to have the opposite case (> 1 most specific member, but all members are from
|
||||
// the same base scope), but this means there are different instantiations of the same base class,
|
||||
// which should generally result in INCONSISTENT_TYPE_PARAMETER_VALUES errors.
|
||||
nonSubsumed.size > 1 &&
|
||||
nonSubsumed.mapTo(mutableSetOf()) { it.member.fir.unwrapSubstitutionOverrides().symbol }.size > 1
|
||||
group.size > 1 &&
|
||||
group.mapTo(mutableSetOf()) { it.member.fir.unwrapSubstitutionOverrides().symbol }.size > 1
|
||||
} else {
|
||||
// Create a non-trivial intersection override when return types should be intersected.
|
||||
mostSpecific.size > 1
|
||||
}
|
||||
if (nonTrivial) {
|
||||
// Only add non-subsumed members to list of overridden in intersection override.
|
||||
result += ResultOfIntersection.NonTrivial(this, mostSpecific, overriddenMembers = nonSubsumed, containingScope = null)
|
||||
result += ResultOfIntersection.NonTrivial(this, mostSpecific, overriddenMembers = group, containingScope = null)
|
||||
} else {
|
||||
val (member, containingScope) = mostSpecific.first()
|
||||
result += ResultOfIntersection.SingleMember(member, group, containingScope)
|
||||
@@ -207,7 +204,7 @@ class FirTypeIntersectionScopeContext(
|
||||
mostSpecific: List<MemberWithBaseScope<D>>,
|
||||
extractedOverrides: List<MemberWithBaseScope<D>>,
|
||||
): MemberWithBaseScope<FirCallableSymbol<*>> {
|
||||
val newModality = chooseIntersectionOverrideModality(extractedOverrides)
|
||||
val newModality = chooseIntersectionOverrideModality(extractedOverrides.flatMap { it.flattenIntersectionsRecursively() }.nonSubsumed())
|
||||
val newVisibility = chooseIntersectionVisibility(extractedOverrides)
|
||||
val mostSpecificSymbols = mostSpecific.map { it.member }
|
||||
val extractedOverridesSymbols = extractedOverrides.map { it.member }
|
||||
@@ -228,30 +225,6 @@ class FirTypeIntersectionScopeContext(
|
||||
}.withScope(key.baseScope)
|
||||
}
|
||||
|
||||
/**
|
||||
* A callable declaration D [subsumes](https://kotlinlang.org/spec/inheritance.html#matching-and-subsumption-of-declarations)
|
||||
* a callable declaration B if D overrides B.
|
||||
*/
|
||||
private fun <S : FirCallableSymbol<*>> List<MemberWithBaseScope<S>>.nonSubsumed(): List<MemberWithBaseScope<S>> {
|
||||
val baseMembers = mutableSetOf<FirCallableSymbol<*>>()
|
||||
for ((member, scope) in this) {
|
||||
val unwrapped = member.unwrapSubstitutionOverrides<FirCallableSymbol<*>>()
|
||||
val addIfDifferent = { it: FirCallableSymbol<*> ->
|
||||
val symbol = it.unwrapSubstitutionOverrides()
|
||||
if (symbol != unwrapped) {
|
||||
baseMembers += symbol
|
||||
}
|
||||
ProcessorAction.NEXT
|
||||
}
|
||||
if (member is FirNamedFunctionSymbol) {
|
||||
scope.processOverriddenFunctions(member, addIfDifferent)
|
||||
} else if (member is FirPropertySymbol) {
|
||||
scope.processOverriddenProperties(member, addIfDifferent)
|
||||
}
|
||||
}
|
||||
return filter { it.member.unwrapSubstitutionOverrides<FirCallableSymbol<*>>() !in baseMembers }
|
||||
}
|
||||
|
||||
private fun <S : FirCallableSymbol<*>> Collection<MemberWithBaseScope<S>>.maxByVisibility(): MemberWithBaseScope<S> {
|
||||
var member: MemberWithBaseScope<S>? = null
|
||||
for (candidate in this) {
|
||||
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
MODULE main
|
||||
CLASS A.class
|
||||
K1
|
||||
contains(I)Z [public, bridge]
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
contains(Ljava/lang/Integer;)Z [public, bridge]
|
||||
K1
|
||||
indexOf(I)I [public, bridge]
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
indexOf(Ljava/lang/Integer;)I [public, bridge]
|
||||
K1
|
||||
lastIndexOf(I)I [public, bridge]
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
lastIndexOf(Ljava/lang/Integer;)I [public, bridge]
|
||||
-1
@@ -1,5 +1,4 @@
|
||||
// WITH_STDLIB
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57300
|
||||
|
||||
abstract class A : AbstractMutableList<Int>()
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
MODULE main
|
||||
CLASS Test.class
|
||||
K1
|
||||
getOrDefault(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String; [public, final, bridge]
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getOrDefault(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; [public, bridge]
|
||||
K2
|
||||
---
|
||||
+1
-2
@@ -1,10 +1,9 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// IGNORE_BACKEND_K2: JVM_IR, JS_IR
|
||||
// FIR status: different structure of fake overrides. Fixed in the IR fake override builder.
|
||||
// IGNORE_BACKEND: ANDROID
|
||||
// ^ NSME: java.util.AbstractMap.remove
|
||||
// FULL_JDK
|
||||
// JVM_ABI_K1_K2_DIFF: KT-65095
|
||||
|
||||
class Test : Map<String, String>, java.util.AbstractMap<String, String>() {
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
MODULE main
|
||||
CLASS Test.class
|
||||
K1
|
||||
getOrDefault(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String; [public, final, bridge]
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getOrDefault(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; [public, bridge]
|
||||
K2
|
||||
---
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// IGNORE_BACKEND_K2: JVM_IR, JS_IR
|
||||
// FIR status: different structure of fake overrides. Fixed in the IR fake override builder.
|
||||
// IGNORE_BACKEND: ANDROID
|
||||
// ^ NSME: java.util.AbstractMap.remove
|
||||
// FULL_JDK
|
||||
// JVM_ABI_K1_K2_DIFF: KT-65095
|
||||
|
||||
interface MSS : Map<String, String>
|
||||
|
||||
class Test : MSS, java.util.AbstractMap<String, String>() {
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
MODULE main
|
||||
CLASS Test.class
|
||||
K1
|
||||
getOrDefault(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String; [public, final, bridge]
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getOrDefault(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; [public, bridge]
|
||||
K2
|
||||
---
|
||||
+1
-2
@@ -1,10 +1,9 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// IGNORE_BACKEND_K2: JVM_IR, JS_IR
|
||||
// FIR status: different structure of fake overrides. Fixed in the IR fake override builder.
|
||||
// IGNORE_BACKEND: ANDROID
|
||||
// ^ NSME: java.util.AbstractMap.remove
|
||||
// FULL_JDK
|
||||
// JVM_ABI_K1_K2_DIFF: KT-65095
|
||||
|
||||
// FILE: kt48945b.kt
|
||||
interface MSS : Map<String, String>
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
MODULE main
|
||||
CLASS Test.class
|
||||
K1
|
||||
getOrDefault(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String; [public, final, bridge]
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getOrDefault(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; [public, bridge]
|
||||
K2
|
||||
---
|
||||
+1
-2
@@ -1,10 +1,9 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// IGNORE_BACKEND_K2: JVM_IR, JS_IR
|
||||
// FIR status: different structure of fake overrides. Fixed in the IR fake override builder.
|
||||
// IGNORE_BACKEND: ANDROID
|
||||
// ^ NSME: java.util.AbstractMap.remove
|
||||
// FULL_JDK
|
||||
// JVM_ABI_K1_K2_DIFF: KT-65095
|
||||
|
||||
// FILE: kt48945b.kt
|
||||
interface MSS : Map<String, String>
|
||||
|
||||
-24
@@ -7,30 +7,6 @@ MODULE main
|
||||
public open
|
||||
K2
|
||||
public open operator
|
||||
K1
|
||||
contains(I)Z [public, bridge]
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
contains(Ljava/lang/Integer;)Z [public, bridge]
|
||||
K1
|
||||
indexOf(I)I [public, bridge]
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
indexOf(Ljava/lang/Integer;)I [public, bridge]
|
||||
K1
|
||||
lastIndexOf(I)I [public, bridge]
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
lastIndexOf(Ljava/lang/Integer;)I [public, bridge]
|
||||
CLASS D.class
|
||||
CLASS METADATA
|
||||
FUNCTION removeAt(I)Ljava/lang/Integer;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57300, KT-63857
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63857
|
||||
|
||||
// FILE: A.java
|
||||
abstract public class A extends B {
|
||||
|
||||
compiler/testData/codegen/box/functions/delegatedPropertyWithMultipleOverriddens_generics.fir.ir.txt
Vendored
+3
@@ -83,14 +83,17 @@ FILE fqName:<root> fileName:/delegatedPropertyWithMultipleOverriddens_generics.k
|
||||
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.MyList<E4 of <root>.MyMutableList>) returnType:E4 of <root>.MyMutableList [fake_override]
|
||||
overridden:
|
||||
public abstract fun foo (): E2 of <root>.MyList declared in <root>.MyList
|
||||
public abstract fun foo (): E3 of <root>.MyMutableCollection declared in <root>.MyMutableCollection
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MyList<E4 of <root>.MyMutableList>
|
||||
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT [fake_override,val]
|
||||
overridden:
|
||||
public abstract bar: E2 of <root>.MyList
|
||||
public abstract bar: E3 of <root>.MyMutableCollection
|
||||
FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:ABSTRACT <> ($this:<root>.MyList<E4 of <root>.MyMutableList>) returnType:E4 of <root>.MyMutableList [fake_override]
|
||||
correspondingProperty: PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT [fake_override,val]
|
||||
overridden:
|
||||
public abstract fun <get-bar> (): E2 of <root>.MyList declared in <root>.MyList
|
||||
public abstract fun <get-bar> (): E3 of <root>.MyMutableCollection declared in <root>.MyMutableCollection
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MyList<E4 of <root>.MyMutableList>
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
|
||||
Vendored
-2
@@ -1,7 +1,5 @@
|
||||
// ISSUE: KT-55828
|
||||
// DUMP_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: extra overridden symbols for declarations in MyMutableList.
|
||||
// ^ This is most likely not a problem, and IR dump can be changed once IR fake override generation is enabled by default.
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63828
|
||||
|
||||
|
||||
|
||||
+3
@@ -79,14 +79,17 @@ FILE fqName:<root> fileName:/delegatedPropertyWithMultipleOverriddens_noGenerics
|
||||
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.MyList) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public abstract fun foo (): kotlin.String declared in <root>.MyList
|
||||
public abstract fun foo (): kotlin.String declared in <root>.MyMutableCollection
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MyList
|
||||
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT [fake_override,val]
|
||||
overridden:
|
||||
public abstract bar: kotlin.String
|
||||
public abstract bar: kotlin.String
|
||||
FUN FAKE_OVERRIDE name:<get-bar> visibility:public modality:ABSTRACT <> ($this:<root>.MyList) returnType:kotlin.String [fake_override]
|
||||
correspondingProperty: PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT [fake_override,val]
|
||||
overridden:
|
||||
public abstract fun <get-bar> (): kotlin.String declared in <root>.MyList
|
||||
public abstract fun <get-bar> (): kotlin.String declared in <root>.MyMutableCollection
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MyList
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
|
||||
Vendored
-2
@@ -1,7 +1,5 @@
|
||||
// ISSUE: KT-55828
|
||||
// DUMP_IR
|
||||
// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION: extra overridden symbols for declarations in MyMutableList.
|
||||
// ^ This is most likely not a problem, and IR dump can be changed once IR fake override generation is enabled by default.
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63828
|
||||
|
||||
interface MyCollection {
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
MODULE main
|
||||
CLASS MyMap.class
|
||||
METHOD getOrDefault(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
|
||||
Annotation: method.invisibleAnnotations
|
||||
K1
|
||||
@Lkotlin/SinceKotlin;( version: 1.1 )
|
||||
K2
|
||||
---
|
||||
Annotation: method.invisibleAnnotations
|
||||
K1
|
||||
@Lkotlin/internal/PlatformDependent;
|
||||
K2
|
||||
---
|
||||
@@ -3,7 +3,6 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_STDLIB
|
||||
// FULL_JDK
|
||||
// JVM_ABI_K1_K2_DIFF: KT-62788
|
||||
|
||||
// FILE: main.kt
|
||||
var result = ""
|
||||
|
||||
-3
@@ -1,6 +1,3 @@
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57299 K2: VerifyError due to overriding final method `size` on a subclass of Collection and Set
|
||||
|
||||
abstract class AC<X> : Collection<X>
|
||||
|
||||
abstract class ASet<T> : AC<T>(), Set<T>
|
||||
|
||||
Vendored
-3
@@ -1,8 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57300 K2: subclass of MutableCollection with primitive element type has methods with boxed type
|
||||
|
||||
abstract class AIterD : AbstractIterator<Double>()
|
||||
|
||||
abstract class ACollD : AbstractCollection<Double>()
|
||||
|
||||
-4
@@ -1,9 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57300 K2: subclass of MutableCollection with primitive element type has methods with boxed type
|
||||
// (`containsValue(Ljava/lang/Double;)Z` instead of `containsValue(D)Z`)
|
||||
|
||||
abstract class AMapSD : AbstractMap<String, Double>()
|
||||
|
||||
abstract class AMMapSD : AbstractMutableMap<String, Double>()
|
||||
|
||||
Vendored
-3
@@ -1,8 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57300 K2: subclass of MutableCollection with primitive element type has methods with boxed type
|
||||
|
||||
abstract class AMListD : AbstractMutableList<Double>()
|
||||
|
||||
abstract class AMListI : AbstractMutableList<Int>()
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
interface SupervisorApiCallContextImpl : SupervisorApiCallDbContext, TxExecutor
|
||||
|
||||
interface SupervisorApiCallDbContext : TxExecutor, DbContextOwner
|
||||
|
||||
interface DbContextOwner : TxExecutor {
|
||||
override fun foo(p: Int) {}
|
||||
}
|
||||
|
||||
interface TxExecutor {
|
||||
fun foo(p: Int = 1)
|
||||
}
|
||||
+1
-1
@@ -12,7 +12,7 @@ abstract class Derived : Base {
|
||||
class InterfaceThenClass : Base, Derived() {}
|
||||
|
||||
fun test_1(x: InterfaceThenClass, s: String?) {
|
||||
x.delete(<!ARGUMENT_TYPE_MISMATCH!>s<!>)
|
||||
x.delete(s)
|
||||
}
|
||||
|
||||
class ClassThenInterface : Derived(), Base {}
|
||||
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
// We inherit getReturnType
|
||||
// from CallableDescriptor with return type String? and
|
||||
// from ClassConstructorDescriptorImpl with return type String
|
||||
// but because ClassConstructorDescriptorImpl.getReturnType subsumes CallableDescriptor.getReturnType, we don't report RETURN_TYPE_MISMATCH_ON_INHERITANCE.
|
||||
class DeserializedClassConstructorDescriptor : CallableDescriptor, ClassConstructorDescriptorImpl()
|
||||
|
||||
// FILE: ClassConstructorDescriptorImpl.java
|
||||
|
||||
// IJ reports an inspection warning
|
||||
// "Non-annotated method 'getReturnType' from 'FunctionDescriptorImpl' implements non-null method from 'ConstructorDescriptor'"
|
||||
// which is the underlying issue.
|
||||
public class ClassConstructorDescriptorImpl extends FunctionDescriptorImpl implements ConstructorDescriptor {}
|
||||
|
||||
// FILE: FunctionDescriptorImpl.java
|
||||
public abstract class FunctionDescriptorImpl implements CallableDescriptor {
|
||||
@Override
|
||||
public String getReturnType() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: ConstructorDescriptor.java
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface ConstructorDescriptor extends CallableDescriptor {
|
||||
@NotNull
|
||||
@Override
|
||||
String getReturnType();
|
||||
}
|
||||
|
||||
// FILE: CallableDescriptor.java
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public interface CallableDescriptor {
|
||||
@Nullable
|
||||
String getReturnType();
|
||||
}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
// FILE: VertLikeTable.java
|
||||
public interface VertLikeTable extends BasicModMajorObject, BasicModTableOrView, BasicModIdentifiedElement
|
||||
// FILE: BasicModMajorObject.java
|
||||
public interface BasicModMajorObject extends BasicMajorObject, BasicModSchemaObject
|
||||
// FILE: BasicMajorObject.java
|
||||
public interface BasicMajorObject extends BasicSchemaObject, DasSchemaChild
|
||||
// FILE: BasicSchemaObject.java
|
||||
public interface BasicSchemaObject extends BasicNamedElement
|
||||
// FILE: BasicNamedElement.java
|
||||
public interface BasicNamedElement extends BasicElement {
|
||||
@Override
|
||||
void foo();
|
||||
}
|
||||
// FILE: BasicElement.java
|
||||
public interface BasicElement extends BasicMixinElement
|
||||
// FILE: BasicMixinElement.java
|
||||
public interface BasicMixinElement extends DasObject
|
||||
// FILE: DasObject.java
|
||||
public interface DasObject {
|
||||
default void foo() {}
|
||||
}
|
||||
// FILE: DasSchemaChild.java
|
||||
public interface DasSchemaChild extends DasObject
|
||||
// FILE: BasicModSchemaObject.java
|
||||
public interface BasicModSchemaObject extends BasicSchemaObject, BasicModNamedElement
|
||||
// FILE: BasicModNamedElement.java
|
||||
public interface BasicModNamedElement extends BasicNamedElement, BasicModElement
|
||||
// FILE: BasicModElement.java
|
||||
public interface BasicModElement extends BasicElement, BasicModMixinElement
|
||||
// FILE: BasicModMixinElement.java
|
||||
public interface BasicModMixinElement extends BasicMixinElement
|
||||
// FILE: BasicModTableOrView.java
|
||||
public interface BasicModTableOrView extends BasicTableOrView, BasicModLikeTable
|
||||
// FILE: BasicTableOrView.java
|
||||
public interface BasicTableOrView extends BasicLikeTable, BasicMixinTableOrView
|
||||
// FILE: BasicLikeTable.java
|
||||
public interface BasicLikeTable extends BasicNamedElement
|
||||
// FILE: BasicMixinTableOrView.java
|
||||
public interface BasicMixinTableOrView extends DasTable
|
||||
// FILE: DasTable.java
|
||||
public interface DasTable extends DasSchemaChild
|
||||
// FILE: BasicModLikeTable.java
|
||||
public interface BasicModLikeTable extends BasicLikeTable, BasicModNamedElement
|
||||
// FILE: BasicModIdentifiedElement.java
|
||||
public interface BasicModIdentifiedElement extends BasicIdentifiedElement, BasicModElement
|
||||
// FILE: BasicIdentifiedElement.java
|
||||
public interface BasicIdentifiedElement extends BasicElement
|
||||
|
||||
// FILE: test.kt
|
||||
fun foo(t: VertLikeTable) {
|
||||
t.foo()
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
abstract class C<T, ModelPropertyT : ModelListPropertyCore<T>>() :
|
||||
A<ModelPropertyT, T>(),
|
||||
I<List<T>>
|
||||
|
||||
abstract class A<out ModelPropertyT : ModelPropertyCore<*>, T> {
|
||||
abstract val property: ModelPropertyT
|
||||
}
|
||||
|
||||
interface I<out T> {
|
||||
val property: ModelPropertyCore<out T>
|
||||
}
|
||||
|
||||
interface ModelListPropertyCore<T> : ModelPropertyCore<List<T>>
|
||||
interface ModelPropertyCore<T>
|
||||
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
interface UAnnotationEx : UAnnotation, UAnchorOwner
|
||||
interface UAnchorOwner : UElement
|
||||
interface UElement {
|
||||
val psi: PsiElement?
|
||||
|
||||
val javaPsi: PsiElement?
|
||||
get() = psi
|
||||
}
|
||||
interface UAnnotation : UElement {
|
||||
override val javaPsi: PsiAnnotation?
|
||||
}
|
||||
|
||||
interface PsiElement
|
||||
interface PsiAnnotation : PsiElement
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
// inherits accept from FirDeclarationStatusImpl and FirResolvedDeclarationStatus
|
||||
class FirResolvedDeclarationStatusImpl : FirDeclarationStatusImpl(), FirResolvedDeclarationStatus
|
||||
|
||||
// inherits accept from FirElement and FirDeclarationStatus
|
||||
open class FirDeclarationStatusImpl : FirPureAbstractElement(), FirDeclarationStatus
|
||||
|
||||
abstract class FirPureAbstractElement : FirElement
|
||||
|
||||
interface FirResolvedDeclarationStatus : FirDeclarationStatus {
|
||||
override fun accept() {}
|
||||
}
|
||||
|
||||
interface FirDeclarationStatus : FirElement {
|
||||
override fun accept() {}
|
||||
}
|
||||
|
||||
interface FirElement {
|
||||
fun accept() {}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
class KtFirPsiJavaClassSymbol : KtFirNamedClassOrObjectSymbolBase(), KtFirPsiSymbol<String, String>
|
||||
open class KtFirNamedClassOrObjectSymbolBase : KtNamedClassOrObjectSymbol(), KtFirSymbol<String>
|
||||
abstract class KtNamedClassOrObjectSymbol : KtLifetimeOwner
|
||||
|
||||
interface KtFirPsiSymbol<P, S> : KtFirSymbol<S>
|
||||
|
||||
interface KtLifetimeOwner {
|
||||
val token: String
|
||||
}
|
||||
|
||||
interface KtSymbol : KtLifetimeOwner
|
||||
|
||||
interface KtFirSymbol<out S> : KtSymbol, KtLifetimeOwner {
|
||||
override val token: String get() = ""
|
||||
}
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
// !CHECK_TYPE
|
||||
// FILE: PythonRunParams.java
|
||||
import java.util.Map;
|
||||
|
||||
public interface PythonRunParams {
|
||||
Map<String, String> fetchEnvs();
|
||||
}
|
||||
|
||||
// FILE: AbstractPythonRunConfiguration.java
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class AbstractPythonRunConfiguration<T> implements PythonRunParams {
|
||||
public Map<String, String> fetchEnvs() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// FILE: PythonRunConfiguration.java
|
||||
public class PythonRunConfiguration extends AbstractPythonRunConfiguration implements PythonRunParams {}
|
||||
|
||||
// FILE: ProjectMain.kt
|
||||
|
||||
fun getRunCommandLine(configuration: PythonRunConfiguration) {
|
||||
fun foo(envs: Map<String, String>) {}
|
||||
checkSubtype<Map<String, String>>(<!ARGUMENT_TYPE_MISMATCH!>configuration.fetchEnvs()<!>)
|
||||
checkSubtype<Map<*, *>>(configuration.fetchEnvs())
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !CHECK_TYPE
|
||||
// FILE: PythonRunParams.java
|
||||
import java.util.Map;
|
||||
|
||||
+2
-2
@@ -27,8 +27,8 @@ fun foo() {
|
||||
x.add(bar())
|
||||
x.add("")
|
||||
|
||||
x[0] = null
|
||||
x[0] = bar()
|
||||
x[0] = <!NULL_FOR_NONNULL_TYPE!>null<!>
|
||||
x[0] = <!ARGUMENT_TYPE_MISMATCH!>bar()<!>
|
||||
x[0] = ""
|
||||
|
||||
val b1: MutableList<String?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
|
||||
|
||||
@@ -527,19 +527,19 @@ FILE fqName:<root> fileName:/enumClassModality.kt
|
||||
public abstract fun foo (): kotlin.Unit declared in <root>.TestAbstractEnum2
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.TestAbstractEnum2.X1
|
||||
BLOCK_BODY
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.TestAbstractEnum2>, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:FINAL <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public final fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.TestAbstractEnum2
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.TestAbstractEnum2>
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.TestAbstractEnum2>) returnType:kotlin.Int [fake_override]
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:FINAL <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public final fun hashCode (): kotlin.Int declared in <root>.TestAbstractEnum2
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.TestAbstractEnum2>
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Enum<<root>.TestAbstractEnum2>) returnType:kotlin.String [fake_override]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in <root>.TestAbstractEnum2
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.TestAbstractEnum2>
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:compareTo visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.TestAbstractEnum2>, other:<root>.TestAbstractEnum2) returnType:kotlin.Int [fake_override,operator]
|
||||
overridden:
|
||||
public final fun compareTo (other: <root>.TestAbstractEnum2): kotlin.Int declared in <root>.TestAbstractEnum2
|
||||
@@ -576,19 +576,22 @@ FILE fqName:<root> fileName:/enumClassModality.kt
|
||||
overridden:
|
||||
public abstract fun foo (): kotlin.Unit declared in <root>.IFoo
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.IFoo
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.TestAbstractEnum2>, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:FINAL <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.IFoo
|
||||
public final fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Enum
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.TestAbstractEnum2>
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.TestAbstractEnum2>) returnType:kotlin.Int [fake_override]
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:FINAL <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in <root>.IFoo
|
||||
public final fun hashCode (): kotlin.Int declared in kotlin.Enum
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.TestAbstractEnum2>
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Enum<<root>.TestAbstractEnum2>) returnType:kotlin.String [fake_override]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in <root>.IFoo
|
||||
public open fun toString (): kotlin.String declared in kotlin.Enum
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.TestAbstractEnum2>
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:compareTo visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.TestAbstractEnum2>, other:<root>.TestAbstractEnum2) returnType:kotlin.Int [fake_override,operator]
|
||||
overridden:
|
||||
public final fun compareTo (other: E of kotlin.Enum): kotlin.Int declared in kotlin.Enum
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// KT-64271, KT-64382
|
||||
// IGNORE_BACKEND_K2: NATIVE, WASM, JS_IR, JS_IR_ES6
|
||||
|
||||
enum class TestFinalEnum1 {
|
||||
X1
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// FIR_IDENTICAL
|
||||
// KT-64271
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
|
||||
open class Base {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
|
||||
@@ -20,30 +20,30 @@ FILE fqName:<root> fileName:/AbstractMutableMap.kt
|
||||
CONST Null type=kotlin.Nothing? value=null
|
||||
PROPERTY name:entries visibility:public modality:OPEN [val]
|
||||
overridden:
|
||||
public abstract entries: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableMap.MutableEntry<@[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?, @[FlexibleNullability] V of kotlin.collections.AbstractMutableMap?>?>?
|
||||
public abstract entries: kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<K of kotlin.collections.AbstractMutableMap, V of kotlin.collections.AbstractMutableMap>>
|
||||
FUN name:<get-entries> visibility:public modality:OPEN <> ($this:<root>.MyMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<K of <root>.MyMap, V of <root>.MyMap>>
|
||||
correspondingProperty: PROPERTY name:entries visibility:public modality:OPEN [val]
|
||||
overridden:
|
||||
public abstract fun <get-entries> (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableMap.MutableEntry<@[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?, @[FlexibleNullability] V of kotlin.collections.AbstractMutableMap?>?>? declared in kotlin.collections.AbstractMutableMap
|
||||
public abstract fun <get-entries> (): kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<K of kotlin.collections.AbstractMutableMap, V of kotlin.collections.AbstractMutableMap>> declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MyMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-entries> (): kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<K of <root>.MyMap, V of <root>.MyMap>> declared in <root>.MyMap'
|
||||
CALL 'public final fun mutableSetOf <T> (): kotlin.collections.MutableSet<T of kotlin.collections.mutableSetOf> declared in kotlin.collections' type=kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<K of <root>.MyMap, V of <root>.MyMap>> origin=null
|
||||
<T>: kotlin.collections.MutableMap.MutableEntry<K of <root>.MyMap, V of <root>.MyMap>
|
||||
FUN FAKE_OVERRIDE name:clear visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:kotlin.Unit [fake_override]
|
||||
FUN FAKE_OVERRIDE name:clear visibility:public modality:OPEN <> ($this:kotlin.collections.MutableMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:kotlin.Unit [fake_override]
|
||||
overridden:
|
||||
public open fun clear (): kotlin.Unit declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
FUN FAKE_OVERRIDE name:putAll visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>, p0:@[EnhancedNullability] kotlin.collections.Map<out @[FlexibleNullability] K of <root>.MyMap?, @[FlexibleNullability] V of <root>.MyMap?>) returnType:kotlin.Unit [fake_override]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
FUN FAKE_OVERRIDE name:putAll visibility:public modality:OPEN <> ($this:kotlin.collections.MutableMap<K of <root>.MyMap, V of <root>.MyMap>, from:kotlin.collections.Map<out K of <root>.MyMap, V of <root>.MyMap>) returnType:kotlin.Unit [fake_override]
|
||||
overridden:
|
||||
public open fun putAll (p0: @[EnhancedNullability] kotlin.collections.Map<out @[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?, out @[FlexibleNullability] V of kotlin.collections.AbstractMutableMap?>): kotlin.Unit declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] kotlin.collections.Map<out @[FlexibleNullability] K of <root>.MyMap?, @[FlexibleNullability] V of <root>.MyMap?>
|
||||
FUN FAKE_OVERRIDE name:remove visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>, p0:@[FlexibleNullability] K of <root>.MyMap?) returnType:V of <root>.MyMap? [fake_override]
|
||||
public open fun putAll (from: kotlin.collections.Map<out K of kotlin.collections.AbstractMutableMap, V of kotlin.collections.AbstractMutableMap>): kotlin.Unit declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
VALUE_PARAMETER name:from index:0 type:kotlin.collections.Map<out K of <root>.MyMap, V of <root>.MyMap>
|
||||
FUN FAKE_OVERRIDE name:remove visibility:public modality:OPEN <> ($this:kotlin.collections.MutableMap<K of <root>.MyMap, V of <root>.MyMap>, key:K of <root>.MyMap) returnType:V of <root>.MyMap? [fake_override]
|
||||
overridden:
|
||||
public open fun remove (p0: @[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?): V of kotlin.collections.AbstractMutableMap? declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] K of <root>.MyMap?
|
||||
public open fun remove (key: K of kotlin.collections.AbstractMutableMap): V of kotlin.collections.AbstractMutableMap? declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
VALUE_PARAMETER name:key index:0 type:K of <root>.MyMap
|
||||
FUN FAKE_OVERRIDE name:remove visibility:public modality:OPEN <> ($this:kotlin.collections.MutableMap<K of <root>.MyMap, V of <root>.MyMap>, key:K of <root>.MyMap, value:V of <root>.MyMap) returnType:kotlin.Boolean [fake_override]
|
||||
annotations:
|
||||
SinceKotlin(version = "1.1")
|
||||
@@ -55,47 +55,47 @@ FILE fqName:<root> fileName:/AbstractMutableMap.kt
|
||||
VALUE_PARAMETER name:value index:1 type:V of <root>.MyMap
|
||||
PROPERTY FAKE_OVERRIDE name:keys visibility:public modality:OPEN [fake_override,val]
|
||||
overridden:
|
||||
public open keys: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?>?
|
||||
FUN FAKE_OVERRIDE name:<get-keys> visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[FlexibleNullability] K of <root>.MyMap?>? [fake_override]
|
||||
public open keys: kotlin.collections.MutableSet<K of kotlin.collections.AbstractMutableMap>
|
||||
FUN FAKE_OVERRIDE name:<get-keys> visibility:public modality:OPEN <> ($this:kotlin.collections.MutableMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:kotlin.collections.MutableSet<K of <root>.MyMap> [fake_override]
|
||||
correspondingProperty: PROPERTY FAKE_OVERRIDE name:keys visibility:public modality:OPEN [fake_override,val]
|
||||
overridden:
|
||||
public open fun <get-keys> (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?>? declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
public open fun <get-keys> (): kotlin.collections.MutableSet<K of kotlin.collections.AbstractMutableMap> declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
PROPERTY FAKE_OVERRIDE name:values visibility:public modality:OPEN [fake_override,val]
|
||||
overridden:
|
||||
public open values: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[FlexibleNullability] V of kotlin.collections.AbstractMutableMap?>?
|
||||
FUN FAKE_OVERRIDE name:<get-values> visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[FlexibleNullability] V of <root>.MyMap?>? [fake_override]
|
||||
public open values: kotlin.collections.MutableCollection<V of kotlin.collections.AbstractMutableMap>
|
||||
FUN FAKE_OVERRIDE name:<get-values> visibility:public modality:OPEN <> ($this:kotlin.collections.MutableMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:kotlin.collections.MutableCollection<V of <root>.MyMap> [fake_override]
|
||||
correspondingProperty: PROPERTY FAKE_OVERRIDE name:values visibility:public modality:OPEN [fake_override,val]
|
||||
overridden:
|
||||
public open fun <get-values> (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[FlexibleNullability] V of kotlin.collections.AbstractMutableMap?>? declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
public open fun <get-values> (): kotlin.collections.MutableCollection<V of kotlin.collections.AbstractMutableMap> declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
||||
overridden:
|
||||
public open size: kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:<get-size> visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:kotlin.Int [fake_override]
|
||||
FUN FAKE_OVERRIDE name:<get-size> visibility:public modality:OPEN <> ($this:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>) returnType:kotlin.Int [fake_override]
|
||||
correspondingProperty: PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
||||
overridden:
|
||||
public open fun <get-size> (): kotlin.Int declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:kotlin.Boolean [fake_override]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>
|
||||
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:OPEN <> ($this:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>) returnType:kotlin.Boolean [fake_override]
|
||||
overridden:
|
||||
public open fun isEmpty (): kotlin.Boolean declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
FUN FAKE_OVERRIDE name:containsKey visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>, p0:@[FlexibleNullability] K of <root>.MyMap?) returnType:kotlin.Boolean [fake_override]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>
|
||||
FUN FAKE_OVERRIDE name:containsKey visibility:public modality:OPEN <> ($this:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>, key:K of <root>.MyMap) returnType:kotlin.Boolean [fake_override]
|
||||
overridden:
|
||||
public open fun containsKey (p0: @[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?): kotlin.Boolean declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] K of <root>.MyMap?
|
||||
FUN FAKE_OVERRIDE name:containsValue visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>, p0:@[FlexibleNullability] V of <root>.MyMap?) returnType:kotlin.Boolean [fake_override]
|
||||
public open fun containsKey (key: K of kotlin.collections.AbstractMutableMap): kotlin.Boolean declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>
|
||||
VALUE_PARAMETER name:key index:0 type:K of <root>.MyMap
|
||||
FUN FAKE_OVERRIDE name:containsValue visibility:public modality:OPEN <> ($this:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>, value:V of <root>.MyMap) returnType:kotlin.Boolean [fake_override]
|
||||
overridden:
|
||||
public open fun containsValue (p0: @[FlexibleNullability] V of kotlin.collections.AbstractMutableMap?): kotlin.Boolean declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] V of <root>.MyMap?
|
||||
FUN FAKE_OVERRIDE name:get visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>, p0:@[FlexibleNullability] K of <root>.MyMap?) returnType:V of <root>.MyMap? [fake_override,operator]
|
||||
public open fun containsValue (value: V of kotlin.collections.AbstractMutableMap): kotlin.Boolean declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>
|
||||
VALUE_PARAMETER name:value index:0 type:V of <root>.MyMap
|
||||
FUN FAKE_OVERRIDE name:get visibility:public modality:OPEN <> ($this:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>, key:K of <root>.MyMap) returnType:V of <root>.MyMap? [fake_override,operator]
|
||||
overridden:
|
||||
public open fun get (p0: @[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?): V of kotlin.collections.AbstractMutableMap? declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] K of <root>.MyMap?
|
||||
public open fun get (key: K of kotlin.collections.AbstractMutableMap): V of kotlin.collections.AbstractMutableMap? declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>
|
||||
VALUE_PARAMETER name:key index:0 type:K of <root>.MyMap
|
||||
FUN FAKE_OVERRIDE name:getOrDefault visibility:public modality:OPEN <> ($this:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>, key:K of <root>.MyMap, defaultValue:V of <root>.MyMap) returnType:V of <root>.MyMap [fake_override]
|
||||
annotations:
|
||||
SinceKotlin(version = "1.1")
|
||||
@@ -159,19 +159,19 @@ FILE fqName:<root> fileName:/AbstractMutableMap.kt
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] K of <root>.MyMap
|
||||
VALUE_PARAMETER name:p1 index:1 type:@[EnhancedNullability] {V of <root>.MyMap & Any}
|
||||
VALUE_PARAMETER name:p2 index:2 type:@[EnhancedNullability] java.util.function.BiFunction<in V of <root>.MyMap, in V of <root>.MyMap, out V of <root>.MyMap?>
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>, p0:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (p0: kotlin.Any?): kotlin.Boolean declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:kotlin.Int [fake_override]
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:@[EnhancedNullability] kotlin.String [fake_override]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): @[EnhancedNullability] kotlin.String declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
public open fun toString (): kotlin.String declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:clone visibility:protected/*protected and package*/ modality:OPEN <> ($this:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:@[FlexibleNullability] kotlin.Any? [fake_override]
|
||||
overridden:
|
||||
protected/*protected and package*/ open fun clone (): @[FlexibleNullability] kotlin.Any? declared in kotlin.collections.AbstractMutableMap
|
||||
|
||||
+36
-37
@@ -41,22 +41,22 @@ class MyMap<K : Any, V : Any> : AbstractMutableMap<K, V> {
|
||||
/* fake */ override fun computeIfPresent(p0: @EnhancedNullability K, p1: @EnhancedNullability BiFunction<in @EnhancedNullability K, in V, out V?>): V?
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: MyMap#containsKey(1:0?){}kotlin.Boolean
|
||||
// Public signature: /MyMap.containsKey|5388260987070917879[0]
|
||||
// Public signature debug description: containsKey(1:0?){}kotlin.Boolean
|
||||
/* fake */ override fun containsKey(p0: K?): Boolean
|
||||
// Mangled name: MyMap#containsKey(1:0){}kotlin.Boolean
|
||||
// Public signature: /MyMap.containsKey|-2697616884574929105[0]
|
||||
// Public signature debug description: containsKey(1:0){}kotlin.Boolean
|
||||
/* fake */ override fun containsKey(key: K): Boolean
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: MyMap#containsValue(1:1?){}kotlin.Boolean
|
||||
// Public signature: /MyMap.containsValue|6075307672600079396[0]
|
||||
// Public signature debug description: containsValue(1:1?){}kotlin.Boolean
|
||||
/* fake */ override fun containsValue(p0: V?): Boolean
|
||||
// Mangled name: MyMap#containsValue(1:1){}kotlin.Boolean
|
||||
// Public signature: /MyMap.containsValue|4814293423579408279[0]
|
||||
// Public signature debug description: containsValue(1:1){}kotlin.Boolean
|
||||
/* fake */ override fun containsValue(value: V): Boolean
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: MyMap#equals(kotlin.Any?){}kotlin.Boolean
|
||||
// Public signature: /MyMap.equals|722809408929142791[0]
|
||||
// Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean
|
||||
/* fake */ override operator fun equals(p0: Any?): Boolean
|
||||
/* fake */ override operator fun equals(other: Any?): Boolean
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: MyMap#forEach(java.util.function.BiConsumer<in|1:0{EnhancedNullability},in|1:1{EnhancedNullability}>{EnhancedNullability}){}
|
||||
@@ -65,10 +65,10 @@ class MyMap<K : Any, V : Any> : AbstractMutableMap<K, V> {
|
||||
/* fake */ override fun forEach(p0: @EnhancedNullability BiConsumer<in @EnhancedNullability K, in @EnhancedNullability V>): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: MyMap#get(1:0?){}1:1?
|
||||
// Public signature: /MyMap.get|-6772263552617817959[0]
|
||||
// Public signature debug description: get(1:0?){}1:1?
|
||||
/* fake */ override operator fun get(p0: K?): V?
|
||||
// Mangled name: MyMap#get(1:0){}1:1?
|
||||
// Public signature: /MyMap.get|-2177239518810968262[0]
|
||||
// Public signature debug description: get(1:0){}1:1?
|
||||
/* fake */ override operator fun get(key: K): V?
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: MyMap#hashCode(){}kotlin.Int
|
||||
@@ -91,12 +91,10 @@ class MyMap<K : Any, V : Any> : AbstractMutableMap<K, V> {
|
||||
/* fake */ override fun merge(p0: @EnhancedNullability K, p1: @EnhancedNullability (V & Any), p2: @EnhancedNullability BiFunction<in V, in V, out V?>): V?
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: MyMap#putAll(kotlin.collections.Map<out|1:0?,1:1?>{EnhancedNullability}){}
|
||||
// Mangled name for the signature by IR: putAll(kotlin.collections.Map<out|1:0?,1:1?>{EnhancedNullability}){}
|
||||
// Mangled name for the signature by Frontend: putAll(kotlin.collections.Map<out|1:0?,out|1:1?>{EnhancedNullability}){}
|
||||
// Public signature: /MyMap.putAll|8252374948943605914[0]
|
||||
// Public signature debug description: putAll(kotlin.collections.Map<out|1:0?,1:1?>{EnhancedNullability}){}
|
||||
/* fake */ override fun putAll(p0: @EnhancedNullability Map<out K?, V?>): Unit
|
||||
// Mangled name: MyMap#putAll(kotlin.collections.Map<out|1:0,1:1>){}
|
||||
// Public signature: /MyMap.putAll|3806055228188180795[0]
|
||||
// Public signature debug description: putAll(kotlin.collections.Map<out|1:0,1:1>){}
|
||||
/* fake */ override fun putAll(from: Map<out K, V>): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: MyMap#putIfAbsent(1:0{EnhancedNullability};1:1{EnhancedNullability}){}1:1?
|
||||
@@ -105,10 +103,10 @@ class MyMap<K : Any, V : Any> : AbstractMutableMap<K, V> {
|
||||
/* fake */ override fun putIfAbsent(p0: @EnhancedNullability K, p1: @EnhancedNullability V): V?
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: MyMap#remove(1:0?){}1:1?
|
||||
// Public signature: /MyMap.remove|-6409265674850759324[0]
|
||||
// Public signature debug description: remove(1:0?){}1:1?
|
||||
/* fake */ override fun remove(p0: K?): V?
|
||||
// Mangled name: MyMap#remove(1:0){}1:1?
|
||||
// Public signature: /MyMap.remove|-2166109024517733367[0]
|
||||
// Public signature debug description: remove(1:0){}1:1?
|
||||
/* fake */ override fun remove(key: K): V?
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: MyMap#replace(1:0{EnhancedNullability};1:1{EnhancedNullability}){}1:1?
|
||||
@@ -129,10 +127,10 @@ class MyMap<K : Any, V : Any> : AbstractMutableMap<K, V> {
|
||||
/* fake */ override fun replaceAll(p0: @EnhancedNullability BiFunction<in @EnhancedNullability K, in @EnhancedNullability V, out @EnhancedNullability V>): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: MyMap#toString(){}kotlin.String{EnhancedNullability}
|
||||
// Public signature: /MyMap.toString|7581629773206850948[0]
|
||||
// Public signature debug description: toString(){}kotlin.String{EnhancedNullability}
|
||||
/* fake */ override fun toString(): @EnhancedNullability String
|
||||
// Mangled name: MyMap#toString(){}kotlin.String
|
||||
// Public signature: /MyMap.toString|6958853723545266802[0]
|
||||
// Public signature debug description: toString(){}kotlin.String
|
||||
/* fake */ override fun toString(): String
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: MyMap#put(1:0;1:1){}1:1?
|
||||
@@ -144,12 +142,12 @@ class MyMap<K : Any, V : Any> : AbstractMutableMap<K, V> {
|
||||
// Mangled name: MyMap{}keys
|
||||
// Public signature: /MyMap.keys|-1539062068328255324[0]
|
||||
// Public signature debug description: {}keys
|
||||
/* fake */ override val keys: MutableSet<K?>?
|
||||
/* fake */ override val keys: MutableSet<K>
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: MyMap#<get-keys>(){}kotlin.collections.MutableSet<1:0?>?
|
||||
// Public signature: /MyMap.keys.<get-keys>|-1655820107680360252[0]
|
||||
// Public signature debug description: <get-keys>(){}kotlin.collections.MutableSet<1:0?>?
|
||||
/* fake */ override get(): MutableSet<K?>?
|
||||
// Mangled name: MyMap#<get-keys>(){}kotlin.collections.MutableSet<1:0>
|
||||
// Public signature: /MyMap.keys.<get-keys>|7916886785914150473[0]
|
||||
// Public signature debug description: <get-keys>(){}kotlin.collections.MutableSet<1:0>
|
||||
/* fake */ override get(): MutableSet<K>
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: MyMap{}size
|
||||
@@ -166,12 +164,12 @@ class MyMap<K : Any, V : Any> : AbstractMutableMap<K, V> {
|
||||
// Mangled name: MyMap{}values
|
||||
// Public signature: /MyMap.values|-764749005844117249[0]
|
||||
// Public signature debug description: {}values
|
||||
/* fake */ override val values: MutableCollection<V?>?
|
||||
/* fake */ override val values: MutableCollection<V>
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: MyMap#<get-values>(){}kotlin.collections.MutableCollection<1:1?>?
|
||||
// Public signature: /MyMap.values.<get-values>|-600458440523652989[0]
|
||||
// Public signature debug description: <get-values>(){}kotlin.collections.MutableCollection<1:1?>?
|
||||
/* fake */ override get(): MutableCollection<V?>?
|
||||
// Mangled name: MyMap#<get-values>(){}kotlin.collections.MutableCollection<1:1>
|
||||
// Public signature: /MyMap.values.<get-values>|2480674037943213638[0]
|
||||
// Public signature debug description: <get-values>(){}kotlin.collections.MutableCollection<1:1>
|
||||
/* fake */ override get(): MutableCollection<V>
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: MyMap{}entries
|
||||
@@ -185,3 +183,4 @@ class MyMap<K : Any, V : Any> : AbstractMutableMap<K, V> {
|
||||
override get(): MutableSet<MutableEntry<K, V>>
|
||||
|
||||
}
|
||||
|
||||
|
||||
+84
-67
@@ -196,62 +196,74 @@ FILE fqName:<root> fileName:/MultiList.kt
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in java.util.ArrayList'
|
||||
<E>: <root>.Some<T of <root>.SomeList>
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:SomeList modality:OPEN visibility:public superTypes:[<root>.MyList<T of <root>.SomeList>; java.util.ArrayList<<root>.Some<T of <root>.SomeList>>]'
|
||||
FUN FAKE_OVERRIDE name:contains visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>, p0:@[EnhancedNullability] <root>.Some<T of <root>.SomeList>) returnType:kotlin.Boolean [fake_override,operator]
|
||||
FUN FAKE_OVERRIDE name:contains visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>, element:<root>.Some<T of <root>.SomeList>) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun contains (element: <root>.Some<T of <root>.MyList>): kotlin.Boolean declared in <root>.MyList
|
||||
public open fun contains (p0: @[EnhancedNullability] E of java.util.ArrayList): kotlin.Boolean declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] <root>.Some<T of <root>.SomeList>
|
||||
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:OPEN <> ($this:java.util.AbstractCollection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>, p0:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>) returnType:kotlin.Boolean [fake_override]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:element index:0 type:<root>.Some<T of <root>.SomeList>
|
||||
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>, elements:kotlin.collections.Collection<<root>.Some<T of <root>.SomeList>>) returnType:kotlin.Boolean [fake_override]
|
||||
overridden:
|
||||
public abstract fun containsAll (elements: kotlin.collections.Collection<<root>.Some<T of <root>.MyList>>): kotlin.Boolean declared in <root>.MyList
|
||||
public open fun containsAll (p0: kotlin.collections.Collection<@[FlexibleNullability] E of java.util.ArrayList?>): kotlin.Boolean declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractCollection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>
|
||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>
|
||||
FUN FAKE_OVERRIDE name:get visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>, p0:kotlin.Int) returnType:@[EnhancedNullability] <root>.Some<T of <root>.SomeList> [fake_override,operator]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<<root>.Some<T of <root>.SomeList>>
|
||||
FUN FAKE_OVERRIDE name:get visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>, index:kotlin.Int) returnType:<root>.Some<T of <root>.SomeList> [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun get (index: kotlin.Int): <root>.Some<T of <root>.MyList> declared in <root>.MyList
|
||||
public open fun get (p0: kotlin.Int): @[EnhancedNullability] E of java.util.ArrayList declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>, p0:@[EnhancedNullability] <root>.Some<T of <root>.SomeList>) returnType:kotlin.Int [fake_override]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:index index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>, element:<root>.Some<T of <root>.SomeList>) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public abstract fun indexOf (element: <root>.Some<T of <root>.MyList>): kotlin.Int declared in <root>.MyList
|
||||
public open fun indexOf (p0: @[EnhancedNullability] E of java.util.ArrayList): kotlin.Int declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] <root>.Some<T of <root>.SomeList>
|
||||
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>) returnType:kotlin.Boolean [fake_override]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:element index:0 type:<root>.Some<T of <root>.SomeList>
|
||||
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>) returnType:kotlin.Boolean [fake_override]
|
||||
overridden:
|
||||
public abstract fun isEmpty (): kotlin.Boolean declared in <root>.MyList
|
||||
public open fun isEmpty (): kotlin.Boolean declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||
FUN FAKE_OVERRIDE name:iterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>) returnType:@[EnhancedNullability] kotlin.collections.MutableIterator<@[EnhancedNullability] <root>.Some<T of <root>.SomeList>> [fake_override,operator]
|
||||
overridden:
|
||||
public abstract fun iterator (): kotlin.collections.Iterator<<root>.Some<T of <root>.MyList>> declared in <root>.MyList
|
||||
public open fun iterator (): @[EnhancedNullability] kotlin.collections.MutableIterator<@[EnhancedNullability] E of java.util.ArrayList> declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>, p0:@[EnhancedNullability] <root>.Some<T of <root>.SomeList>) returnType:kotlin.Int [fake_override]
|
||||
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>, element:<root>.Some<T of <root>.SomeList>) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public abstract fun lastIndexOf (element: <root>.Some<T of <root>.MyList>): kotlin.Int declared in <root>.MyList
|
||||
public open fun lastIndexOf (p0: @[EnhancedNullability] E of java.util.ArrayList): kotlin.Int declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] <root>.Some<T of <root>.SomeList>
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:element index:0 type:<root>.Some<T of <root>.SomeList>
|
||||
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>) returnType:@[EnhancedNullability] kotlin.collections.MutableListIterator<@[EnhancedNullability] <root>.Some<T of <root>.SomeList>> [fake_override]
|
||||
overridden:
|
||||
public abstract fun listIterator (): kotlin.collections.ListIterator<<root>.Some<T of <root>.MyList>> declared in <root>.MyList
|
||||
public open fun listIterator (): @[EnhancedNullability] kotlin.collections.MutableListIterator<@[EnhancedNullability] E of java.util.ArrayList> declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>, p0:kotlin.Int) returnType:@[EnhancedNullability] kotlin.collections.MutableListIterator<@[EnhancedNullability] <root>.Some<T of <root>.SomeList>> [fake_override]
|
||||
overridden:
|
||||
public abstract fun listIterator (index: kotlin.Int): kotlin.collections.ListIterator<<root>.Some<T of <root>.MyList>> declared in <root>.MyList
|
||||
public open fun listIterator (p0: kotlin.Int): @[EnhancedNullability] kotlin.collections.MutableListIterator<@[EnhancedNullability] E of java.util.ArrayList> declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:subList visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>, p0:kotlin.Int, p1:kotlin.Int) returnType:@[EnhancedNullability] kotlin.collections.MutableList<@[EnhancedNullability] <root>.Some<T of <root>.SomeList>> [fake_override]
|
||||
overridden:
|
||||
public abstract fun subList (fromIndex: kotlin.Int, toIndex: kotlin.Int): kotlin.collections.List<<root>.Some<T of <root>.MyList>> declared in <root>.MyList
|
||||
public open fun subList (p0: kotlin.Int, p1: kotlin.Int): @[EnhancedNullability] kotlin.collections.MutableList<@[EnhancedNullability] E of java.util.ArrayList> declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
|
||||
VALUE_PARAMETER name:p1 index:1 type:kotlin.Int
|
||||
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
||||
overridden:
|
||||
public abstract size: kotlin.Int
|
||||
public open size: kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:<get-size> visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>) returnType:kotlin.Int [fake_override]
|
||||
FUN FAKE_OVERRIDE name:<get-size> visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>) returnType:kotlin.Int [fake_override]
|
||||
correspondingProperty: PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
||||
overridden:
|
||||
public abstract fun <get-size> (): kotlin.Int declared in <root>.MyList
|
||||
public open fun <get-size> (): kotlin.Int declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||
FUN FAKE_OVERRIDE name:toArray visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>) returnType:@[FlexibleNullability] @[FlexibleArrayElementVariance] kotlin.Array<out @[FlexibleNullability] kotlin.Any?>? [fake_override]
|
||||
overridden:
|
||||
public open fun toArray (): @[FlexibleNullability] @[FlexibleArrayElementVariance] kotlin.Array<out @[FlexibleNullability] kotlin.Any?>? declared in java.util.ArrayList
|
||||
@@ -319,23 +331,27 @@ FILE fqName:<root> fileName:/MultiList.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
|
||||
VALUE_PARAMETER name:p1 index:1 type:@[EnhancedNullability] <root>.Some<T of <root>.SomeList>
|
||||
FUN FAKE_OVERRIDE name:spliterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>) returnType:@[EnhancedNullability] java.util.Spliterator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?> [fake_override]
|
||||
FUN FAKE_OVERRIDE name:spliterator visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>) returnType:@[EnhancedNullability] java.util.Spliterator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?> [fake_override]
|
||||
overridden:
|
||||
public open fun spliterator (): @[EnhancedNullability] java.util.Spliterator<@[FlexibleNullability] <root>.Some<T of <root>.MyList>?> declared in <root>.MyList
|
||||
public open fun spliterator (): @[EnhancedNullability] java.util.Spliterator<@[FlexibleNullability] E of java.util.ArrayList?> declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:java.util.AbstractList<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>, p0:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.MyList
|
||||
public open fun equals (p0: kotlin.Any?): kotlin.Boolean declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractList<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>
|
||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:java.util.AbstractList<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>) returnType:kotlin.Int [fake_override]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in <root>.MyList
|
||||
public open fun hashCode (): kotlin.Int declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractList<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:java.util.AbstractCollection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>) returnType:@[EnhancedNullability] kotlin.String [fake_override]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in <root>.MyList
|
||||
public open fun toString (): @[EnhancedNullability] kotlin.String declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractCollection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:removeIf visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>, p0:@[EnhancedNullability] java.util.function.Predicate<in @[EnhancedNullability] <root>.Some<T of <root>.SomeList>>) returnType:kotlin.Boolean [fake_override]
|
||||
overridden:
|
||||
public open fun removeIf (p0: @[EnhancedNullability] java.util.function.Predicate<in @[EnhancedNullability] E of java.util.ArrayList>): kotlin.Boolean declared in java.util.ArrayList
|
||||
@@ -349,10 +365,11 @@ FILE fqName:<root> fileName:/MultiList.kt
|
||||
overridden:
|
||||
public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] <root>.Some<T of <root>.MyList>> declared in <root>.MyList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<<root>.Some<T of <root>.SomeList>>
|
||||
FUN FAKE_OVERRIDE name:forEach visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>, p0:@[FlexibleNullability] java.util.function.Consumer<in @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>?) returnType:kotlin.Unit [fake_override]
|
||||
FUN FAKE_OVERRIDE name:forEach visibility:public modality:OPEN <> ($this:kotlin.collections.Iterable<<root>.Some<T of <root>.SomeList>>, p0:@[FlexibleNullability] java.util.function.Consumer<in @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>?) returnType:kotlin.Unit [fake_override]
|
||||
overridden:
|
||||
public open fun forEach (p0: @[FlexibleNullability] java.util.function.Consumer<in @[FlexibleNullability] <root>.Some<T of <root>.MyList>?>?): kotlin.Unit declared in <root>.MyList
|
||||
public open fun forEach (p0: @[FlexibleNullability] java.util.function.Consumer<in @[FlexibleNullability] E of java.util.ArrayList?>?): kotlin.Unit declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Iterable<<root>.Some<T of <root>.SomeList>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] java.util.function.Consumer<in @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>?
|
||||
FUN FAKE_OVERRIDE name:trimToSize visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>) returnType:kotlin.Unit [fake_override]
|
||||
overridden:
|
||||
@@ -385,39 +402,39 @@ FILE fqName:<root> fileName:/MultiList.kt
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.SomeList'
|
||||
<T>: kotlin.String
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:FinalList modality:FINAL visibility:public superTypes:[<root>.SomeList<kotlin.String>]'
|
||||
FUN FAKE_OVERRIDE name:contains visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>, p0:@[EnhancedNullability] <root>.Some<kotlin.String>) returnType:kotlin.Boolean [fake_override,operator]
|
||||
FUN FAKE_OVERRIDE name:contains visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<kotlin.String>>, element:<root>.Some<kotlin.String>) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun contains (p0: @[EnhancedNullability] <root>.Some<T of <root>.SomeList>): kotlin.Boolean declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<kotlin.String>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] <root>.Some<kotlin.String>
|
||||
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:OPEN <> ($this:java.util.AbstractCollection<@[FlexibleNullability] <root>.Some<kotlin.String>?>, p0:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<kotlin.String>?>) returnType:kotlin.Boolean [fake_override]
|
||||
public open fun contains (element: <root>.Some<T of <root>.SomeList>): kotlin.Boolean declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<kotlin.String>>
|
||||
VALUE_PARAMETER name:element index:0 type:<root>.Some<kotlin.String>
|
||||
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<kotlin.String>>, elements:kotlin.collections.Collection<<root>.Some<kotlin.String>>) returnType:kotlin.Boolean [fake_override]
|
||||
overridden:
|
||||
public open fun containsAll (p0: kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>): kotlin.Boolean declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractCollection<@[FlexibleNullability] <root>.Some<kotlin.String>?>
|
||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<kotlin.String>?>
|
||||
FUN FAKE_OVERRIDE name:get visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>, p0:kotlin.Int) returnType:@[EnhancedNullability] <root>.Some<kotlin.String> [fake_override,operator]
|
||||
public open fun containsAll (elements: kotlin.collections.Collection<<root>.Some<T of <root>.SomeList>>): kotlin.Boolean declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<kotlin.String>>
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<<root>.Some<kotlin.String>>
|
||||
FUN FAKE_OVERRIDE name:get visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<kotlin.String>>, index:kotlin.Int) returnType:<root>.Some<kotlin.String> [fake_override,operator]
|
||||
overridden:
|
||||
public open fun get (p0: kotlin.Int): @[EnhancedNullability] <root>.Some<T of <root>.SomeList> declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<kotlin.String>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>, p0:@[EnhancedNullability] <root>.Some<kotlin.String>) returnType:kotlin.Int [fake_override]
|
||||
public open fun get (index: kotlin.Int): <root>.Some<T of <root>.SomeList> declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<kotlin.String>>
|
||||
VALUE_PARAMETER name:index index:0 type:kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<kotlin.String>>, element:<root>.Some<kotlin.String>) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun indexOf (p0: @[EnhancedNullability] <root>.Some<T of <root>.SomeList>): kotlin.Int declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<kotlin.String>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] <root>.Some<kotlin.String>
|
||||
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>) returnType:kotlin.Boolean [fake_override]
|
||||
public open fun indexOf (element: <root>.Some<T of <root>.SomeList>): kotlin.Int declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<kotlin.String>>
|
||||
VALUE_PARAMETER name:element index:0 type:<root>.Some<kotlin.String>
|
||||
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<kotlin.String>>) returnType:kotlin.Boolean [fake_override]
|
||||
overridden:
|
||||
public open fun isEmpty (): kotlin.Boolean declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<kotlin.String>>
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<kotlin.String>>
|
||||
FUN FAKE_OVERRIDE name:iterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>) returnType:@[EnhancedNullability] kotlin.collections.MutableIterator<@[EnhancedNullability] <root>.Some<kotlin.String>> [fake_override,operator]
|
||||
overridden:
|
||||
public open fun iterator (): @[EnhancedNullability] kotlin.collections.MutableIterator<@[EnhancedNullability] <root>.Some<T of <root>.SomeList>> declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<kotlin.String>>
|
||||
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>, p0:@[EnhancedNullability] <root>.Some<kotlin.String>) returnType:kotlin.Int [fake_override]
|
||||
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<kotlin.String>>, element:<root>.Some<kotlin.String>) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun lastIndexOf (p0: @[EnhancedNullability] <root>.Some<T of <root>.SomeList>): kotlin.Int declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<kotlin.String>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] <root>.Some<kotlin.String>
|
||||
public open fun lastIndexOf (element: <root>.Some<T of <root>.SomeList>): kotlin.Int declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<kotlin.String>>
|
||||
VALUE_PARAMETER name:element index:0 type:<root>.Some<kotlin.String>
|
||||
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>) returnType:@[EnhancedNullability] kotlin.collections.MutableListIterator<@[EnhancedNullability] <root>.Some<kotlin.String>> [fake_override]
|
||||
overridden:
|
||||
public open fun listIterator (): @[EnhancedNullability] kotlin.collections.MutableListIterator<@[EnhancedNullability] <root>.Some<T of <root>.SomeList>> declared in <root>.SomeList
|
||||
@@ -436,11 +453,11 @@ FILE fqName:<root> fileName:/MultiList.kt
|
||||
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
||||
overridden:
|
||||
public open size: kotlin.Int
|
||||
FUN FAKE_OVERRIDE name:<get-size> visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>) returnType:kotlin.Int [fake_override]
|
||||
FUN FAKE_OVERRIDE name:<get-size> visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<kotlin.String>>) returnType:kotlin.Int [fake_override]
|
||||
correspondingProperty: PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
||||
overridden:
|
||||
public open fun <get-size> (): kotlin.Int declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<kotlin.String>>
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<kotlin.String>>
|
||||
FUN FAKE_OVERRIDE name:toArray visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>) returnType:@[FlexibleNullability] @[FlexibleArrayElementVariance] kotlin.Array<out @[FlexibleNullability] kotlin.Any?>? [fake_override]
|
||||
overridden:
|
||||
public open fun toArray (): @[FlexibleNullability] @[FlexibleArrayElementVariance] kotlin.Array<out @[FlexibleNullability] kotlin.Any?>? declared in <root>.SomeList
|
||||
@@ -508,23 +525,23 @@ FILE fqName:<root> fileName:/MultiList.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<kotlin.String>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
|
||||
VALUE_PARAMETER name:p1 index:1 type:@[EnhancedNullability] <root>.Some<kotlin.String>
|
||||
FUN FAKE_OVERRIDE name:spliterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>) returnType:@[EnhancedNullability] java.util.Spliterator<@[FlexibleNullability] <root>.Some<kotlin.String>?> [fake_override]
|
||||
FUN FAKE_OVERRIDE name:spliterator visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<kotlin.String>>) returnType:@[EnhancedNullability] java.util.Spliterator<@[FlexibleNullability] <root>.Some<kotlin.String>?> [fake_override]
|
||||
overridden:
|
||||
public open fun spliterator (): @[EnhancedNullability] java.util.Spliterator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?> declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<kotlin.String>>
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:java.util.AbstractList<@[FlexibleNullability] <root>.Some<kotlin.String>?>, p0:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<kotlin.String>>
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (p0: kotlin.Any?): kotlin.Boolean declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractList<@[FlexibleNullability] <root>.Some<kotlin.String>?>
|
||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:java.util.AbstractList<@[FlexibleNullability] <root>.Some<kotlin.String>?>) returnType:kotlin.Int [fake_override]
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractList<@[FlexibleNullability] <root>.Some<kotlin.String>?>
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:java.util.AbstractCollection<@[FlexibleNullability] <root>.Some<kotlin.String>?>) returnType:@[EnhancedNullability] kotlin.String [fake_override]
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): @[EnhancedNullability] kotlin.String declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractCollection<@[FlexibleNullability] <root>.Some<kotlin.String>?>
|
||||
public open fun toString (): kotlin.String declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:removeIf visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>, p0:@[EnhancedNullability] java.util.function.Predicate<in @[EnhancedNullability] <root>.Some<kotlin.String>>) returnType:kotlin.Boolean [fake_override]
|
||||
overridden:
|
||||
public open fun removeIf (p0: @[EnhancedNullability] java.util.function.Predicate<in @[EnhancedNullability] <root>.Some<T of <root>.SomeList>>): kotlin.Boolean declared in <root>.SomeList
|
||||
@@ -538,10 +555,10 @@ FILE fqName:<root> fileName:/MultiList.kt
|
||||
overridden:
|
||||
public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] <root>.Some<T of <root>.SomeList>> declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<<root>.Some<kotlin.String>>
|
||||
FUN FAKE_OVERRIDE name:forEach visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>, p0:@[FlexibleNullability] java.util.function.Consumer<in @[FlexibleNullability] <root>.Some<kotlin.String>?>?) returnType:kotlin.Unit [fake_override]
|
||||
FUN FAKE_OVERRIDE name:forEach visibility:public modality:OPEN <> ($this:kotlin.collections.Iterable<<root>.Some<kotlin.String>>, p0:@[FlexibleNullability] java.util.function.Consumer<in @[FlexibleNullability] <root>.Some<kotlin.String>?>?) returnType:kotlin.Unit [fake_override]
|
||||
overridden:
|
||||
public open fun forEach (p0: @[FlexibleNullability] java.util.function.Consumer<in @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>?): kotlin.Unit declared in <root>.SomeList
|
||||
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<<root>.Some<kotlin.String>>
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Iterable<<root>.Some<kotlin.String>>
|
||||
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] java.util.function.Consumer<in @[FlexibleNullability] <root>.Some<kotlin.String>?>?
|
||||
FUN FAKE_OVERRIDE name:trimToSize visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>) returnType:kotlin.Unit [fake_override]
|
||||
overridden:
|
||||
|
||||
@@ -45,16 +45,16 @@ class FinalList : SomeList<String> {
|
||||
/* fake */ override fun clone(): @EnhancedNullability Any
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: FinalList#contains(Some<kotlin.String>{EnhancedNullability}){}kotlin.Boolean
|
||||
// Public signature: /FinalList.contains|3096303196508390878[0]
|
||||
// Public signature debug description: contains(Some<kotlin.String>{EnhancedNullability}){}kotlin.Boolean
|
||||
/* fake */ override operator fun contains(p0: @EnhancedNullability Some<String>): Boolean
|
||||
// Mangled name: FinalList#contains(Some<kotlin.String>){}kotlin.Boolean
|
||||
// Public signature: /FinalList.contains|3306019531315598892[0]
|
||||
// Public signature debug description: contains(Some<kotlin.String>){}kotlin.Boolean
|
||||
/* fake */ override operator fun contains(element: Some<String>): Boolean
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: FinalList#containsAll(kotlin.collections.Collection<Some<kotlin.String>?>){}kotlin.Boolean
|
||||
// Public signature: /FinalList.containsAll|5422538213063988463[0]
|
||||
// Public signature debug description: containsAll(kotlin.collections.Collection<Some<kotlin.String>?>){}kotlin.Boolean
|
||||
/* fake */ override fun containsAll(p0: Collection<Some<String>?>): Boolean
|
||||
// Mangled name: FinalList#containsAll(kotlin.collections.Collection<Some<kotlin.String>>){}kotlin.Boolean
|
||||
// Public signature: /FinalList.containsAll|9064771870641374979[0]
|
||||
// Public signature debug description: containsAll(kotlin.collections.Collection<Some<kotlin.String>>){}kotlin.Boolean
|
||||
/* fake */ override fun containsAll(elements: Collection<Some<String>>): Boolean
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: FinalList#ensureCapacity(kotlin.Int){}
|
||||
@@ -66,7 +66,7 @@ class FinalList : SomeList<String> {
|
||||
// Mangled name: FinalList#equals(kotlin.Any?){}kotlin.Boolean
|
||||
// Public signature: /FinalList.equals|722809408929142791[0]
|
||||
// Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean
|
||||
/* fake */ override operator fun equals(p0: Any?): Boolean
|
||||
/* fake */ override operator fun equals(other: Any?): Boolean
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: FinalList#forEach(java.util.function.Consumer<in|Some<kotlin.String>?>?){}
|
||||
@@ -75,10 +75,10 @@ class FinalList : SomeList<String> {
|
||||
/* fake */ override fun forEach(p0: Consumer<in Some<String>?>?): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: FinalList#get(kotlin.Int){}Some<kotlin.String>{EnhancedNullability}
|
||||
// Public signature: /FinalList.get|-1548509062534898774[0]
|
||||
// Public signature debug description: get(kotlin.Int){}Some<kotlin.String>{EnhancedNullability}
|
||||
/* fake */ override operator fun get(p0: Int): @EnhancedNullability Some<String>
|
||||
// Mangled name: FinalList#get(kotlin.Int){}Some<kotlin.String>
|
||||
// Public signature: /FinalList.get|5550525129583729061[0]
|
||||
// Public signature debug description: get(kotlin.Int){}Some<kotlin.String>
|
||||
/* fake */ override operator fun get(index: Int): Some<String>
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: FinalList#hashCode(){}kotlin.Int
|
||||
@@ -87,10 +87,10 @@ class FinalList : SomeList<String> {
|
||||
/* fake */ override fun hashCode(): Int
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: FinalList#indexOf(Some<kotlin.String>{EnhancedNullability}){}kotlin.Int
|
||||
// Public signature: /FinalList.indexOf|7750638587776299509[0]
|
||||
// Public signature debug description: indexOf(Some<kotlin.String>{EnhancedNullability}){}kotlin.Int
|
||||
/* fake */ override fun indexOf(p0: @EnhancedNullability Some<String>): Int
|
||||
// Mangled name: FinalList#indexOf(Some<kotlin.String>){}kotlin.Int
|
||||
// Public signature: /FinalList.indexOf|5440857764812757471[0]
|
||||
// Public signature debug description: indexOf(Some<kotlin.String>){}kotlin.Int
|
||||
/* fake */ override fun indexOf(element: Some<String>): Int
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: FinalList#isEmpty(){}kotlin.Boolean
|
||||
@@ -105,10 +105,10 @@ class FinalList : SomeList<String> {
|
||||
/* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability Some<String>>
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: FinalList#lastIndexOf(Some<kotlin.String>{EnhancedNullability}){}kotlin.Int
|
||||
// Public signature: /FinalList.lastIndexOf|5741372771241017733[0]
|
||||
// Public signature debug description: lastIndexOf(Some<kotlin.String>{EnhancedNullability}){}kotlin.Int
|
||||
/* fake */ override fun lastIndexOf(p0: @EnhancedNullability Some<String>): Int
|
||||
// Mangled name: FinalList#lastIndexOf(Some<kotlin.String>){}kotlin.Int
|
||||
// Public signature: /FinalList.lastIndexOf|-46333449251229155[0]
|
||||
// Public signature debug description: lastIndexOf(Some<kotlin.String>){}kotlin.Int
|
||||
/* fake */ override fun lastIndexOf(element: Some<String>): Int
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: FinalList#listIterator(){}kotlin.collections.MutableListIterator<Some<kotlin.String>{EnhancedNullability}>{EnhancedNullability}
|
||||
@@ -213,10 +213,10 @@ class FinalList : SomeList<String> {
|
||||
/* fake */ override fun <T : Any?> toArray(p0: Array<out T?>?): Array<out T?>?
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: FinalList#toString(){}kotlin.String{EnhancedNullability}
|
||||
// Public signature: /FinalList.toString|7581629773206850948[0]
|
||||
// Public signature debug description: toString(){}kotlin.String{EnhancedNullability}
|
||||
/* fake */ override fun toString(): @EnhancedNullability String
|
||||
// Mangled name: FinalList#toString(){}kotlin.String
|
||||
// Public signature: /FinalList.toString|6958853723545266802[0]
|
||||
// Public signature debug description: toString(){}kotlin.String
|
||||
/* fake */ override fun toString(): String
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: FinalList#trimToSize(){}
|
||||
@@ -337,16 +337,16 @@ open class SomeList<T : Any?> : ArrayList<Some<T>>, MyList<T> {
|
||||
/* fake */ override fun clone(): @EnhancedNullability Any
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: SomeList#contains(Some<1:0>{EnhancedNullability}){}kotlin.Boolean
|
||||
// Public signature: /SomeList.contains|8295010842646223621[0]
|
||||
// Public signature debug description: contains(Some<1:0>{EnhancedNullability}){}kotlin.Boolean
|
||||
/* fake */ override operator fun contains(p0: @EnhancedNullability Some<T>): Boolean
|
||||
// Mangled name: SomeList#contains(Some<1:0>){}kotlin.Boolean
|
||||
// Public signature: /SomeList.contains|-2920670572443692722[0]
|
||||
// Public signature debug description: contains(Some<1:0>){}kotlin.Boolean
|
||||
/* fake */ override operator fun contains(element: Some<T>): Boolean
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: SomeList#containsAll(kotlin.collections.Collection<Some<1:0>?>){}kotlin.Boolean
|
||||
// Public signature: /SomeList.containsAll|5540597363096413063[0]
|
||||
// Public signature debug description: containsAll(kotlin.collections.Collection<Some<1:0>?>){}kotlin.Boolean
|
||||
/* fake */ override fun containsAll(p0: Collection<Some<T>?>): Boolean
|
||||
// Mangled name: SomeList#containsAll(kotlin.collections.Collection<Some<1:0>>){}kotlin.Boolean
|
||||
// Public signature: /SomeList.containsAll|4060484050930787658[0]
|
||||
// Public signature debug description: containsAll(kotlin.collections.Collection<Some<1:0>>){}kotlin.Boolean
|
||||
/* fake */ override fun containsAll(elements: Collection<Some<T>>): Boolean
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: SomeList#ensureCapacity(kotlin.Int){}
|
||||
@@ -358,7 +358,7 @@ open class SomeList<T : Any?> : ArrayList<Some<T>>, MyList<T> {
|
||||
// Mangled name: SomeList#equals(kotlin.Any?){}kotlin.Boolean
|
||||
// Public signature: /SomeList.equals|722809408929142791[0]
|
||||
// Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean
|
||||
/* fake */ override operator fun equals(p0: Any?): Boolean
|
||||
/* fake */ override operator fun equals(other: Any?): Boolean
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: SomeList#forEach(java.util.function.Consumer<in|Some<1:0>?>?){}
|
||||
@@ -367,10 +367,10 @@ open class SomeList<T : Any?> : ArrayList<Some<T>>, MyList<T> {
|
||||
/* fake */ override fun forEach(p0: Consumer<in Some<T>?>?): Unit
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: SomeList#get(kotlin.Int){}Some<1:0>{EnhancedNullability}
|
||||
// Public signature: /SomeList.get|-3046572306153092239[0]
|
||||
// Public signature debug description: get(kotlin.Int){}Some<1:0>{EnhancedNullability}
|
||||
/* fake */ override operator fun get(p0: Int): @EnhancedNullability Some<T>
|
||||
// Mangled name: SomeList#get(kotlin.Int){}Some<1:0>
|
||||
// Public signature: /SomeList.get|7985278152358407752[0]
|
||||
// Public signature debug description: get(kotlin.Int){}Some<1:0>
|
||||
/* fake */ override operator fun get(index: Int): Some<T>
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: SomeList#hashCode(){}kotlin.Int
|
||||
@@ -379,10 +379,10 @@ open class SomeList<T : Any?> : ArrayList<Some<T>>, MyList<T> {
|
||||
/* fake */ override fun hashCode(): Int
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: SomeList#indexOf(Some<1:0>{EnhancedNullability}){}kotlin.Int
|
||||
// Public signature: /SomeList.indexOf|-8100421064396203855[0]
|
||||
// Public signature debug description: indexOf(Some<1:0>{EnhancedNullability}){}kotlin.Int
|
||||
/* fake */ override fun indexOf(p0: @EnhancedNullability Some<T>): Int
|
||||
// Mangled name: SomeList#indexOf(Some<1:0>){}kotlin.Int
|
||||
// Public signature: /SomeList.indexOf|4192413876446876489[0]
|
||||
// Public signature debug description: indexOf(Some<1:0>){}kotlin.Int
|
||||
/* fake */ override fun indexOf(element: Some<T>): Int
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: SomeList#isEmpty(){}kotlin.Boolean
|
||||
@@ -397,10 +397,10 @@ open class SomeList<T : Any?> : ArrayList<Some<T>>, MyList<T> {
|
||||
/* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability Some<T>>
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: SomeList#lastIndexOf(Some<1:0>{EnhancedNullability}){}kotlin.Int
|
||||
// Public signature: /SomeList.lastIndexOf|1971452683190765047[0]
|
||||
// Public signature debug description: lastIndexOf(Some<1:0>{EnhancedNullability}){}kotlin.Int
|
||||
/* fake */ override fun lastIndexOf(p0: @EnhancedNullability Some<T>): Int
|
||||
// Mangled name: SomeList#lastIndexOf(Some<1:0>){}kotlin.Int
|
||||
// Public signature: /SomeList.lastIndexOf|-4798028145670003218[0]
|
||||
// Public signature debug description: lastIndexOf(Some<1:0>){}kotlin.Int
|
||||
/* fake */ override fun lastIndexOf(element: Some<T>): Int
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: SomeList#listIterator(){}kotlin.collections.MutableListIterator<Some<1:0>{EnhancedNullability}>{EnhancedNullability}
|
||||
@@ -505,10 +505,10 @@ open class SomeList<T : Any?> : ArrayList<Some<T>>, MyList<T> {
|
||||
/* fake */ override fun <T : Any?> toArray(p0: Array<out T?>?): Array<out T?>?
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: SomeList#toString(){}kotlin.String{EnhancedNullability}
|
||||
// Public signature: /SomeList.toString|7581629773206850948[0]
|
||||
// Public signature debug description: toString(){}kotlin.String{EnhancedNullability}
|
||||
/* fake */ override fun toString(): @EnhancedNullability String
|
||||
// Mangled name: SomeList#toString(){}kotlin.String
|
||||
// Public signature: /SomeList.toString|6958853723545266802[0]
|
||||
// Public signature debug description: toString(){}kotlin.String
|
||||
/* fake */ override fun toString(): String
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: SomeList#trimToSize(){}
|
||||
@@ -629,3 +629,4 @@ interface MyList<T : Any?> : List<Some<T>> {
|
||||
abstract /* fake */ override get(): Int
|
||||
|
||||
}
|
||||
|
||||
|
||||
Generated
+42
@@ -345,6 +345,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
||||
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("duplicateDefaultValuesSubsumedIntersection.kt")
|
||||
public void testDuplicateDefaultValuesSubsumedIntersection() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/duplicateDefaultValuesSubsumedIntersection.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
||||
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
||||
@@ -28698,6 +28704,36 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
||||
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOfAbstractAndOpen.kt")
|
||||
public void testIntersectionOfAbstractAndOpen() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOfAbstractAndOpen.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOfSubstitutedProperties.kt")
|
||||
public void testIntersectionOfSubstitutedProperties() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOfSubstitutedProperties.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOverrideWithSubsumedDifferentType.kt")
|
||||
public void testIntersectionOverrideWithSubsumedDifferentType() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOverrideWithSubsumedDifferentType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionOverridesIntersection.kt")
|
||||
public void testIntersectionOverridesIntersection() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionOverridesIntersection.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionWithSubsumedWithSubstitution.kt")
|
||||
public void testIntersectionWithSubsumedWithSubstitution() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/intersectionWithSubsumedWithSubstitution.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("InvisiblePotentialOverride.kt")
|
||||
public void testInvisiblePotentialOverride() throws Exception {
|
||||
@@ -28965,6 +29001,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/genericWithUpperBound.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("intersectionReturnTypeMismatchSubsumed.kt")
|
||||
public void testIntersectionReturnTypeMismatchSubsumed() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/intersectionReturnTypeMismatchSubsumed.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt13355.kt")
|
||||
public void testKt13355() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user