[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.KtSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
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.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes
|
import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes
|
||||||
import org.jetbrains.kotlin.fir.scopes.*
|
import org.jetbrains.kotlin.fir.scopes.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
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.lazyResolveToPhase
|
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||||
import org.jetbrains.kotlin.fir.types.toRegularClassSymbol
|
import org.jetbrains.kotlin.fir.types.toRegularClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.unwrapFakeOverrides
|
import org.jetbrains.kotlin.fir.unwrapFakeOverrides
|
||||||
@@ -36,15 +34,24 @@ internal class KtFirSymbolDeclarationOverridesProvider(
|
|||||||
override fun <T : KtSymbol> getAllOverriddenSymbols(
|
override fun <T : KtSymbol> getAllOverriddenSymbols(
|
||||||
callableSymbol: T,
|
callableSymbol: T,
|
||||||
): List<KtCallableSymbol> {
|
): List<KtCallableSymbol> {
|
||||||
|
require(callableSymbol is KtFirSymbol<*>)
|
||||||
if (callableSymbol is KtFirBackingFieldSymbol) return emptyList()
|
if (callableSymbol is KtFirBackingFieldSymbol) return emptyList()
|
||||||
if (callableSymbol is KtValueParameterSymbol) {
|
if (callableSymbol is KtValueParameterSymbol) {
|
||||||
return callableSymbol.getAllOverriddenSymbols()
|
return callableSymbol.getAllOverriddenSymbols()
|
||||||
}
|
}
|
||||||
|
(callableSymbol.firSymbol as? FirIntersectionCallableSymbol)?.let { intersectionSymbol ->
|
||||||
|
return intersectionSymbol.intersections.flatMap {
|
||||||
|
getAllOverriddenSymbols(analysisSession.firSymbolBuilder.callableBuilder.buildCallableSymbol(it))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val overriddenElement = mutableSetOf<FirCallableSymbol<*>>()
|
val overriddenElement = mutableSetOf<FirCallableSymbol<*>>()
|
||||||
processOverrides(callableSymbol) { firTypeScope, firCallableDeclaration ->
|
processOverrides(callableSymbol) { firTypeScope, firCallableDeclaration ->
|
||||||
firTypeScope.processAllOverriddenDeclarations(firCallableDeclaration) { overriddenDeclaration ->
|
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> {
|
override fun <T : KtSymbol> getDirectlyOverriddenSymbols(callableSymbol: T): List<KtCallableSymbol> {
|
||||||
|
require(callableSymbol is KtFirSymbol<*>)
|
||||||
if (callableSymbol is KtFirBackingFieldSymbol) return emptyList()
|
if (callableSymbol is KtFirBackingFieldSymbol) return emptyList()
|
||||||
if (callableSymbol is KtValueParameterSymbol) {
|
if (callableSymbol is KtValueParameterSymbol) {
|
||||||
return callableSymbol.getDirectlyOverriddenSymbols()
|
return callableSymbol.getDirectlyOverriddenSymbols()
|
||||||
}
|
}
|
||||||
|
if (callableSymbol is KtCallableSymbol && callableSymbol.firSymbol is FirIntersectionCallableSymbol) {
|
||||||
|
return getIntersectionOverriddenSymbols(callableSymbol)
|
||||||
|
}
|
||||||
|
|
||||||
val overriddenElement = mutableSetOf<FirCallableSymbol<*>>()
|
val overriddenElement = mutableSetOf<FirCallableSymbol<*>>()
|
||||||
processOverrides(callableSymbol) { firTypeScope, firCallableDeclaration ->
|
processOverrides(callableSymbol) { firTypeScope, firCallableDeclaration ->
|
||||||
firTypeScope.processDirectOverriddenDeclarations(firCallableDeclaration) { overriddenDeclaration ->
|
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)
|
process(firTypeScope, firCallableDeclaration)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FirCallableSymbol<*>.collectIntersectionOverridesSymbolsTo(to: MutableCollection<FirCallableSymbol<*>>) {
|
private fun FirCallableSymbol<*>.collectIntersectionOverridesSymbolsTo(
|
||||||
|
to: MutableCollection<FirCallableSymbol<*>>,
|
||||||
|
useSiteSession: FirSession,
|
||||||
|
) {
|
||||||
when (this) {
|
when (this) {
|
||||||
is FirIntersectionOverrideFunctionSymbol -> {
|
is FirIntersectionCallableSymbol -> {
|
||||||
intersections.forEach { it.collectIntersectionOverridesSymbolsTo(to) }
|
getIntersectionOverriddenSymbols(useSiteSession).forEach { it.collectIntersectionOverridesSymbolsTo(to, useSiteSession) }
|
||||||
}
|
|
||||||
is FirIntersectionOverridePropertySymbol -> {
|
|
||||||
intersections.forEach { it.collectIntersectionOverridesSymbolsTo(to) }
|
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
to += this.fir.unwrapFakeOverrides().symbol
|
to += this.fir.unwrapFakeOverrides().symbol
|
||||||
@@ -187,22 +201,21 @@ internal class KtFirSymbolDeclarationOverridesProvider(
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getIntersectionOverriddenSymbols(symbol: KtCallableSymbol): Collection<KtCallableSymbol> {
|
override fun getIntersectionOverriddenSymbols(symbol: KtCallableSymbol): List<KtCallableSymbol> {
|
||||||
require(symbol is KtFirSymbol<*>)
|
require(symbol is KtFirSymbol<*>)
|
||||||
if (symbol.origin != KtSymbolOrigin.INTERSECTION_OVERRIDE) return emptyList()
|
if (symbol.origin != KtSymbolOrigin.INTERSECTION_OVERRIDE) return emptyList()
|
||||||
return symbol.firSymbol
|
return symbol.firSymbol
|
||||||
.getIntersectionOverriddenSymbols()
|
.getIntersectionOverriddenSymbols(symbol.analysisSession.useSiteSession)
|
||||||
.map { analysisSession.firSymbolBuilder.callableBuilder.buildCallableSymbol(it) }
|
.map { analysisSession.firSymbolBuilder.callableBuilder.buildCallableSymbol(it) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FirBasedSymbol<*>.getIntersectionOverriddenSymbols(): Collection<FirCallableSymbol<*>> {
|
private fun FirBasedSymbol<*>.getIntersectionOverriddenSymbols(useSiteSession: FirSession): Collection<FirCallableSymbol<*>> {
|
||||||
require(this is FirCallableSymbol<*>) {
|
require(this is FirCallableSymbol<*>) {
|
||||||
"Required FirCallableSymbol but ${this::class} found"
|
"Required FirCallableSymbol but ${this::class} found"
|
||||||
}
|
}
|
||||||
return when (this) {
|
return when (this) {
|
||||||
is FirIntersectionOverrideFunctionSymbol -> intersections
|
is FirIntersectionCallableSymbol -> getNonSubsumedOverriddenSymbols(useSiteSession, analysisSession.getScopeSessionFor(useSiteSession))
|
||||||
is FirIntersectionOverridePropertySymbol -> intersections
|
|
||||||
else -> listOf(this)
|
else -> listOf(this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-65
@@ -939,62 +939,12 @@ KtFunctionSymbol:
|
|||||||
|
|
||||||
KtKotlinPropertySymbol:
|
KtKotlinPropertySymbol:
|
||||||
annotationsList: []
|
annotationsList: []
|
||||||
backingFieldSymbol: KtBackingFieldSymbol:
|
backingFieldSymbol: null
|
||||||
annotationsList: []
|
callableIdIfNonLocal: kotlin/collections/MutableList.size
|
||||||
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
|
|
||||||
contextReceivers: []
|
contextReceivers: []
|
||||||
getter: KtPropertyGetterSymbol:
|
getter: null
|
||||||
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
|
|
||||||
hasBackingField: false
|
hasBackingField: false
|
||||||
hasGetter: true
|
hasGetter: false
|
||||||
hasSetter: false
|
hasSetter: false
|
||||||
initializer: null
|
initializer: null
|
||||||
isActual: false
|
isActual: false
|
||||||
@@ -1009,7 +959,7 @@ KtKotlinPropertySymbol:
|
|||||||
isVal: true
|
isVal: true
|
||||||
modality: ABSTRACT
|
modality: ABSTRACT
|
||||||
name: size
|
name: size
|
||||||
origin: LIBRARY
|
origin: INTERSECTION_OVERRIDE
|
||||||
receiverParameter: null
|
receiverParameter: null
|
||||||
returnType: KtUsualClassType:
|
returnType: KtUsualClassType:
|
||||||
annotationsList: []
|
annotationsList: []
|
||||||
@@ -1026,9 +976,9 @@ KtKotlinPropertySymbol:
|
|||||||
annotationsList: []
|
annotationsList: []
|
||||||
type: E
|
type: E
|
||||||
]
|
]
|
||||||
type: kotlin/collections/List<E>
|
type: kotlin/collections/MutableList<E>
|
||||||
getContainingFileSymbol: null
|
getContainingFileSymbol: null
|
||||||
getContainingJvmClassName: kotlin.collections.List
|
getContainingJvmClassName: kotlin.collections.MutableList
|
||||||
getContainingModule: KtBinaryModule "Builtins for JVM (1.8)"
|
getContainingModule: KtBinaryModule "Builtins for JVM (1.8)"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
getterDeprecationStatus: null
|
getterDeprecationStatus: null
|
||||||
@@ -1038,7 +988,7 @@ KtKotlinPropertySymbol:
|
|||||||
|
|
||||||
KtFunctionSymbol:
|
KtFunctionSymbol:
|
||||||
annotationsList: []
|
annotationsList: []
|
||||||
callableIdIfNonLocal: kotlin/collections/List.isEmpty
|
callableIdIfNonLocal: kotlin/collections/MutableList.isEmpty
|
||||||
contextReceivers: []
|
contextReceivers: []
|
||||||
contractEffects: []
|
contractEffects: []
|
||||||
hasStableParameterNames: true
|
hasStableParameterNames: true
|
||||||
@@ -1055,7 +1005,7 @@ KtFunctionSymbol:
|
|||||||
isSuspend: false
|
isSuspend: false
|
||||||
modality: ABSTRACT
|
modality: ABSTRACT
|
||||||
name: isEmpty
|
name: isEmpty
|
||||||
origin: LIBRARY
|
origin: INTERSECTION_OVERRIDE
|
||||||
receiverParameter: null
|
receiverParameter: null
|
||||||
returnType: KtUsualClassType:
|
returnType: KtUsualClassType:
|
||||||
annotationsList: []
|
annotationsList: []
|
||||||
@@ -1072,9 +1022,9 @@ KtFunctionSymbol:
|
|||||||
annotationsList: []
|
annotationsList: []
|
||||||
type: E
|
type: E
|
||||||
]
|
]
|
||||||
type: kotlin/collections/List<E>
|
type: kotlin/collections/MutableList<E>
|
||||||
getContainingFileSymbol: null
|
getContainingFileSymbol: null
|
||||||
getContainingJvmClassName: kotlin.collections.List
|
getContainingJvmClassName: kotlin.collections.MutableList
|
||||||
getContainingModule: KtBinaryModule "Builtins for JVM (1.8)"
|
getContainingModule: KtBinaryModule "Builtins for JVM (1.8)"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|
||||||
@@ -1097,7 +1047,7 @@ KtFunctionSymbol:
|
|||||||
isSuspend: false
|
isSuspend: false
|
||||||
modality: ABSTRACT
|
modality: ABSTRACT
|
||||||
name: contains
|
name: contains
|
||||||
origin: SUBSTITUTION_OVERRIDE
|
origin: INTERSECTION_OVERRIDE
|
||||||
receiverParameter: null
|
receiverParameter: null
|
||||||
returnType: KtUsualClassType:
|
returnType: KtUsualClassType:
|
||||||
annotationsList: []
|
annotationsList: []
|
||||||
@@ -1118,7 +1068,7 @@ KtFunctionSymbol:
|
|||||||
isNoinline: false
|
isNoinline: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: element
|
name: element
|
||||||
origin: SUBSTITUTION_OVERRIDE
|
origin: INTERSECTION_OVERRIDE
|
||||||
receiverParameter: null
|
receiverParameter: null
|
||||||
returnType: KtTypeParameterType:
|
returnType: KtTypeParameterType:
|
||||||
annotationsList: []
|
annotationsList: []
|
||||||
@@ -1209,7 +1159,7 @@ KtFunctionSymbol:
|
|||||||
isSuspend: false
|
isSuspend: false
|
||||||
modality: ABSTRACT
|
modality: ABSTRACT
|
||||||
name: containsAll
|
name: containsAll
|
||||||
origin: SUBSTITUTION_OVERRIDE
|
origin: INTERSECTION_OVERRIDE
|
||||||
receiverParameter: null
|
receiverParameter: null
|
||||||
returnType: KtUsualClassType:
|
returnType: KtUsualClassType:
|
||||||
annotationsList: []
|
annotationsList: []
|
||||||
@@ -1230,7 +1180,7 @@ KtFunctionSymbol:
|
|||||||
isNoinline: false
|
isNoinline: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: elements
|
name: elements
|
||||||
origin: SUBSTITUTION_OVERRIDE
|
origin: INTERSECTION_OVERRIDE
|
||||||
receiverParameter: null
|
receiverParameter: null
|
||||||
returnType: KtUsualClassType:
|
returnType: KtUsualClassType:
|
||||||
annotationsList: []
|
annotationsList: []
|
||||||
|
|||||||
+42
@@ -345,6 +345,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
|||||||
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("duplicateDefaultValuesSubsumedIntersection.kt")
|
||||||
|
public void testDuplicateDefaultValuesSubsumedIntersection() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/duplicateDefaultValuesSubsumedIntersection.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
||||||
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
||||||
@@ -28698,6 +28704,36 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
|||||||
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
|
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
|
@Test
|
||||||
@TestMetadata("InvisiblePotentialOverride.kt")
|
@TestMetadata("InvisiblePotentialOverride.kt")
|
||||||
public void testInvisiblePotentialOverride() throws Exception {
|
public void testInvisiblePotentialOverride() throws Exception {
|
||||||
@@ -28965,6 +29001,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
|||||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/genericWithUpperBound.kt");
|
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
|
@Test
|
||||||
@TestMetadata("kt13355.kt")
|
@TestMetadata("kt13355.kt")
|
||||||
public void testKt13355() throws Exception {
|
public void testKt13355() throws Exception {
|
||||||
|
|||||||
+42
@@ -345,6 +345,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
|||||||
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("duplicateDefaultValuesSubsumedIntersection.kt")
|
||||||
|
public void testDuplicateDefaultValuesSubsumedIntersection() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/duplicateDefaultValuesSubsumedIntersection.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
||||||
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
||||||
@@ -28698,6 +28704,36 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
|||||||
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
|
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
|
@Test
|
||||||
@TestMetadata("InvisiblePotentialOverride.kt")
|
@TestMetadata("InvisiblePotentialOverride.kt")
|
||||||
public void testInvisiblePotentialOverride() throws Exception {
|
public void testInvisiblePotentialOverride() throws Exception {
|
||||||
@@ -28965,6 +29001,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
|||||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/genericWithUpperBound.kt");
|
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
|
@Test
|
||||||
@TestMetadata("kt13355.kt")
|
@TestMetadata("kt13355.kt")
|
||||||
public void testKt13355() throws Exception {
|
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]
|
[Enhancement]: public abstract fun getFoo(): R|kotlin/String!| from Java enhancement scope for /A [id: 1]
|
||||||
|
|
||||||
C:
|
C:
|
||||||
[Source]: public open override fun getFoo(): R|kotlin/String| from Java enhancement scope for /C [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: 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: 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: 1]
|
[Enhancement]: public abstract fun getFoo(): R|kotlin/String!| from Java enhancement scope for /A [id: 2]
|
||||||
|
|
||||||
D:
|
D:
|
||||||
[Source]: 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 Use site scope of /D [id: 0]
|
||||||
[Source]: public open override fun getFoo(): R|kotlin/String| from Java enhancement scope for /C [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: 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: 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: 1]
|
[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:
|
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 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 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 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]
|
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 1]
|
||||||
|
|
||||||
Explicit:
|
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/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 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/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 /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 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 /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:
|
Implicit:
|
||||||
[IntersectionOverride]: public abstract fun foo(): R|kotlin/Int| from Use site scope of /Implicit [id: 0]
|
[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 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/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]
|
||||||
[IntersectionOverride]: public abstract override 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 /Implicit [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 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 /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:
|
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 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 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 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]
|
[Source]: public abstract val x: R|kotlin/Any| from Use site scope of /A [id: 1]
|
||||||
|
|
||||||
Explicit:
|
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/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 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/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 /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 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 /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:
|
Implicit:
|
||||||
[IntersectionOverride]: public abstract fun foo(): R|kotlin/Int| from Use site scope of /Implicit [id: 0]
|
[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 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/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]
|
||||||
[IntersectionOverride]: public abstract override 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 /Implicit [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 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 /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:
|
D:
|
||||||
[SubstitutionOverride(DeclarationSite)]: public abstract override fun foo(): R|E4| from Use site scope of /D [id: 0]
|
[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: 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: 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: 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: 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: 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: 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: 5]
|
[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: 3]
|
[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");
|
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("duplicateDefaultValuesSubsumedIntersection.kt")
|
||||||
|
public void testDuplicateDefaultValuesSubsumedIntersection() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/duplicateDefaultValuesSubsumedIntersection.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
||||||
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
||||||
@@ -26462,6 +26468,36 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
|
|||||||
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
|
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
|
@Test
|
||||||
@TestMetadata("InvisiblePotentialOverride.kt")
|
@TestMetadata("InvisiblePotentialOverride.kt")
|
||||||
public void testInvisiblePotentialOverride() throws Exception {
|
public void testInvisiblePotentialOverride() throws Exception {
|
||||||
@@ -26729,6 +26765,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
|
|||||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/genericWithUpperBound.kt");
|
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
|
@Test
|
||||||
@TestMetadata("kt13355.kt")
|
@TestMetadata("kt13355.kt")
|
||||||
public void testKt13355() throws Exception {
|
public void testKt13355() throws Exception {
|
||||||
|
|||||||
+42
@@ -345,6 +345,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
|
|||||||
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("duplicateDefaultValuesSubsumedIntersection.kt")
|
||||||
|
public void testDuplicateDefaultValuesSubsumedIntersection() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/duplicateDefaultValuesSubsumedIntersection.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
||||||
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
||||||
@@ -26468,6 +26474,36 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
|
|||||||
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
|
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
|
@Test
|
||||||
@TestMetadata("InvisiblePotentialOverride.kt")
|
@TestMetadata("InvisiblePotentialOverride.kt")
|
||||||
public void testInvisiblePotentialOverride() throws Exception {
|
public void testInvisiblePotentialOverride() throws Exception {
|
||||||
@@ -26735,6 +26771,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
|
|||||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/genericWithUpperBound.kt");
|
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
|
@Test
|
||||||
@TestMetadata("kt13355.kt")
|
@TestMetadata("kt13355.kt")
|
||||||
public void testKt13355() throws Exception {
|
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.FirDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.fir.declarations.constructors
|
import org.jetbrains.kotlin.fir.declarations.constructors
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
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.declarations.utils.isFinal
|
||||||
import org.jetbrains.kotlin.fir.scopes.*
|
import org.jetbrains.kotlin.fir.scopes.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
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.fir.unwrapFakeOverridesOrDelegated
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.popLast
|
import org.jetbrains.kotlin.utils.addToStdlib.popLast
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.SessionHolder
|
||||||
|
|
||||||
sealed class FirJsNameClashClassMembersChecker(mppKind: MppCheckerKind) : FirClassChecker(mppKind) {
|
sealed class FirJsNameClashClassMembersChecker(mppKind: MppCheckerKind) : FirClassChecker(mppKind) {
|
||||||
object Regular : FirJsNameClashClassMembersChecker(MppCheckerKind.Platform) {
|
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) {
|
for (symbol in symbols) {
|
||||||
when (symbol) {
|
when (symbol) {
|
||||||
is FirIntersectionCallableSymbol -> {
|
is FirIntersectionCallableSymbol -> {
|
||||||
addAllSymbolsFrom(symbol.intersections)
|
val nonSubsumedOverriddenSymbols = symbol.getNonSubsumedOverriddenSymbols(
|
||||||
for (intersectedSymbol in symbol.intersections) {
|
sessionHolder.session,
|
||||||
overrideIntersections.getOrPut(intersectedSymbol) { hashSetOf() }.addAll(symbol.intersections)
|
sessionHolder.scopeSession
|
||||||
|
)
|
||||||
|
addAllSymbolsFrom(nonSubsumedOverriddenSymbols, sessionHolder)
|
||||||
|
for (intersectedSymbol in nonSubsumedOverriddenSymbols) {
|
||||||
|
overrideIntersections.getOrPut(intersectedSymbol) { hashSetOf() }.addAll(nonSubsumedOverriddenSymbols)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> allSymbols.add(symbol)
|
else -> allSymbols.add(symbol)
|
||||||
@@ -137,8 +143,8 @@ sealed class FirJsNameClashClassMembersChecker(mppKind: MppCheckerKind) : FirCla
|
|||||||
val scope = declaration.symbol.unsubstitutedScope(context)
|
val scope = declaration.symbol.unsubstitutedScope(context)
|
||||||
|
|
||||||
scope.processDeclaredConstructors(allSymbols::add)
|
scope.processDeclaredConstructors(allSymbols::add)
|
||||||
addAllSymbolsFrom(scope.collectAllFunctions())
|
addAllSymbolsFrom(scope.collectAllFunctions(), context.sessionHolder)
|
||||||
addAllSymbolsFrom(scope.collectAllProperties())
|
addAllSymbolsFrom(scope.collectAllProperties(), context.sessionHolder)
|
||||||
|
|
||||||
for (callableMemberSymbol in allSymbols) {
|
for (callableMemberSymbol in allSymbols) {
|
||||||
val overriddenLeaves = scope.collectOverriddenLeaves(callableMemberSymbol)
|
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.declaredMemberScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.multipleDelegatesWithTheSameSignature
|
import org.jetbrains.kotlin.fir.scopes.impl.multipleDelegatesWithTheSameSignature
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
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.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
@@ -335,7 +334,11 @@ fun FirCallableSymbol<*>.getImplementationStatus(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (symbol is FirIntersectionCallableSymbol) {
|
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
|
return ImplementationStatus.AMBIGUOUSLY_INHERITED
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -345,7 +348,7 @@ fun FirCallableSymbol<*>.getImplementationStatus(
|
|||||||
var hasImplementation = false
|
var hasImplementation = false
|
||||||
var hasImplementationVar = false
|
var hasImplementationVar = false
|
||||||
|
|
||||||
for (intersection in symbol.intersections) {
|
for (intersection in nonSubsumed) {
|
||||||
val unwrapped = intersection.unwrapFakeOverrides()
|
val unwrapped = intersection.unwrapFakeOverrides()
|
||||||
val isVar = unwrapped is FirPropertySymbol && unwrapped.isVar
|
val isVar = unwrapped is FirPropertySymbol && unwrapped.isVar
|
||||||
val isFromClass = unwrapped.getContainingClassSymbol(sessionHolder.session)?.classKind == ClassKind.CLASS
|
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 nonAbstractCountInClass = 0
|
||||||
var nonAbstractCountInInterface = 0
|
var nonAbstractCountInInterface = 0
|
||||||
var abstractCountInInterface = 0
|
var abstractCountInInterface = 0
|
||||||
for (intersectionSymbol in intersections) {
|
for (intersectionSymbol in this) {
|
||||||
val containingClassSymbol = intersectionSymbol.getContainingClassSymbol(sessionHolder.session) as? FirRegularClassSymbol
|
val containingClassSymbol = intersectionSymbol.getContainingClassSymbol(sessionHolder.session) as? FirRegularClassSymbol
|
||||||
val hasInterfaceContainer = containingClassSymbol?.classKind == ClassKind.INTERFACE
|
val hasInterfaceContainer = containingClassSymbol?.classKind == ClassKind.INTERFACE
|
||||||
if (intersectionSymbol.modality != Modality.ABSTRACT) {
|
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.checkers.unsubstitutedScope
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.containingClassLookupTag
|
import org.jetbrains.kotlin.fir.containingClassLookupTag
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.classId
|
import org.jetbrains.kotlin.fir.declarations.utils.classId
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isAbstract
|
import org.jetbrains.kotlin.fir.declarations.utils.isAbstract
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
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.delegatedWrapperData
|
||||||
import org.jetbrains.kotlin.fir.isSubstitutionOverride
|
import org.jetbrains.kotlin.fir.isSubstitutionOverride
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
import org.jetbrains.kotlin.fir.scopes.*
|
||||||
import org.jetbrains.kotlin.fir.scopes.getDirectOverriddenMembers
|
|
||||||
import org.jetbrains.kotlin.fir.scopes.getDirectOverriddenProperties
|
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.toConeType
|
import org.jetbrains.kotlin.fir.scopes.impl.toConeType
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.types.ConeErrorType
|
import org.jetbrains.kotlin.fir.types.ConeErrorType
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.coneType
|
import org.jetbrains.kotlin.fir.types.coneType
|
||||||
import org.jetbrains.kotlin.fir.types.typeContext
|
import org.jetbrains.kotlin.fir.types.typeContext
|
||||||
|
import org.jetbrains.kotlin.fir.unwrapSubstitutionOverrides
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
||||||
import org.jetbrains.kotlin.types.TypeCheckerState
|
import org.jetbrains.kotlin.types.TypeCheckerState
|
||||||
@@ -121,6 +119,15 @@ sealed class FirImplementationMismatchChecker(mppKind: MppCheckerKind) : FirClas
|
|||||||
AbstractTypeChecker.isSubtypeOf(typeCheckerState, inheritedTypeSubstituted, baseType)
|
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 {
|
val intersectionSymbols = when {
|
||||||
//substitution override means simple materialization of single method, so nothing to check
|
//substitution override means simple materialization of single method, so nothing to check
|
||||||
symbol.isSubstitutionOverride -> return
|
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
|
//current symbol needs to be added, because basically it is the implementation
|
||||||
cleared + symbol
|
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
|
symbol.intersections
|
||||||
else -> return
|
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)
|
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>()
|
val allFunctions = mutableListOf<FirNamedFunctionSymbol>()
|
||||||
|
|
||||||
processFunctionsByName(name) { sym ->
|
processFunctionsByName(name) { sym ->
|
||||||
when (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)
|
else -> allFunctions.add(sym)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -225,7 +240,7 @@ sealed class FirImplementationMismatchChecker(mppKind: MppCheckerKind) : FirClas
|
|||||||
scope: FirTypeScope,
|
scope: FirTypeScope,
|
||||||
name: Name
|
name: Name
|
||||||
) {
|
) {
|
||||||
val allFunctions = scope.collectFunctionsNamed(name, containingClass)
|
val allFunctions = scope.collectFunctionsNamed(name, containingClass, context)
|
||||||
|
|
||||||
val sameArgumentGroups = allFunctions.groupBy { function ->
|
val sameArgumentGroups = allFunctions.groupBy { function ->
|
||||||
buildList {
|
buildList {
|
||||||
|
|||||||
+2
-4
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.KtSourceElement
|
|||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.diagnostics.reportOn
|
import org.jetbrains.kotlin.diagnostics.reportOn
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.MppCheckerKind
|
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.context.CheckerContext
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.processOverriddenFunctions
|
import org.jetbrains.kotlin.fir.analysis.checkers.processOverriddenFunctions
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.unsubstitutedScope
|
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.containingClassLookupTag
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
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.getSingleMatchedExpectForActualOrNull
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes
|
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.scopes.processAllFunctions
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
|
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
|
// default values of actual functions are located in corresponding expect functions
|
||||||
val overriddenWithDefaults = overridden.getSingleMatchedExpectForActualOrNull() as? FirNamedFunctionSymbol ?: overridden
|
val overriddenWithDefaults = overridden.getSingleMatchedExpectForActualOrNull() as? FirNamedFunctionSymbol ?: overridden
|
||||||
// Substitution overrides copy default values from originals
|
// 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
|
overriddenFunctions += overriddenWithDefaults
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -78,7 +78,7 @@ sealed class FirNotImplementedOverrideChecker(mppKind: MppCheckerKind) : FirClas
|
|||||||
|
|
||||||
fun collectSymbol(symbol: FirCallableSymbol<*>) {
|
fun collectSymbol(symbol: FirCallableSymbol<*>) {
|
||||||
val delegatedWrapperData = symbol.delegatedWrapperData
|
val delegatedWrapperData = symbol.delegatedWrapperData
|
||||||
if (delegatedWrapperData != null) {
|
if (delegatedWrapperData != null && symbol !is FirIntersectionCallableSymbol) {
|
||||||
val directOverriddenMembersWithBaseScope = classScope
|
val directOverriddenMembersWithBaseScope = classScope
|
||||||
.getDirectOverriddenMembersWithBaseScope(symbol)
|
.getDirectOverriddenMembersWithBaseScope(symbol)
|
||||||
.filter { it.member != 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.fir.FirSession
|
||||||
import org.jetbrains.kotlin.util.PrivateForInline
|
import org.jetbrains.kotlin.util.PrivateForInline
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isInline
|
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.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.declaredMemberScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectOrStaticData
|
import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectOrStaticData
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
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.coneTypeSafe
|
||||||
import org.jetbrains.kotlin.fir.types.isNullableAny
|
import org.jetbrains.kotlin.fir.types.isNullableAny
|
||||||
import org.jetbrains.kotlin.fir.types.toSymbol
|
import org.jetbrains.kotlin.fir.types.toSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.unwrapSubstitutionOverrides
|
||||||
import org.jetbrains.kotlin.util.OperatorNameConventions
|
import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||||
|
|
||||||
fun FirClass.constructors(session: FirSession): List<FirConstructorSymbol> {
|
fun FirClass.constructors(session: FirSession): List<FirConstructorSymbol> {
|
||||||
@@ -126,3 +130,72 @@ fun FirSimpleFunction.isEquals(session: FirSession): Boolean {
|
|||||||
val parameter = valueParameters.first()
|
val parameter = valueParameters.first()
|
||||||
return parameter.returnTypeRef.coneType.fullyExpandedType(session).isNullableAny
|
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.descriptors.Visibility
|
||||||
import org.jetbrains.kotlin.fir.*
|
import org.jetbrains.kotlin.fir.*
|
||||||
import org.jetbrains.kotlin.fir.caches.*
|
import org.jetbrains.kotlin.fir.caches.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.modality
|
import org.jetbrains.kotlin.fir.declarations.utils.modality
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.visibility
|
import org.jetbrains.kotlin.fir.declarations.utils.visibility
|
||||||
@@ -159,8 +157,7 @@ class FirTypeIntersectionScopeContext(
|
|||||||
val groupWithInvisible =
|
val groupWithInvisible =
|
||||||
overrideService.extractBothWaysOverridable(allMembersWithScope.maxByVisibility(), allMembersWithScope, overrideChecker)
|
overrideService.extractBothWaysOverridable(allMembersWithScope.maxByVisibility(), allMembersWithScope, overrideChecker)
|
||||||
val group = groupWithInvisible.filter { it.isVisible() }.ifEmpty { groupWithInvisible }
|
val group = groupWithInvisible.filter { it.isVisible() }.ifEmpty { groupWithInvisible }
|
||||||
val nonSubsumed = if (forClassUseSiteScope) group.nonSubsumed() else group
|
val mostSpecific = overrideService.selectMostSpecificMembers(group, ReturnTypeCalculatorForFullBodyResolve.Default)
|
||||||
val mostSpecific = overrideService.selectMostSpecificMembers(nonSubsumed, ReturnTypeCalculatorForFullBodyResolve.Default)
|
|
||||||
val nonTrivial = if (forClassUseSiteScope) {
|
val nonTrivial = if (forClassUseSiteScope) {
|
||||||
// Create a non-trivial intersection override when the base methods come from different scopes,
|
// 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.
|
// 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
|
// 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,
|
// 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.
|
// which should generally result in INCONSISTENT_TYPE_PARAMETER_VALUES errors.
|
||||||
nonSubsumed.size > 1 &&
|
group.size > 1 &&
|
||||||
nonSubsumed.mapTo(mutableSetOf()) { it.member.fir.unwrapSubstitutionOverrides().symbol }.size > 1
|
group.mapTo(mutableSetOf()) { it.member.fir.unwrapSubstitutionOverrides().symbol }.size > 1
|
||||||
} else {
|
} else {
|
||||||
// Create a non-trivial intersection override when return types should be intersected.
|
// Create a non-trivial intersection override when return types should be intersected.
|
||||||
mostSpecific.size > 1
|
mostSpecific.size > 1
|
||||||
}
|
}
|
||||||
if (nonTrivial) {
|
if (nonTrivial) {
|
||||||
// Only add non-subsumed members to list of overridden in intersection override.
|
// 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 {
|
} else {
|
||||||
val (member, containingScope) = mostSpecific.first()
|
val (member, containingScope) = mostSpecific.first()
|
||||||
result += ResultOfIntersection.SingleMember(member, group, containingScope)
|
result += ResultOfIntersection.SingleMember(member, group, containingScope)
|
||||||
@@ -207,7 +204,7 @@ class FirTypeIntersectionScopeContext(
|
|||||||
mostSpecific: List<MemberWithBaseScope<D>>,
|
mostSpecific: List<MemberWithBaseScope<D>>,
|
||||||
extractedOverrides: List<MemberWithBaseScope<D>>,
|
extractedOverrides: List<MemberWithBaseScope<D>>,
|
||||||
): MemberWithBaseScope<FirCallableSymbol<*>> {
|
): MemberWithBaseScope<FirCallableSymbol<*>> {
|
||||||
val newModality = chooseIntersectionOverrideModality(extractedOverrides)
|
val newModality = chooseIntersectionOverrideModality(extractedOverrides.flatMap { it.flattenIntersectionsRecursively() }.nonSubsumed())
|
||||||
val newVisibility = chooseIntersectionVisibility(extractedOverrides)
|
val newVisibility = chooseIntersectionVisibility(extractedOverrides)
|
||||||
val mostSpecificSymbols = mostSpecific.map { it.member }
|
val mostSpecificSymbols = mostSpecific.map { it.member }
|
||||||
val extractedOverridesSymbols = extractedOverrides.map { it.member }
|
val extractedOverridesSymbols = extractedOverrides.map { it.member }
|
||||||
@@ -228,30 +225,6 @@ class FirTypeIntersectionScopeContext(
|
|||||||
}.withScope(key.baseScope)
|
}.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> {
|
private fun <S : FirCallableSymbol<*>> Collection<MemberWithBaseScope<S>>.maxByVisibility(): MemberWithBaseScope<S> {
|
||||||
var member: MemberWithBaseScope<S>? = null
|
var member: MemberWithBaseScope<S>? = null
|
||||||
for (candidate in this) {
|
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
|
// WITH_STDLIB
|
||||||
// JVM_ABI_K1_K2_DIFF: KT-57300
|
|
||||||
|
|
||||||
abstract class A : AbstractMutableList<Int>()
|
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
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// 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
|
// IGNORE_BACKEND: ANDROID
|
||||||
// ^ NSME: java.util.AbstractMap.remove
|
// ^ NSME: java.util.AbstractMap.remove
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
|
// JVM_ABI_K1_K2_DIFF: KT-65095
|
||||||
|
|
||||||
class Test : Map<String, String>, java.util.AbstractMap<String, String>() {
|
class Test : Map<String, String>, java.util.AbstractMap<String, String>() {
|
||||||
override val entries: MutableSet<MutableMap.MutableEntry<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
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// 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
|
// IGNORE_BACKEND: ANDROID
|
||||||
// ^ NSME: java.util.AbstractMap.remove
|
// ^ NSME: java.util.AbstractMap.remove
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
|
// JVM_ABI_K1_K2_DIFF: KT-65095
|
||||||
|
|
||||||
interface MSS : Map<String, String>
|
interface MSS : Map<String, String>
|
||||||
|
|
||||||
class Test : MSS, java.util.AbstractMap<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
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// 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
|
// IGNORE_BACKEND: ANDROID
|
||||||
// ^ NSME: java.util.AbstractMap.remove
|
// ^ NSME: java.util.AbstractMap.remove
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
|
// JVM_ABI_K1_K2_DIFF: KT-65095
|
||||||
|
|
||||||
// FILE: kt48945b.kt
|
// FILE: kt48945b.kt
|
||||||
interface MSS : Map<String, String>
|
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
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_TARGET: 1.8
|
// 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
|
// IGNORE_BACKEND: ANDROID
|
||||||
// ^ NSME: java.util.AbstractMap.remove
|
// ^ NSME: java.util.AbstractMap.remove
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
|
// JVM_ABI_K1_K2_DIFF: KT-65095
|
||||||
|
|
||||||
// FILE: kt48945b.kt
|
// FILE: kt48945b.kt
|
||||||
interface MSS : Map<String, String>
|
interface MSS : Map<String, String>
|
||||||
|
|||||||
-24
@@ -7,30 +7,6 @@ MODULE main
|
|||||||
public open
|
public open
|
||||||
K2
|
K2
|
||||||
public open operator
|
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 D.class
|
||||||
CLASS METADATA
|
CLASS METADATA
|
||||||
FUNCTION removeAt(I)Ljava/lang/Integer;
|
FUNCTION removeAt(I)Ljava/lang/Integer;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// JVM_ABI_K1_K2_DIFF: KT-57300, KT-63857
|
// JVM_ABI_K1_K2_DIFF: KT-63857
|
||||||
|
|
||||||
// FILE: A.java
|
// FILE: A.java
|
||||||
abstract public class A extends B {
|
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]
|
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.MyList<E4 of <root>.MyMutableList>) returnType:E4 of <root>.MyMutableList [fake_override]
|
||||||
overridden:
|
overridden:
|
||||||
public abstract fun foo (): E2 of <root>.MyList declared in <root>.MyList
|
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>
|
$this: VALUE_PARAMETER name:<this> type:<root>.MyList<E4 of <root>.MyMutableList>
|
||||||
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT [fake_override,val]
|
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
public abstract bar: E2 of <root>.MyList
|
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]
|
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]
|
correspondingProperty: PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
public abstract fun <get-bar> (): E2 of <root>.MyList declared in <root>.MyList
|
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>
|
$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]
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
overridden:
|
overridden:
|
||||||
|
|||||||
Vendored
-2
@@ -1,7 +1,5 @@
|
|||||||
// ISSUE: KT-55828
|
// ISSUE: KT-55828
|
||||||
// DUMP_IR
|
// 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
|
// 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]
|
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.MyList) returnType:kotlin.String [fake_override]
|
||||||
overridden:
|
overridden:
|
||||||
public abstract fun foo (): kotlin.String declared in <root>.MyList
|
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
|
$this: VALUE_PARAMETER name:<this> type:<root>.MyList
|
||||||
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT [fake_override,val]
|
PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
public abstract bar: kotlin.String
|
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]
|
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]
|
correspondingProperty: PROPERTY FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
public abstract fun <get-bar> (): kotlin.String declared in <root>.MyList
|
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
|
$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]
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
overridden:
|
overridden:
|
||||||
|
|||||||
Vendored
-2
@@ -1,7 +1,5 @@
|
|||||||
// ISSUE: KT-55828
|
// ISSUE: KT-55828
|
||||||
// DUMP_IR
|
// 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
|
// JVM_ABI_K1_K2_DIFF: KT-63828
|
||||||
|
|
||||||
interface MyCollection {
|
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
|
// TARGET_BACKEND: JVM
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
// JVM_ABI_K1_K2_DIFF: KT-62788
|
|
||||||
|
|
||||||
// FILE: main.kt
|
// FILE: main.kt
|
||||||
var result = ""
|
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 AC<X> : Collection<X>
|
||||||
|
|
||||||
abstract class ASet<T> : AC<T>(), Set<T>
|
abstract class ASet<T> : AC<T>(), Set<T>
|
||||||
|
|||||||
Vendored
-3
@@ -1,8 +1,5 @@
|
|||||||
// WITH_STDLIB
|
// 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 AIterD : AbstractIterator<Double>()
|
||||||
|
|
||||||
abstract class ACollD : AbstractCollection<Double>()
|
abstract class ACollD : AbstractCollection<Double>()
|
||||||
|
|||||||
-4
@@ -1,9 +1,5 @@
|
|||||||
// WITH_STDLIB
|
// 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 AMapSD : AbstractMap<String, Double>()
|
||||||
|
|
||||||
abstract class AMMapSD : AbstractMutableMap<String, Double>()
|
abstract class AMMapSD : AbstractMutableMap<String, Double>()
|
||||||
|
|||||||
Vendored
-3
@@ -1,8 +1,5 @@
|
|||||||
// WITH_STDLIB
|
// 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 AMListD : AbstractMutableList<Double>()
|
||||||
|
|
||||||
abstract class AMListI : AbstractMutableList<Int>()
|
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() {}
|
class InterfaceThenClass : Base, Derived() {}
|
||||||
|
|
||||||
fun test_1(x: InterfaceThenClass, s: String?) {
|
fun test_1(x: InterfaceThenClass, s: String?) {
|
||||||
x.delete(<!ARGUMENT_TYPE_MISMATCH!>s<!>)
|
x.delete(s)
|
||||||
}
|
}
|
||||||
|
|
||||||
class ClassThenInterface : Derived(), Base {}
|
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
|
// !CHECK_TYPE
|
||||||
// FILE: PythonRunParams.java
|
// FILE: PythonRunParams.java
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
+2
-2
@@ -27,8 +27,8 @@ fun foo() {
|
|||||||
x.add(bar())
|
x.add(bar())
|
||||||
x.add("")
|
x.add("")
|
||||||
|
|
||||||
x[0] = null
|
x[0] = <!NULL_FOR_NONNULL_TYPE!>null<!>
|
||||||
x[0] = bar()
|
x[0] = <!ARGUMENT_TYPE_MISMATCH!>bar()<!>
|
||||||
x[0] = ""
|
x[0] = ""
|
||||||
|
|
||||||
val b1: MutableList<String?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
|
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
|
public abstract fun foo (): kotlin.Unit declared in <root>.TestAbstractEnum2
|
||||||
$this: VALUE_PARAMETER name:<this> type:<root>.TestAbstractEnum2.X1
|
$this: VALUE_PARAMETER name:<this> type:<root>.TestAbstractEnum2.X1
|
||||||
BLOCK_BODY
|
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:
|
overridden:
|
||||||
public final fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.TestAbstractEnum2
|
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?
|
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:
|
overridden:
|
||||||
public final fun hashCode (): kotlin.Int declared in <root>.TestAbstractEnum2
|
public final fun hashCode (): kotlin.Int 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:toString visibility:public modality:OPEN <> ($this:kotlin.Enum<<root>.TestAbstractEnum2>) returnType:kotlin.String [fake_override]
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun toString (): kotlin.String declared in <root>.TestAbstractEnum2
|
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]
|
FUN FAKE_OVERRIDE name:compareTo visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.TestAbstractEnum2>, other:<root>.TestAbstractEnum2) returnType:kotlin.Int [fake_override,operator]
|
||||||
overridden:
|
overridden:
|
||||||
public final fun compareTo (other: <root>.TestAbstractEnum2): kotlin.Int declared in <root>.TestAbstractEnum2
|
public final fun compareTo (other: <root>.TestAbstractEnum2): kotlin.Int declared in <root>.TestAbstractEnum2
|
||||||
@@ -576,19 +576,22 @@ FILE fqName:<root> fileName:/enumClassModality.kt
|
|||||||
overridden:
|
overridden:
|
||||||
public abstract fun foo (): kotlin.Unit declared in <root>.IFoo
|
public abstract fun foo (): kotlin.Unit declared in <root>.IFoo
|
||||||
$this: VALUE_PARAMETER name:<this> type:<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:
|
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
|
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?
|
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:
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in <root>.IFoo
|
||||||
public final fun hashCode (): kotlin.Int declared in kotlin.Enum
|
public final fun hashCode (): kotlin.Int 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:toString visibility:public modality:OPEN <> ($this:kotlin.Enum<<root>.TestAbstractEnum2>) returnType:kotlin.String [fake_override]
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
overridden:
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in <root>.IFoo
|
||||||
public open fun toString (): kotlin.String declared in kotlin.Enum
|
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]
|
FUN FAKE_OVERRIDE name:compareTo visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.TestAbstractEnum2>, other:<root>.TestAbstractEnum2) returnType:kotlin.Int [fake_override,operator]
|
||||||
overridden:
|
overridden:
|
||||||
public final fun compareTo (other: E of kotlin.Enum): kotlin.Int declared in kotlin.Enum
|
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 {
|
enum class TestFinalEnum1 {
|
||||||
X1
|
X1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
// FIR_IDENTICAL
|
// FIR_IDENTICAL
|
||||||
// KT-64271
|
// KT-64271
|
||||||
// IGNORE_BACKEND_K2: JVM_IR
|
|
||||||
|
|
||||||
open class Base {
|
open class Base {
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
|
|||||||
@@ -20,30 +20,30 @@ FILE fqName:<root> fileName:/AbstractMutableMap.kt
|
|||||||
CONST Null type=kotlin.Nothing? value=null
|
CONST Null type=kotlin.Nothing? value=null
|
||||||
PROPERTY name:entries visibility:public modality:OPEN [val]
|
PROPERTY name:entries visibility:public modality:OPEN [val]
|
||||||
overridden:
|
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>>
|
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]
|
correspondingProperty: PROPERTY name:entries visibility:public modality:OPEN [val]
|
||||||
overridden:
|
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>
|
$this: VALUE_PARAMETER name:<this> type:<root>.MyMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||||
BLOCK_BODY
|
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'
|
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
|
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>
|
<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:
|
overridden:
|
||||||
public open fun clear (): kotlin.Unit declared in kotlin.collections.AbstractMutableMap
|
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>
|
$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: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]
|
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:
|
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
|
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:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableMap<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?>
|
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:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>, p0:@[FlexibleNullability] K of <root>.MyMap?) returnType:V of <root>.MyMap? [fake_override]
|
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:
|
overridden:
|
||||||
public open fun remove (p0: @[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?): V of kotlin.collections.AbstractMutableMap? declared in kotlin.collections.AbstractMutableMap
|
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:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] K 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]
|
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:
|
annotations:
|
||||||
SinceKotlin(version = "1.1")
|
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
|
VALUE_PARAMETER name:value index:1 type:V of <root>.MyMap
|
||||||
PROPERTY FAKE_OVERRIDE name:keys visibility:public modality:OPEN [fake_override,val]
|
PROPERTY FAKE_OVERRIDE name:keys visibility:public modality:OPEN [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
public open keys: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?>?
|
public open keys: kotlin.collections.MutableSet<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]
|
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]
|
correspondingProperty: PROPERTY FAKE_OVERRIDE name:keys visibility:public modality:OPEN [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun <get-keys> (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableSet<@[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?>? declared in kotlin.collections.AbstractMutableMap
|
public open fun <get-keys> (): kotlin.collections.MutableSet<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>
|
$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]
|
PROPERTY FAKE_OVERRIDE name:values visibility:public modality:OPEN [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
public open values: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[FlexibleNullability] V of kotlin.collections.AbstractMutableMap?>?
|
public open values: kotlin.collections.MutableCollection<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]
|
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]
|
correspondingProperty: PROPERTY FAKE_OVERRIDE name:values visibility:public modality:OPEN [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun <get-values> (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableCollection<@[FlexibleNullability] V of kotlin.collections.AbstractMutableMap?>? declared in kotlin.collections.AbstractMutableMap
|
public open fun <get-values> (): kotlin.collections.MutableCollection<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>
|
$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]
|
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
public open size: kotlin.Int
|
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]
|
correspondingProperty: PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun <get-size> (): kotlin.Int declared in kotlin.collections.AbstractMutableMap
|
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>
|
$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:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>) returnType:kotlin.Boolean [fake_override]
|
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:
|
overridden:
|
||||||
public open fun isEmpty (): kotlin.Boolean declared in kotlin.collections.AbstractMutableMap
|
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>
|
$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:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>, p0:@[FlexibleNullability] K of <root>.MyMap?) returnType:kotlin.Boolean [fake_override]
|
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:
|
overridden:
|
||||||
public open fun containsKey (p0: @[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?): kotlin.Boolean declared in kotlin.collections.AbstractMutableMap
|
public open fun containsKey (key: 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>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] K of <root>.MyMap?
|
VALUE_PARAMETER name:key index:0 type: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]
|
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:
|
overridden:
|
||||||
public open fun containsValue (p0: @[FlexibleNullability] V of kotlin.collections.AbstractMutableMap?): kotlin.Boolean declared in kotlin.collections.AbstractMutableMap
|
public open fun containsValue (value: 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>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] 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: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]
|
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:
|
overridden:
|
||||||
public open fun get (p0: @[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?): V of kotlin.collections.AbstractMutableMap? declared in kotlin.collections.AbstractMutableMap
|
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:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Map<K of <root>.MyMap, V of <root>.MyMap>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] K 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]
|
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:
|
annotations:
|
||||||
SinceKotlin(version = "1.1")
|
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: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: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?>
|
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:
|
overridden:
|
||||||
public open fun equals (p0: kotlin.Any?): kotlin.Boolean declared in kotlin.collections.AbstractMutableMap
|
public open fun equals (other: 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>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Any?
|
VALUE_PARAMETER name:other 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]
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun hashCode (): kotlin.Int declared in kotlin.collections.AbstractMutableMap
|
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>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
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]
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun toString (): @[EnhancedNullability] kotlin.String declared in kotlin.collections.AbstractMutableMap
|
public open fun toString (): kotlin.String declared in kotlin.collections.AbstractMutableMap
|
||||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractMap<K of <root>.MyMap, V of <root>.MyMap>
|
$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]
|
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:
|
overridden:
|
||||||
protected/*protected and package*/ open fun clone (): @[FlexibleNullability] kotlin.Any? declared in kotlin.collections.AbstractMutableMap
|
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?
|
/* fake */ override fun computeIfPresent(p0: @EnhancedNullability K, p1: @EnhancedNullability BiFunction<in @EnhancedNullability K, in V, out V?>): V?
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: MyMap#containsKey(1:0?){}kotlin.Boolean
|
// Mangled name: MyMap#containsKey(1:0){}kotlin.Boolean
|
||||||
// Public signature: /MyMap.containsKey|5388260987070917879[0]
|
// Public signature: /MyMap.containsKey|-2697616884574929105[0]
|
||||||
// Public signature debug description: containsKey(1:0?){}kotlin.Boolean
|
// Public signature debug description: containsKey(1:0){}kotlin.Boolean
|
||||||
/* fake */ override fun containsKey(p0: K?): Boolean
|
/* fake */ override fun containsKey(key: K): Boolean
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: MyMap#containsValue(1:1?){}kotlin.Boolean
|
// Mangled name: MyMap#containsValue(1:1){}kotlin.Boolean
|
||||||
// Public signature: /MyMap.containsValue|6075307672600079396[0]
|
// Public signature: /MyMap.containsValue|4814293423579408279[0]
|
||||||
// Public signature debug description: containsValue(1:1?){}kotlin.Boolean
|
// Public signature debug description: containsValue(1:1){}kotlin.Boolean
|
||||||
/* fake */ override fun containsValue(p0: V?): Boolean
|
/* fake */ override fun containsValue(value: V): Boolean
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: MyMap#equals(kotlin.Any?){}kotlin.Boolean
|
// Mangled name: MyMap#equals(kotlin.Any?){}kotlin.Boolean
|
||||||
// Public signature: /MyMap.equals|722809408929142791[0]
|
// Public signature: /MyMap.equals|722809408929142791[0]
|
||||||
// Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean
|
// 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:
|
// CHECK:
|
||||||
// Mangled name: MyMap#forEach(java.util.function.BiConsumer<in|1:0{EnhancedNullability},in|1:1{EnhancedNullability}>{EnhancedNullability}){}
|
// 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
|
/* fake */ override fun forEach(p0: @EnhancedNullability BiConsumer<in @EnhancedNullability K, in @EnhancedNullability V>): Unit
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: MyMap#get(1:0?){}1:1?
|
// Mangled name: MyMap#get(1:0){}1:1?
|
||||||
// Public signature: /MyMap.get|-6772263552617817959[0]
|
// Public signature: /MyMap.get|-2177239518810968262[0]
|
||||||
// Public signature debug description: get(1:0?){}1:1?
|
// Public signature debug description: get(1:0){}1:1?
|
||||||
/* fake */ override operator fun get(p0: K?): V?
|
/* fake */ override operator fun get(key: K): V?
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: MyMap#hashCode(){}kotlin.Int
|
// 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?
|
/* fake */ override fun merge(p0: @EnhancedNullability K, p1: @EnhancedNullability (V & Any), p2: @EnhancedNullability BiFunction<in V, in V, out V?>): V?
|
||||||
|
|
||||||
// CHECK:
|
// CHECK:
|
||||||
// Mangled name: MyMap#putAll(kotlin.collections.Map<out|1:0?,1:1?>{EnhancedNullability}){}
|
// Mangled name: MyMap#putAll(kotlin.collections.Map<out|1:0,1:1>){}
|
||||||
// Mangled name for the signature by IR: putAll(kotlin.collections.Map<out|1:0?,1:1?>{EnhancedNullability}){}
|
// Public signature: /MyMap.putAll|3806055228188180795[0]
|
||||||
// Mangled name for the signature by Frontend: putAll(kotlin.collections.Map<out|1:0?,out|1:1?>{EnhancedNullability}){}
|
// Public signature debug description: putAll(kotlin.collections.Map<out|1:0,1:1>){}
|
||||||
// Public signature: /MyMap.putAll|8252374948943605914[0]
|
/* fake */ override fun putAll(from: Map<out K, V>): Unit
|
||||||
// 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
|
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: MyMap#putIfAbsent(1:0{EnhancedNullability};1:1{EnhancedNullability}){}1:1?
|
// 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?
|
/* fake */ override fun putIfAbsent(p0: @EnhancedNullability K, p1: @EnhancedNullability V): V?
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: MyMap#remove(1:0?){}1:1?
|
// Mangled name: MyMap#remove(1:0){}1:1?
|
||||||
// Public signature: /MyMap.remove|-6409265674850759324[0]
|
// Public signature: /MyMap.remove|-2166109024517733367[0]
|
||||||
// Public signature debug description: remove(1:0?){}1:1?
|
// Public signature debug description: remove(1:0){}1:1?
|
||||||
/* fake */ override fun remove(p0: K?): V?
|
/* fake */ override fun remove(key: K): V?
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: MyMap#replace(1:0{EnhancedNullability};1:1{EnhancedNullability}){}1:1?
|
// 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
|
/* fake */ override fun replaceAll(p0: @EnhancedNullability BiFunction<in @EnhancedNullability K, in @EnhancedNullability V, out @EnhancedNullability V>): Unit
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: MyMap#toString(){}kotlin.String{EnhancedNullability}
|
// Mangled name: MyMap#toString(){}kotlin.String
|
||||||
// Public signature: /MyMap.toString|7581629773206850948[0]
|
// Public signature: /MyMap.toString|6958853723545266802[0]
|
||||||
// Public signature debug description: toString(){}kotlin.String{EnhancedNullability}
|
// Public signature debug description: toString(){}kotlin.String
|
||||||
/* fake */ override fun toString(): @EnhancedNullability String
|
/* fake */ override fun toString(): String
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: MyMap#put(1:0;1:1){}1:1?
|
// 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
|
// Mangled name: MyMap{}keys
|
||||||
// Public signature: /MyMap.keys|-1539062068328255324[0]
|
// Public signature: /MyMap.keys|-1539062068328255324[0]
|
||||||
// Public signature debug description: {}keys
|
// Public signature debug description: {}keys
|
||||||
/* fake */ override val keys: MutableSet<K?>?
|
/* fake */ override val keys: MutableSet<K>
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: MyMap#<get-keys>(){}kotlin.collections.MutableSet<1:0?>?
|
// Mangled name: MyMap#<get-keys>(){}kotlin.collections.MutableSet<1:0>
|
||||||
// Public signature: /MyMap.keys.<get-keys>|-1655820107680360252[0]
|
// Public signature: /MyMap.keys.<get-keys>|7916886785914150473[0]
|
||||||
// Public signature debug description: <get-keys>(){}kotlin.collections.MutableSet<1:0?>?
|
// Public signature debug description: <get-keys>(){}kotlin.collections.MutableSet<1:0>
|
||||||
/* fake */ override get(): MutableSet<K?>?
|
/* fake */ override get(): MutableSet<K>
|
||||||
|
|
||||||
// CHECK:
|
// CHECK:
|
||||||
// Mangled name: MyMap{}size
|
// Mangled name: MyMap{}size
|
||||||
@@ -166,12 +164,12 @@ class MyMap<K : Any, V : Any> : AbstractMutableMap<K, V> {
|
|||||||
// Mangled name: MyMap{}values
|
// Mangled name: MyMap{}values
|
||||||
// Public signature: /MyMap.values|-764749005844117249[0]
|
// Public signature: /MyMap.values|-764749005844117249[0]
|
||||||
// Public signature debug description: {}values
|
// Public signature debug description: {}values
|
||||||
/* fake */ override val values: MutableCollection<V?>?
|
/* fake */ override val values: MutableCollection<V>
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: MyMap#<get-values>(){}kotlin.collections.MutableCollection<1:1?>?
|
// Mangled name: MyMap#<get-values>(){}kotlin.collections.MutableCollection<1:1>
|
||||||
// Public signature: /MyMap.values.<get-values>|-600458440523652989[0]
|
// Public signature: /MyMap.values.<get-values>|2480674037943213638[0]
|
||||||
// Public signature debug description: <get-values>(){}kotlin.collections.MutableCollection<1:1?>?
|
// Public signature debug description: <get-values>(){}kotlin.collections.MutableCollection<1:1>
|
||||||
/* fake */ override get(): MutableCollection<V?>?
|
/* fake */ override get(): MutableCollection<V>
|
||||||
|
|
||||||
// CHECK:
|
// CHECK:
|
||||||
// Mangled name: MyMap{}entries
|
// Mangled name: MyMap{}entries
|
||||||
@@ -185,3 +183,4 @@ class MyMap<K : Any, V : Any> : AbstractMutableMap<K, V> {
|
|||||||
override get(): MutableSet<MutableEntry<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'
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in java.util.ArrayList'
|
||||||
<E>: <root>.Some<T of <root>.SomeList>
|
<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>>]'
|
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:
|
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
|
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>>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] <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: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]
|
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:
|
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
|
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>?>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<@[FlexibleNullability] <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:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>, p0:kotlin.Int) returnType:@[EnhancedNullability] <root>.Some<T of <root>.SomeList> [fake_override,operator]
|
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:
|
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
|
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>>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
|
VALUE_PARAMETER name:index 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]
|
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:
|
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
|
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>>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] <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:java.util.ArrayList<<root>.Some<T of <root>.SomeList>>) returnType:kotlin.Boolean [fake_override]
|
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:
|
overridden:
|
||||||
|
public abstract fun isEmpty (): kotlin.Boolean declared in <root>.MyList
|
||||||
public open fun isEmpty (): kotlin.Boolean declared in java.util.ArrayList
|
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]
|
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:
|
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
|
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>>
|
$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:
|
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
|
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>>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<T of <root>.SomeList>>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] <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]
|
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:
|
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
|
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>>
|
$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]
|
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:
|
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
|
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>>
|
$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: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]
|
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:
|
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
|
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>>
|
$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:p0 index:0 type:kotlin.Int
|
||||||
VALUE_PARAMETER name:p1 index:1 type:kotlin.Int
|
VALUE_PARAMETER name:p1 index:1 type:kotlin.Int
|
||||||
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
|
public abstract size: kotlin.Int
|
||||||
public open 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]
|
correspondingProperty: PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
|
public abstract fun <get-size> (): kotlin.Int declared in <root>.MyList
|
||||||
public open fun <get-size> (): kotlin.Int declared in java.util.ArrayList
|
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]
|
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:
|
overridden:
|
||||||
public open fun toArray (): @[FlexibleNullability] @[FlexibleArrayElementVariance] kotlin.Array<out @[FlexibleNullability] kotlin.Any?>? declared in java.util.ArrayList
|
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>>
|
$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:p0 index:0 type:kotlin.Int
|
||||||
VALUE_PARAMETER name:p1 index:1 type:@[EnhancedNullability] <root>.Some<T of <root>.SomeList>
|
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:
|
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
|
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>>
|
$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:java.util.AbstractList<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>, 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:
|
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
|
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>?>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Any?
|
VALUE_PARAMETER name:other 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]
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
overridden:
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in <root>.MyList
|
||||||
public open fun hashCode (): kotlin.Int declared in java.util.ArrayList
|
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>?>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
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]
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
overridden:
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in <root>.MyList
|
||||||
public open fun toString (): @[EnhancedNullability] kotlin.String declared in java.util.ArrayList
|
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]
|
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:
|
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
|
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:
|
overridden:
|
||||||
public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] <root>.Some<T of <root>.MyList>> declared in <root>.MyList
|
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>>
|
$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:
|
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
|
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>?>?
|
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]
|
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:
|
overridden:
|
||||||
@@ -385,39 +402,39 @@ FILE fqName:<root> fileName:/MultiList.kt
|
|||||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.SomeList'
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.SomeList'
|
||||||
<T>: kotlin.String
|
<T>: kotlin.String
|
||||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:FinalList modality:FINAL visibility:public superTypes:[<root>.SomeList<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:
|
overridden:
|
||||||
public open fun contains (p0: @[EnhancedNullability] <root>.Some<T of <root>.SomeList>): kotlin.Boolean declared in <root>.SomeList
|
public open fun contains (element: <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>>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<kotlin.String>>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] <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:java.util.AbstractCollection<@[FlexibleNullability] <root>.Some<kotlin.String>?>, p0:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<kotlin.String>?>) returnType:kotlin.Boolean [fake_override]
|
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:
|
overridden:
|
||||||
public open fun containsAll (p0: kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>): kotlin.Boolean declared in <root>.SomeList
|
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:java.util.AbstractCollection<@[FlexibleNullability] <root>.Some<kotlin.String>?>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<kotlin.String>>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<@[FlexibleNullability] <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:java.util.ArrayList<<root>.Some<kotlin.String>>, p0:kotlin.Int) returnType:@[EnhancedNullability] <root>.Some<kotlin.String> [fake_override,operator]
|
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:
|
overridden:
|
||||||
public open fun get (p0: kotlin.Int): @[EnhancedNullability] <root>.Some<T of <root>.SomeList> declared in <root>.SomeList
|
public open fun get (index: kotlin.Int): <root>.Some<T of <root>.SomeList> 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>>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
|
VALUE_PARAMETER name:index 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]
|
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:
|
overridden:
|
||||||
public open fun indexOf (p0: @[EnhancedNullability] <root>.Some<T of <root>.SomeList>): kotlin.Int declared in <root>.SomeList
|
public open fun indexOf (element: <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>>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<kotlin.String>>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] <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:java.util.ArrayList<<root>.Some<kotlin.String>>) returnType:kotlin.Boolean [fake_override]
|
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:OPEN <> ($this:kotlin.collections.List<<root>.Some<kotlin.String>>) returnType:kotlin.Boolean [fake_override]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun isEmpty (): kotlin.Boolean declared in <root>.SomeList
|
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]
|
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:
|
overridden:
|
||||||
public open fun iterator (): @[EnhancedNullability] kotlin.collections.MutableIterator<@[EnhancedNullability] <root>.Some<T of <root>.SomeList>> declared in <root>.SomeList
|
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>>
|
$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:
|
overridden:
|
||||||
public open fun lastIndexOf (p0: @[EnhancedNullability] <root>.Some<T of <root>.SomeList>): kotlin.Int declared in <root>.SomeList
|
public open fun lastIndexOf (element: <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>>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<root>.Some<kotlin.String>>
|
||||||
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] <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]
|
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:
|
overridden:
|
||||||
public open fun listIterator (): @[EnhancedNullability] kotlin.collections.MutableListIterator<@[EnhancedNullability] <root>.Some<T of <root>.SomeList>> declared in <root>.SomeList
|
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]
|
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
public open size: kotlin.Int
|
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]
|
correspondingProperty: PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun <get-size> (): kotlin.Int declared in <root>.SomeList
|
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]
|
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:
|
overridden:
|
||||||
public open fun toArray (): @[FlexibleNullability] @[FlexibleArrayElementVariance] kotlin.Array<out @[FlexibleNullability] kotlin.Any?>? declared in <root>.SomeList
|
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>>
|
$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:p0 index:0 type:kotlin.Int
|
||||||
VALUE_PARAMETER name:p1 index:1 type:@[EnhancedNullability] <root>.Some<kotlin.String>
|
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:
|
overridden:
|
||||||
public open fun spliterator (): @[EnhancedNullability] java.util.Spliterator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?> declared in <root>.SomeList
|
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>>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List<<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]
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun equals (p0: kotlin.Any?): kotlin.Boolean declared in <root>.SomeList
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.SomeList
|
||||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractList<@[FlexibleNullability] <root>.Some<kotlin.String>?>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
VALUE_PARAMETER name:p0 index:0 type:kotlin.Any?
|
VALUE_PARAMETER name:other 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]
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun hashCode (): kotlin.Int declared in <root>.SomeList
|
public open fun hashCode (): kotlin.Int declared in <root>.SomeList
|
||||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractList<@[FlexibleNullability] <root>.Some<kotlin.String>?>
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:java.util.AbstractCollection<@[FlexibleNullability] <root>.Some<kotlin.String>?>) returnType:@[EnhancedNullability] kotlin.String [fake_override]
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun toString (): @[EnhancedNullability] kotlin.String declared in <root>.SomeList
|
public open fun toString (): kotlin.String declared in <root>.SomeList
|
||||||
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractCollection<@[FlexibleNullability] <root>.Some<kotlin.String>?>
|
$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]
|
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:
|
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
|
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:
|
overridden:
|
||||||
public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] <root>.Some<T of <root>.SomeList>> declared in <root>.SomeList
|
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>>
|
$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:
|
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
|
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>?>?
|
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]
|
FUN FAKE_OVERRIDE name:trimToSize visibility:public modality:OPEN <> ($this:java.util.ArrayList<<root>.Some<kotlin.String>>) returnType:kotlin.Unit [fake_override]
|
||||||
overridden:
|
overridden:
|
||||||
|
|||||||
@@ -45,16 +45,16 @@ class FinalList : SomeList<String> {
|
|||||||
/* fake */ override fun clone(): @EnhancedNullability Any
|
/* fake */ override fun clone(): @EnhancedNullability Any
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: FinalList#contains(Some<kotlin.String>{EnhancedNullability}){}kotlin.Boolean
|
// Mangled name: FinalList#contains(Some<kotlin.String>){}kotlin.Boolean
|
||||||
// Public signature: /FinalList.contains|3096303196508390878[0]
|
// Public signature: /FinalList.contains|3306019531315598892[0]
|
||||||
// Public signature debug description: contains(Some<kotlin.String>{EnhancedNullability}){}kotlin.Boolean
|
// Public signature debug description: contains(Some<kotlin.String>){}kotlin.Boolean
|
||||||
/* fake */ override operator fun contains(p0: @EnhancedNullability Some<String>): Boolean
|
/* fake */ override operator fun contains(element: Some<String>): Boolean
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: FinalList#containsAll(kotlin.collections.Collection<Some<kotlin.String>?>){}kotlin.Boolean
|
// Mangled name: FinalList#containsAll(kotlin.collections.Collection<Some<kotlin.String>>){}kotlin.Boolean
|
||||||
// Public signature: /FinalList.containsAll|5422538213063988463[0]
|
// Public signature: /FinalList.containsAll|9064771870641374979[0]
|
||||||
// Public signature debug description: containsAll(kotlin.collections.Collection<Some<kotlin.String>?>){}kotlin.Boolean
|
// Public signature debug description: containsAll(kotlin.collections.Collection<Some<kotlin.String>>){}kotlin.Boolean
|
||||||
/* fake */ override fun containsAll(p0: Collection<Some<String>?>): Boolean
|
/* fake */ override fun containsAll(elements: Collection<Some<String>>): Boolean
|
||||||
|
|
||||||
// CHECK:
|
// CHECK:
|
||||||
// Mangled name: FinalList#ensureCapacity(kotlin.Int){}
|
// Mangled name: FinalList#ensureCapacity(kotlin.Int){}
|
||||||
@@ -66,7 +66,7 @@ class FinalList : SomeList<String> {
|
|||||||
// Mangled name: FinalList#equals(kotlin.Any?){}kotlin.Boolean
|
// Mangled name: FinalList#equals(kotlin.Any?){}kotlin.Boolean
|
||||||
// Public signature: /FinalList.equals|722809408929142791[0]
|
// Public signature: /FinalList.equals|722809408929142791[0]
|
||||||
// Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean
|
// 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:
|
// CHECK:
|
||||||
// Mangled name: FinalList#forEach(java.util.function.Consumer<in|Some<kotlin.String>?>?){}
|
// 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
|
/* fake */ override fun forEach(p0: Consumer<in Some<String>?>?): Unit
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: FinalList#get(kotlin.Int){}Some<kotlin.String>{EnhancedNullability}
|
// Mangled name: FinalList#get(kotlin.Int){}Some<kotlin.String>
|
||||||
// Public signature: /FinalList.get|-1548509062534898774[0]
|
// Public signature: /FinalList.get|5550525129583729061[0]
|
||||||
// Public signature debug description: get(kotlin.Int){}Some<kotlin.String>{EnhancedNullability}
|
// Public signature debug description: get(kotlin.Int){}Some<kotlin.String>
|
||||||
/* fake */ override operator fun get(p0: Int): @EnhancedNullability Some<String>
|
/* fake */ override operator fun get(index: Int): Some<String>
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: FinalList#hashCode(){}kotlin.Int
|
// Mangled name: FinalList#hashCode(){}kotlin.Int
|
||||||
@@ -87,10 +87,10 @@ class FinalList : SomeList<String> {
|
|||||||
/* fake */ override fun hashCode(): Int
|
/* fake */ override fun hashCode(): Int
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: FinalList#indexOf(Some<kotlin.String>{EnhancedNullability}){}kotlin.Int
|
// Mangled name: FinalList#indexOf(Some<kotlin.String>){}kotlin.Int
|
||||||
// Public signature: /FinalList.indexOf|7750638587776299509[0]
|
// Public signature: /FinalList.indexOf|5440857764812757471[0]
|
||||||
// Public signature debug description: indexOf(Some<kotlin.String>{EnhancedNullability}){}kotlin.Int
|
// Public signature debug description: indexOf(Some<kotlin.String>){}kotlin.Int
|
||||||
/* fake */ override fun indexOf(p0: @EnhancedNullability Some<String>): Int
|
/* fake */ override fun indexOf(element: Some<String>): Int
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: FinalList#isEmpty(){}kotlin.Boolean
|
// Mangled name: FinalList#isEmpty(){}kotlin.Boolean
|
||||||
@@ -105,10 +105,10 @@ class FinalList : SomeList<String> {
|
|||||||
/* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability Some<String>>
|
/* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability Some<String>>
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: FinalList#lastIndexOf(Some<kotlin.String>{EnhancedNullability}){}kotlin.Int
|
// Mangled name: FinalList#lastIndexOf(Some<kotlin.String>){}kotlin.Int
|
||||||
// Public signature: /FinalList.lastIndexOf|5741372771241017733[0]
|
// Public signature: /FinalList.lastIndexOf|-46333449251229155[0]
|
||||||
// Public signature debug description: lastIndexOf(Some<kotlin.String>{EnhancedNullability}){}kotlin.Int
|
// Public signature debug description: lastIndexOf(Some<kotlin.String>){}kotlin.Int
|
||||||
/* fake */ override fun lastIndexOf(p0: @EnhancedNullability Some<String>): Int
|
/* fake */ override fun lastIndexOf(element: Some<String>): Int
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: FinalList#listIterator(){}kotlin.collections.MutableListIterator<Some<kotlin.String>{EnhancedNullability}>{EnhancedNullability}
|
// 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?>?
|
/* fake */ override fun <T : Any?> toArray(p0: Array<out T?>?): Array<out T?>?
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: FinalList#toString(){}kotlin.String{EnhancedNullability}
|
// Mangled name: FinalList#toString(){}kotlin.String
|
||||||
// Public signature: /FinalList.toString|7581629773206850948[0]
|
// Public signature: /FinalList.toString|6958853723545266802[0]
|
||||||
// Public signature debug description: toString(){}kotlin.String{EnhancedNullability}
|
// Public signature debug description: toString(){}kotlin.String
|
||||||
/* fake */ override fun toString(): @EnhancedNullability String
|
/* fake */ override fun toString(): String
|
||||||
|
|
||||||
// CHECK:
|
// CHECK:
|
||||||
// Mangled name: FinalList#trimToSize(){}
|
// Mangled name: FinalList#trimToSize(){}
|
||||||
@@ -337,16 +337,16 @@ open class SomeList<T : Any?> : ArrayList<Some<T>>, MyList<T> {
|
|||||||
/* fake */ override fun clone(): @EnhancedNullability Any
|
/* fake */ override fun clone(): @EnhancedNullability Any
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: SomeList#contains(Some<1:0>{EnhancedNullability}){}kotlin.Boolean
|
// Mangled name: SomeList#contains(Some<1:0>){}kotlin.Boolean
|
||||||
// Public signature: /SomeList.contains|8295010842646223621[0]
|
// Public signature: /SomeList.contains|-2920670572443692722[0]
|
||||||
// Public signature debug description: contains(Some<1:0>{EnhancedNullability}){}kotlin.Boolean
|
// Public signature debug description: contains(Some<1:0>){}kotlin.Boolean
|
||||||
/* fake */ override operator fun contains(p0: @EnhancedNullability Some<T>): Boolean
|
/* fake */ override operator fun contains(element: Some<T>): Boolean
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: SomeList#containsAll(kotlin.collections.Collection<Some<1:0>?>){}kotlin.Boolean
|
// Mangled name: SomeList#containsAll(kotlin.collections.Collection<Some<1:0>>){}kotlin.Boolean
|
||||||
// Public signature: /SomeList.containsAll|5540597363096413063[0]
|
// Public signature: /SomeList.containsAll|4060484050930787658[0]
|
||||||
// Public signature debug description: containsAll(kotlin.collections.Collection<Some<1:0>?>){}kotlin.Boolean
|
// Public signature debug description: containsAll(kotlin.collections.Collection<Some<1:0>>){}kotlin.Boolean
|
||||||
/* fake */ override fun containsAll(p0: Collection<Some<T>?>): Boolean
|
/* fake */ override fun containsAll(elements: Collection<Some<T>>): Boolean
|
||||||
|
|
||||||
// CHECK:
|
// CHECK:
|
||||||
// Mangled name: SomeList#ensureCapacity(kotlin.Int){}
|
// 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
|
// Mangled name: SomeList#equals(kotlin.Any?){}kotlin.Boolean
|
||||||
// Public signature: /SomeList.equals|722809408929142791[0]
|
// Public signature: /SomeList.equals|722809408929142791[0]
|
||||||
// Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean
|
// 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:
|
// CHECK:
|
||||||
// Mangled name: SomeList#forEach(java.util.function.Consumer<in|Some<1:0>?>?){}
|
// 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
|
/* fake */ override fun forEach(p0: Consumer<in Some<T>?>?): Unit
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: SomeList#get(kotlin.Int){}Some<1:0>{EnhancedNullability}
|
// Mangled name: SomeList#get(kotlin.Int){}Some<1:0>
|
||||||
// Public signature: /SomeList.get|-3046572306153092239[0]
|
// Public signature: /SomeList.get|7985278152358407752[0]
|
||||||
// Public signature debug description: get(kotlin.Int){}Some<1:0>{EnhancedNullability}
|
// Public signature debug description: get(kotlin.Int){}Some<1:0>
|
||||||
/* fake */ override operator fun get(p0: Int): @EnhancedNullability Some<T>
|
/* fake */ override operator fun get(index: Int): Some<T>
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: SomeList#hashCode(){}kotlin.Int
|
// 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
|
/* fake */ override fun hashCode(): Int
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: SomeList#indexOf(Some<1:0>{EnhancedNullability}){}kotlin.Int
|
// Mangled name: SomeList#indexOf(Some<1:0>){}kotlin.Int
|
||||||
// Public signature: /SomeList.indexOf|-8100421064396203855[0]
|
// Public signature: /SomeList.indexOf|4192413876446876489[0]
|
||||||
// Public signature debug description: indexOf(Some<1:0>{EnhancedNullability}){}kotlin.Int
|
// Public signature debug description: indexOf(Some<1:0>){}kotlin.Int
|
||||||
/* fake */ override fun indexOf(p0: @EnhancedNullability Some<T>): Int
|
/* fake */ override fun indexOf(element: Some<T>): Int
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: SomeList#isEmpty(){}kotlin.Boolean
|
// 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>>
|
/* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability Some<T>>
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: SomeList#lastIndexOf(Some<1:0>{EnhancedNullability}){}kotlin.Int
|
// Mangled name: SomeList#lastIndexOf(Some<1:0>){}kotlin.Int
|
||||||
// Public signature: /SomeList.lastIndexOf|1971452683190765047[0]
|
// Public signature: /SomeList.lastIndexOf|-4798028145670003218[0]
|
||||||
// Public signature debug description: lastIndexOf(Some<1:0>{EnhancedNullability}){}kotlin.Int
|
// Public signature debug description: lastIndexOf(Some<1:0>){}kotlin.Int
|
||||||
/* fake */ override fun lastIndexOf(p0: @EnhancedNullability Some<T>): Int
|
/* fake */ override fun lastIndexOf(element: Some<T>): Int
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: SomeList#listIterator(){}kotlin.collections.MutableListIterator<Some<1:0>{EnhancedNullability}>{EnhancedNullability}
|
// 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?>?
|
/* fake */ override fun <T : Any?> toArray(p0: Array<out T?>?): Array<out T?>?
|
||||||
|
|
||||||
// CHECK JVM_IR:
|
// CHECK JVM_IR:
|
||||||
// Mangled name: SomeList#toString(){}kotlin.String{EnhancedNullability}
|
// Mangled name: SomeList#toString(){}kotlin.String
|
||||||
// Public signature: /SomeList.toString|7581629773206850948[0]
|
// Public signature: /SomeList.toString|6958853723545266802[0]
|
||||||
// Public signature debug description: toString(){}kotlin.String{EnhancedNullability}
|
// Public signature debug description: toString(){}kotlin.String
|
||||||
/* fake */ override fun toString(): @EnhancedNullability String
|
/* fake */ override fun toString(): String
|
||||||
|
|
||||||
// CHECK:
|
// CHECK:
|
||||||
// Mangled name: SomeList#trimToSize(){}
|
// Mangled name: SomeList#trimToSize(){}
|
||||||
@@ -629,3 +629,4 @@ interface MyList<T : Any?> : List<Some<T>> {
|
|||||||
abstract /* fake */ override get(): Int
|
abstract /* fake */ override get(): Int
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Generated
+42
@@ -345,6 +345,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
|||||||
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
runTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("duplicateDefaultValuesSubsumedIntersection.kt")
|
||||||
|
public void testDuplicateDefaultValuesSubsumedIntersection() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/duplicateDefaultValuesSubsumedIntersection.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
@TestMetadata("duplicateDirrectOverriddenCallables.kt")
|
||||||
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
public void testDuplicateDirrectOverriddenCallables() throws Exception {
|
||||||
@@ -28698,6 +28704,36 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
|||||||
runTest("compiler/testData/diagnostics/tests/override/InternalPotentialOverride.kt");
|
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
|
@Test
|
||||||
@TestMetadata("InvisiblePotentialOverride.kt")
|
@TestMetadata("InvisiblePotentialOverride.kt")
|
||||||
public void testInvisiblePotentialOverride() throws Exception {
|
public void testInvisiblePotentialOverride() throws Exception {
|
||||||
@@ -28965,6 +29001,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
|||||||
runTest("compiler/testData/diagnostics/tests/override/clashesOnInheritance/genericWithUpperBound.kt");
|
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
|
@Test
|
||||||
@TestMetadata("kt13355.kt")
|
@TestMetadata("kt13355.kt")
|
||||||
public void testKt13355() throws Exception {
|
public void testKt13355() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user