[FIR] Properly collect overriddens for method enhancement

If some java class has multiple supertypes then we need to collect
  overriddens from all those types directly, even if superTypeScope
  (which is FirTypeIntersectionScope in this case) returns only
  one symbol from one of this types (not intersection one)

This is needed to proper enhancement in cases when some type occurs
  multiple times in supertypes graph with different nullability
  of arguments:

class ConcurrentHashMap<K, V> : AbstractMap<K!, V!>, MutableMap<K, V>

If we try to find method `get(key: K): V` supertype scope returns
  `AbstractMap.get(key: K!): V!` (because it actually overrides
  `MutableMap(key: K): V?`), but we need to get both symbols to
  properly enhance types for `ConcurrentHashMap.remove`
This commit is contained in:
Dmitriy Novozhilov
2021-11-19 18:16:07 +03:00
parent 01c0cf80d0
commit 9807c67ae4
42 changed files with 393 additions and 301 deletions
@@ -17339,6 +17339,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag
runTest("compiler/testData/diagnostics/tests/j+k/protectedStaticSamePackage.kt");
}
@Test
@TestMetadata("purelyImplementedSupertype.kt")
public void testPurelyImplementedSupertype() throws Exception {
runTest("compiler/testData/diagnostics/tests/j+k/purelyImplementedSupertype.kt");
}
@Test
@TestMetadata("rawOverride.kt")
public void testRawOverride() throws Exception {
@@ -7,7 +7,7 @@ FILE: KotlinImporterComponent.kt
}
public final class State : R|kotlin/Any| {
public constructor(directories: R|kotlin/collections/List<kotlin/String>| = R|java/util/ArrayList.ArrayList|<R|ft<kotlin/String, kotlin/String?>|>()): R|simulation/KotlinImporterComponent.State| {
public constructor(directories: R|kotlin/collections/List<kotlin/String>| = R|java/util/ArrayList.ArrayList|<R|kotlin/String|>()): R|simulation/KotlinImporterComponent.State| {
super<R|kotlin/Any|>()
}
@@ -16,10 +16,10 @@ FILE: simpleDelegatedToMap.kt
}
}
public final var bar: R|ft<kotlin/Any, kotlin/Any?>|by R|kotlin/collections/hashMapOf|<R|kotlin/String|, R|kotlin/Any|>()
public get(): R|ft<kotlin/Any, kotlin/Any?>| {
^ D|/bar|.R|kotlin/collections/getValue|<R|ft<kotlin/Any, kotlin/Any?>|, R|ft<kotlin/Any, kotlin/Any?>|>(Null(null), ::R|/bar|)
public final var bar: R|kotlin/Any|by R|kotlin/collections/hashMapOf|<R|kotlin/String|, R|kotlin/Any|>()
public get(): R|kotlin/Any| {
^ D|/bar|.R|kotlin/collections/getValue|<R|kotlin/Any|, R|kotlin/Any|>(Null(null), ::R|/bar|)
}
public set(<set-?>: R|ft<kotlin/Any, kotlin/Any?>|): R|kotlin/Unit| {
D|/bar|.R|kotlin/collections/setValue|<R|ft<kotlin/Any, kotlin/Any?>|>(Null(null), ::R|/bar|, R|<local>/bar|)
public set(<set-?>: R|kotlin/Any|): R|kotlin/Unit| {
D|/bar|.R|kotlin/collections/setValue|<R|kotlin/Any|>(Null(null), ::R|/bar|, R|<local>/bar|)
}
@@ -1,10 +1,10 @@
FILE: hashSet.kt
public final val a: R|kotlin/collections/MutableSet<kotlin/String>?| = R|java/util/HashSet.HashSet|<R|ft<kotlin/String, kotlin/String?>|>()
public final val a: R|kotlin/collections/MutableSet<kotlin/String>?| = R|java/util/HashSet.HashSet|<R|kotlin/String|>()
public get(): R|kotlin/collections/MutableSet<kotlin/String>?|
public final var b: R|kotlin/collections/MutableSet<kotlin/String>?| = Null(null)
public get(): R|kotlin/collections/MutableSet<kotlin/String>?|
public set(_: R|kotlin/collections/MutableSet<kotlin/String>?|): R|kotlin/Unit| {
F|/b| = R|java/util/HashSet.HashSet|<R|ft<kotlin/String, kotlin/String?>|>()
F|/b| = R|java/util/HashSet.HashSet|<R|kotlin/String|>()
}
public final var <T> R|kotlin/collections/MutableSet<T>|.d: R|T?|
public get(): R|T?| {
@@ -17,6 +17,6 @@ FILE: hashSet.kt
}
public final fun foo(): R|kotlin/Unit| {
lvar c: R|kotlin/collections/MutableSet<kotlin/String>?| = Null(null)
R|<local>/c| = R|java/util/HashSet.HashSet|<R|ft<kotlin/String, kotlin/String?>|>()
R|<local>/c| = R|java/util/HashSet.HashSet|<R|kotlin/String|>()
R|<local>/c|!!.R|/d| = R|/produce|<R|kotlin/String?|>()
}
@@ -17339,6 +17339,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti
runTest("compiler/testData/diagnostics/tests/j+k/protectedStaticSamePackage.kt");
}
@Test
@TestMetadata("purelyImplementedSupertype.kt")
public void testPurelyImplementedSupertype() throws Exception {
runTest("compiler/testData/diagnostics/tests/j+k/purelyImplementedSupertype.kt");
}
@Test
@TestMetadata("rawOverride.kt")
public void testRawOverride() throws Exception {
@@ -17339,6 +17339,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac
runTest("compiler/testData/diagnostics/tests/j+k/protectedStaticSamePackage.kt");
}
@Test
@TestMetadata("purelyImplementedSupertype.kt")
public void testPurelyImplementedSupertype() throws Exception {
runTest("compiler/testData/diagnostics/tests/j+k/purelyImplementedSupertype.kt");
}
@Test
@TestMetadata("rawOverride.kt")
public void testRawOverride() throws Exception {
@@ -384,9 +384,6 @@ class FirSignatureEnhancement(
ownerParameter: FirJavaValueParameter,
index: Int
): FirResolvedTypeRef {
if (ownerParameter.returnTypeRef is FirResolvedTypeRef) {
return ownerParameter.returnTypeRef as FirResolvedTypeRef
}
return ownerFunction.enhanceValueParameter(
overriddenMembers,
ownerParameter,
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.java.enhancement.FirSignatureEnhancement
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
import org.jetbrains.kotlin.fir.scopes.impl.FirTypeIntersectionScope
import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.name.Name
@@ -26,7 +27,7 @@ class JavaClassMembersEnhancementScope(
private val overrideBindCache = mutableMapOf<Name, Map<FirCallableSymbol<*>?, List<FirCallableDeclaration>>>()
private val signatureEnhancement = FirSignatureEnhancement(owner.fir, session) {
overriddenMembers(name)
overriddenMembersForEnhancement(name)
}
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
@@ -64,6 +65,23 @@ class JavaClassMembersEnhancementScope(
return super.processFunctionsByName(name, processor)
}
private fun FirCallableDeclaration.overriddenMembersForEnhancement(name: Name): List<FirCallableDeclaration> {
val directlyOverriddensFromScopeFir = overriddenMembers(name)
val superTypesScope = useSiteMemberScope.superTypesScope as? FirTypeIntersectionScope ?: return directlyOverriddensFromScopeFir
val directlyOverriddensFromScope = directlyOverriddensFromScopeFir.map { it.symbol }
val result = mutableSetOf<FirCallableSymbol<*>>()
for (intersectedOverriddenSymbol in directlyOverriddensFromScope) {
val newOverriddens = superTypesScope.getDirectOverriddenSymbols(intersectedOverriddenSymbol).map { it.member }
if (newOverriddens.isNotEmpty()) {
result += newOverriddens
} else {
result += intersectedOverriddenSymbol
}
}
return result.map { it.fir }
}
private fun FirCallableDeclaration.overriddenMembers(name: Name): List<FirCallableDeclaration> {
val backMap = overrideBindCache.getOrPut(name) {
val result = mutableMapOf<FirCallableSymbol<*>?, MutableList<FirCallableDeclaration>>()
@@ -19,7 +19,7 @@ abstract class AbstractFirUseSiteMemberScope(
val classId: ClassId,
session: FirSession,
overrideChecker: FirOverrideChecker,
protected val superTypesScope: FirTypeScope,
val superTypesScope: FirTypeScope,
protected val declaredMemberScope: FirContainingNamesAwareScope
) : AbstractFirOverrideScope(session, overrideChecker) {
@@ -159,8 +159,7 @@ class FirTypeIntersectionScope private constructor(
}.withScope(scopeForMostSpecific)
}
private fun <S : FirCallableSymbol<*>>
MutableList<MemberWithBaseScope<S>>.calcBaseMembersForIntersectionOverride(): List<MemberWithBaseScope<S>> {
private fun <S : FirCallableSymbol<*>> List<MemberWithBaseScope<S>>.calcBaseMembersForIntersectionOverride(): List<MemberWithBaseScope<S>> {
if (size == 1) return this
val unwrappedMemberSet = mutableSetOf<MemberWithBaseScope<S>>()
for ((member, scope) in this) {
@@ -195,8 +194,9 @@ class FirTypeIntersectionScope private constructor(
}
}
}
removeIf { (member, _) -> member.fir.unwrapSubstitutionOverrides().symbol in baseMembers }
return this
val result = this.toMutableList()
result.removeIf { (member, _) -> member.fir.unwrapSubstitutionOverrides().symbol in baseMembers }
return result
}
private fun <D : FirCallableSymbol<*>> chooseIntersectionOverrideModality(
@@ -514,7 +514,7 @@ class FirTypeIntersectionScope private constructor(
}
@Suppress("UNCHECKED_CAST")
private fun <S : FirCallableSymbol<*>> getDirectOverriddenSymbols(symbol: S): Collection<MemberWithBaseScope<S>> {
fun <S : FirCallableSymbol<*>> getDirectOverriddenSymbols(symbol: S): Collection<MemberWithBaseScope<S>> {
val intersectionOverride = intersectionOverrides.getValueIfComputed(symbol)
val allDirectOverridden = overriddenSymbols[symbol].orEmpty() + intersectionOverride?.let {
overriddenSymbols[it.member]
@@ -1,9 +0,0 @@
interface A
interface B: A
interface D
interface BaseSuper<out T>
interface BaseImpl: BaseSuper<D>
interface DerivedSuper<out S>: <!INCONSISTENT_TYPE_PARAMETER_VALUES!>BaseSuper<S>, BaseImpl<!>
fun test(t: BaseSuper<B>) = t is <!CANNOT_CHECK_FOR_ERASED!>DerivedSuper<A><!>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A
interface B: A
interface D
@@ -0,0 +1,29 @@
// FULL_JDK
// FILE: Util.java
public class Util {
public static String getString() { return null; }
}
// FILE: main.kt
import java.util.concurrent.ConcurrentHashMap
fun testWithMap(map: ConcurrentHashMap<Int, String>): Int {
var string = map[1]
if (string == null) {
string = map.computeIfAbsent(1) { "hello" }
}
return string.length
}
fun testWithUtil(map: ConcurrentHashMap<Int, String>): Int {
var string = map[1]
if (string == null) {
string = Util.getString()
}
return string<!UNSAFE_CALL!>.<!>length
}
fun test(list: java.util.ArrayList<String?>) {
val x = list.get(0)<!UNSAFE_CALL!>.<!>length
}
@@ -0,0 +1,29 @@
// FULL_JDK
// FILE: Util.java
public class Util {
public static String getString() { return null; }
}
// FILE: main.kt
import java.util.concurrent.ConcurrentHashMap
fun testWithMap(map: ConcurrentHashMap<Int, String>): Int {
var string = map[1]
if (string == null) {
string = map.computeIfAbsent(1) { "hello" }
}
return <!DEBUG_INFO_SMARTCAST!>string<!>.length
}
fun testWithUtil(map: ConcurrentHashMap<Int, String>): Int {
var string = map[1]
if (string == null) {
string = Util.getString()
}
return string<!UNSAFE_CALL!>.<!>length
}
fun test(list: java.util.ArrayList<String?>) {
val x = list.get(0)<!UNSAFE_CALL!>.<!>length
}
@@ -0,0 +1,15 @@
package
public fun test(/*0*/ list: java.util.ArrayList<kotlin.String?>): kotlin.Unit
public fun testWithMap(/*0*/ map: java.util.concurrent.ConcurrentHashMap<kotlin.Int, kotlin.String>): kotlin.Int
public fun testWithUtil(/*0*/ map: java.util.concurrent.ConcurrentHashMap<kotlin.Int, kotlin.String>): kotlin.Int
public open class Util {
public constructor Util()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public open fun getString(): kotlin.String!
}
@@ -0,0 +1,16 @@
interface A {
fun foo() {}
}
interface B : A {
abstract override fun foo()
}
interface C : A {
abstract override fun foo()
}
interface D : A
// Fake override Z#foo should be abstract
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>class Z<!> : B, C, D
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
interface A {
fun foo() {}
}
@@ -1,28 +0,0 @@
// FILE: A.java
import org.jetbrains.annotations.NotNull;
public interface A<T> {
void foo(@NotNull T x);
}
// FILE: B.java
public class B<E> {
public void foo(E x) {}
}
// FILE: C.java
public class C<F> extends B<F> implements A<F> {
public static C<String> create() { return null; }
public void foo(F x) {}
}
// FILE: main.kt
fun test() {
C.create().foo(null)
C.create().foo("")
C<String>().foo(null)
C<String?>().foo(null)
C<String?>().foo("")
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: A.java
import org.jetbrains.annotations.NotNull;
@@ -1,10 +0,0 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
interface X<T>
interface A: X<String>
interface B : <!INCONSISTENT_TYPE_PARAMETER_VALUES!>A, X<Int><!>
fun foo(x: B) {
// Checks that when checking subtypes we search closes corresponding constructor (e.g. with BFS)
val y: X<Int> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_VARIABLE
interface X<T>
@@ -20,11 +20,11 @@ fun test(b: B, c: C, d: D, e: E) {
eatAString(b)
eatAString(c)
eatAString(d)
eatAString(e)
eatAString(<!ARGUMENT_TYPE_MISMATCH!>e<!>)
eatAStringN(b)
eatAStringN(c)
eatAStringN(d)
eatAStringN(<!ARGUMENT_TYPE_MISMATCH!>d<!>)
eatAStringN(e)
}
@@ -39,4 +39,4 @@ class W: B(), Z
fun test2(w: W) {
eatAString(w)
eatAStringN(<!ARGUMENT_TYPE_MISMATCH!>w<!>)
}
}
@@ -39,4 +39,4 @@ class W: B(), Z
fun test2(w: W) {
eatAString(w)
eatAStringN(<!TYPE_MISMATCH!>w<!>)
}
}
@@ -16,6 +16,6 @@ fun foo() {
concurrent.remove(null, null)
// @PurelyImplements
concurrentHash.remove(null, 1)
concurrentHash.remove(null, null)
concurrentHash.remove(<!NULL_FOR_NONNULL_TYPE!>null<!>, 1)
concurrentHash.remove(<!NULL_FOR_NONNULL_TYPE!>null<!>, <!NULL_FOR_NONNULL_TYPE!>null<!>)
}
@@ -22,7 +22,7 @@ fun foo(x: MutableMap<String, Int>, y: java.util.HashMap<String, Int>, z: java.u
y.remove("", 1)
y.remove("", <!ARGUMENT_TYPE_MISMATCH!>""<!>)
y.remove("", null)
y.remove("", <!NULL_FOR_NONNULL_TYPE!>null<!>)
z.remove("", 1)
z.remove("", <!ARGUMENT_TYPE_MISMATCH!>""<!>)
@@ -9,20 +9,20 @@ val nullableInt: Int? = null
fun hashMapTest() {
var x: HashMap<String, Int> = HashMap<String, Int>()
x.put(null, null)
x.put("", null)
x.put(bar(), 1)
x.put(<!NULL_FOR_NONNULL_TYPE!>null<!>, <!NULL_FOR_NONNULL_TYPE!>null<!>)
x.put("", <!NULL_FOR_NONNULL_TYPE!>null<!>)
x.put(<!ARGUMENT_TYPE_MISMATCH!>bar()<!>, 1)
x.put("", 1)
x[null] = 1
x[bar()] = 1
x[""] = nullableInt
x[<!NULL_FOR_NONNULL_TYPE!>null<!>] = 1
x[<!ARGUMENT_TYPE_MISMATCH!>bar()<!>] = 1
x[""] = <!ARGUMENT_TYPE_MISMATCH!>nullableInt<!>
x[""] = 1
val b1: MutableMap<String, Int?> = x
val b1: MutableMap<String, Int?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b2: MutableMap<String, Int> = x
val b3: Map<String?, Int> = x
val b4: Map<String?, Int?> = x
val b3: Map<String?, Int> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b4: Map<String?, Int?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b5: Map<String, Int?> = x
val b6: Int = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>x[""]<!>
@@ -33,20 +33,20 @@ fun hashMapTest() {
fun treeMapTest() {
var x: TreeMap<String, Int> = TreeMap<String, Int>()
x.put(null, null)
x.put("", null)
x.put(bar(), 1)
x.put(<!NULL_FOR_NONNULL_TYPE!>null<!>, <!NULL_FOR_NONNULL_TYPE!>null<!>)
x.put("", <!NULL_FOR_NONNULL_TYPE!>null<!>)
x.put(<!ARGUMENT_TYPE_MISMATCH!>bar()<!>, 1)
x.put("", 1)
x[null] = 1
x[bar()] = 1
x[""] = nullableInt
x[<!NULL_FOR_NONNULL_TYPE!>null<!>] = 1
x[<!ARGUMENT_TYPE_MISMATCH!>bar()<!>] = 1
x[""] = <!ARGUMENT_TYPE_MISMATCH!>nullableInt<!>
x[""] = 1
val b1: MutableMap<String, Int?> = x
val b1: MutableMap<String, Int?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b2: MutableMap<String, Int> = x
val b3: Map<String?, Int> = x
val b4: Map<String?, Int?> = x
val b3: Map<String?, Int> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b4: Map<String?, Int?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b5: Map<String, Int?> = x
val b6: Int = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>x[""]<!>
@@ -57,20 +57,20 @@ fun treeMapTest() {
fun concurrentHashMapTest() {
var x: ConcurrentHashMap<String, Int> = ConcurrentHashMap<String, Int>()
x.put(null, null)
x.put("", null)
x.put(bar(), 1)
x.put(<!NULL_FOR_NONNULL_TYPE!>null<!>, <!NULL_FOR_NONNULL_TYPE!>null<!>)
x.put("", <!NULL_FOR_NONNULL_TYPE!>null<!>)
x.put(<!ARGUMENT_TYPE_MISMATCH!>bar()<!>, 1)
x.put("", 1)
x[null] = 1
x[bar()] = 1
x[""] = nullableInt
x[<!NULL_FOR_NONNULL_TYPE!>null<!>] = 1
x[<!ARGUMENT_TYPE_MISMATCH!>bar()<!>] = 1
x[""] = <!ARGUMENT_TYPE_MISMATCH!>nullableInt<!>
x[""] = 1
val b1: MutableMap<String, Int?> = x
val b1: MutableMap<String, Int?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b2: MutableMap<String, Int> = x
val b3: Map<String?, Int> = x
val b4: Map<String?, Int?> = x
val b3: Map<String?, Int> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b4: Map<String?, Int?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b5: Map<String, Int?> = x
val b6: Int = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>x[""]<!>
@@ -8,17 +8,18 @@ val nullableInt: Int? = null
fun hashMapTest() {
var x: HashMap<String?, Int> = HashMap<String?, Int>()
x.put(null, null)
x.put("", null)
x.put(null, <!NULL_FOR_NONNULL_TYPE!>null<!>)
x.put("", <!NULL_FOR_NONNULL_TYPE!>null<!>)
x.put(bar(), 1)
x.put("", 1)
x[null] = 1
x[bar()] = 1
x[""] = nullableInt
x[""] = <!ARGUMENT_TYPE_MISMATCH!>nullableInt<!>
x[""] = 1
x[""] = <!NULL_FOR_NONNULL_TYPE!>null<!>
val b1: MutableMap<String?, Int?> = x
val b1: MutableMap<String?, Int?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b2: MutableMap<String?, Int> = x
val b3: Map<String?, Int> = x
val b4: Map<String?, Int?> = x
@@ -33,17 +34,17 @@ fun hashMapTest() {
fun treeMapTest() {
var x: TreeMap<String?, Int> = TreeMap<String?, Int>()
x.put(null, null)
x.put("", null)
x.put(null, <!NULL_FOR_NONNULL_TYPE!>null<!>)
x.put("", <!NULL_FOR_NONNULL_TYPE!>null<!>)
x.put(bar(), 1)
x.put("", 1)
x[null] = 1
x[bar()] = 1
x[""] = nullableInt
x[""] = <!ARGUMENT_TYPE_MISMATCH!>nullableInt<!>
x[""] = 1
val b1: MutableMap<String?, Int?> = x
val b1: MutableMap<String?, Int?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b2: MutableMap<String?, Int> = x
val b3: Map<String?, Int> = x
val b4: Map<String?, Int?> = x
@@ -17,6 +17,7 @@ fun hashMapTest() {
x[bar()] = 1
x[""] = <!TYPE_MISMATCH!>nullableInt<!>
x[""] = 1
x[""] = <!NULL_FOR_NONNULL_TYPE!>null<!>
val b1: MutableMap<String?, Int?> = <!TYPE_MISMATCH!>x<!>
val b2: MutableMap<String?, Int> = x
@@ -8,13 +8,13 @@ val nullableInt: Int? = null
fun hashMapTest() {
var x: HashMap<String, Int?> = HashMap<String, Int?>()
x.put(null, null)
x.put(<!NULL_FOR_NONNULL_TYPE!>null<!>, null)
x.put("", null)
x.put(bar(), 1)
x.put(<!ARGUMENT_TYPE_MISMATCH!>bar()<!>, 1)
x.put("", 1)
x[null] = 1
x[bar()] = 1
x[<!NULL_FOR_NONNULL_TYPE!>null<!>] = 1
x[<!ARGUMENT_TYPE_MISMATCH!>bar()<!>] = 1
x[""] = nullableInt
x[""] = 1
@@ -22,7 +22,7 @@ fun hashMapTest() {
val b2: MutableMap<String, Int?> = x
val b3: Map<String, Int> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b4: Map<String, Int?> = x
val b5: Map<String?, Int?> = x
val b5: Map<String?, Int?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b6: Int = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>x[""]<!>
val b7: Int = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>x.get("")<!>
@@ -32,13 +32,13 @@ fun hashMapTest() {
fun treeMapTest() {
var x: TreeMap<String, Int?> = TreeMap<String, Int?>()
x.put(null, null)
x.put(<!NULL_FOR_NONNULL_TYPE!>null<!>, null)
x.put("", null)
x.put(bar(), 1)
x.put(<!ARGUMENT_TYPE_MISMATCH!>bar()<!>, 1)
x.put("", 1)
x[null] = 1
x[bar()] = 1
x[<!NULL_FOR_NONNULL_TYPE!>null<!>] = 1
x[<!ARGUMENT_TYPE_MISMATCH!>bar()<!>] = 1
x[""] = nullableInt
x[""] = 1
@@ -46,7 +46,7 @@ fun treeMapTest() {
val b2: MutableMap<String, Int?> = x
val b3: Map<String, Int> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b4: Map<String, Int?> = x
val b5: Map<String?, Int?> = x
val b5: Map<String?, Int?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b6: Int = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>x[""]<!>
val b7: Int = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>x.get("")<!>
@@ -45,7 +45,7 @@ fun foo(x: List<String>, y: Throwable, z: A3) {
y.fillInStackTrace() checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Int>() }
HashMap<String, Int>().getOrDefault(<!ARGUMENT_TYPE_MISMATCH!>Any()<!>, null)
HashMap<String, Int>().getOrDefault(<!ARGUMENT_TYPE_MISMATCH!>Any()<!>, <!NULL_FOR_NONNULL_TYPE!>null<!>)
// Falls back to extension in stdlib
y.printStackTrace()
@@ -118,30 +118,30 @@ FILE fqName:<root> fileName:/classLevelProperties.kt
CALL 'public final fun hashMapOf <K, V> (): java.util.HashMap<K of kotlin.collections.MapsKt.hashMapOf, V of kotlin.collections.MapsKt.hashMapOf> [inline] declared in kotlin.collections.MapsKt' type=java.util.HashMap<kotlin.String, kotlin.Int> origin=null
<K>: kotlin.String
<V>: kotlin.Int
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-test8> visibility:public modality:FINAL <> ($this:<root>.C) returnType:@[FlexibleNullability] kotlin.Int?
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-test8> visibility:public modality:FINAL <> ($this:<root>.C) returnType:kotlin.Int
correspondingProperty: PROPERTY name:test8 visibility:public modality:FINAL [delegated,var]
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test8> (): @[FlexibleNullability] kotlin.Int? declared in <root>.C'
CALL 'public final fun getValue <V, V1> (thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): V1 of kotlin.collections.MapAccessorsKt.getValue [inline,operator] declared in kotlin.collections.MapAccessorsKt' type=@[FlexibleNullability] kotlin.Int? origin=null
<V>: @[FlexibleNullability] kotlin.Int?
<V1>: @[FlexibleNullability] kotlin.Int?
RETURN type=kotlin.Nothing from='public final fun <get-test8> (): kotlin.Int declared in <root>.C'
CALL 'public final fun getValue <V, V1> (thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): V1 of kotlin.collections.MapAccessorsKt.getValue [inline,operator] declared in kotlin.collections.MapAccessorsKt' type=kotlin.Int origin=null
<V>: kotlin.Int
<V1>: kotlin.Int
$receiver: GET_FIELD 'FIELD PROPERTY_DELEGATE name:test8$delegate type:java.util.HashMap<kotlin.String, kotlin.Int> visibility:private [final]' type=java.util.HashMap<kotlin.String, kotlin.Int> origin=null
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<get-test8>' type=<root>.C origin=null
thisRef: GET_VAR '<this>: <root>.C declared in <root>.C.<get-test8>' type=<root>.C origin=null
property: PROPERTY_REFERENCE 'public final test8: @[FlexibleNullability] kotlin.Int? [delegated,var]' field=null getter='public final fun <get-test8> (): @[FlexibleNullability] kotlin.Int? declared in <root>.C' setter='public final fun <set-test8> (<set-?>: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.C' type=kotlin.reflect.KMutableProperty1<<root>.C, @[FlexibleNullability] kotlin.Int?> origin=PROPERTY_REFERENCE_FOR_DELEGATE
FUN DELEGATED_PROPERTY_ACCESSOR name:<set-test8> visibility:public modality:FINAL <> ($this:<root>.C, <set-?>:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit
property: PROPERTY_REFERENCE 'public final test8: kotlin.Int [delegated,var]' field=null getter='public final fun <get-test8> (): kotlin.Int declared in <root>.C' setter='public final fun <set-test8> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.C' type=kotlin.reflect.KMutableProperty1<<root>.C, kotlin.Int> origin=PROPERTY_REFERENCE_FOR_DELEGATE
FUN DELEGATED_PROPERTY_ACCESSOR name:<set-test8> visibility:public modality:FINAL <> ($this:<root>.C, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:test8 visibility:public modality:FINAL [delegated,var]
$this: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:<set-?> index:0 type:@[FlexibleNullability] kotlin.Int?
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
CALL 'public final fun setValue <V> (thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>, value: V of kotlin.collections.MapAccessorsKt.setValue): kotlin.Unit [inline,operator] declared in kotlin.collections.MapAccessorsKt' type=kotlin.Unit origin=null
<V>: @[FlexibleNullability] kotlin.Int?
<V>: kotlin.Int
$receiver: GET_FIELD 'FIELD PROPERTY_DELEGATE name:test8$delegate type:java.util.HashMap<kotlin.String, kotlin.Int> visibility:private [final]' type=java.util.HashMap<kotlin.String, kotlin.Int> origin=null
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<set-test8>' type=<root>.C origin=null
thisRef: GET_VAR '<this>: <root>.C declared in <root>.C.<set-test8>' type=<root>.C origin=null
property: PROPERTY_REFERENCE 'public final test8: @[FlexibleNullability] kotlin.Int? [delegated,var]' field=null getter='public final fun <get-test8> (): @[FlexibleNullability] kotlin.Int? declared in <root>.C' setter='public final fun <set-test8> (<set-?>: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.C' type=kotlin.reflect.KMutableProperty1<<root>.C, @[FlexibleNullability] kotlin.Int?> origin=PROPERTY_REFERENCE_FOR_DELEGATE
value: GET_VAR '<set-?>: @[FlexibleNullability] kotlin.Int? declared in <root>.C.<set-test8>' type=@[FlexibleNullability] kotlin.Int? origin=null
property: PROPERTY_REFERENCE 'public final test8: kotlin.Int [delegated,var]' field=null getter='public final fun <get-test8> (): kotlin.Int declared in <root>.C' setter='public final fun <set-test8> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.C' type=kotlin.reflect.KMutableProperty1<<root>.C, kotlin.Int> origin=PROPERTY_REFERENCE_FOR_DELEGATE
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.C.<set-test8>' type=kotlin.Int origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
@@ -44,13 +44,14 @@ class C {
return <this>.#test7$delegate.getValue<Int>(thisRef = <this>, property = C::test7)
}
var test8: @FlexibleNullability Int? /* by */
var test8: Int /* by */
field = hashMapOf<String, Int>()
get(): @FlexibleNullability Int? {
return <this>.#test8$delegate.getValue<@FlexibleNullability Int?, @FlexibleNullability Int?>(thisRef = <this>, property = C::test8)
get(): Int {
return <this>.#test8$delegate.getValue<Int, Int>(thisRef = <this>, property = C::test8)
}
set(<set-?>: @FlexibleNullability Int?) {
<this>.#test8$delegate.setValue<@FlexibleNullability Int?>(thisRef = <this>, property = C::test8, value = <set-?>)
set(<set-?>: Int) {
<this>.#test8$delegate.setValue<Int>(thisRef = <this>, property = C::test8, value = <set-?>)
}
}
@@ -105,23 +105,23 @@ FILE fqName:<root> fileName:/delegatedProperties.kt
CALL 'public final fun hashMapOf <K, V> (): java.util.HashMap<K of kotlin.collections.MapsKt.hashMapOf, V of kotlin.collections.MapsKt.hashMapOf> [inline] declared in kotlin.collections.MapsKt' type=java.util.HashMap<kotlin.String, kotlin.Any> origin=null
<K>: kotlin.String
<V>: kotlin.Any
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-test4> visibility:public modality:FINAL <> () returnType:@[FlexibleNullability] kotlin.Any?
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-test4> visibility:public modality:FINAL <> () returnType:kotlin.Any
correspondingProperty: PROPERTY name:test4 visibility:public modality:FINAL [delegated,var]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test4> (): @[FlexibleNullability] kotlin.Any? declared in <root>'
CALL 'public final fun getValue <V, V1> (thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): V1 of kotlin.collections.MapAccessorsKt.getValue [inline,operator] declared in kotlin.collections.MapAccessorsKt' type=@[FlexibleNullability] kotlin.Any? origin=null
<V>: @[FlexibleNullability] kotlin.Any?
<V1>: @[FlexibleNullability] kotlin.Any?
RETURN type=kotlin.Nothing from='public final fun <get-test4> (): kotlin.Any declared in <root>'
CALL 'public final fun getValue <V, V1> (thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): V1 of kotlin.collections.MapAccessorsKt.getValue [inline,operator] declared in kotlin.collections.MapAccessorsKt' type=kotlin.Any origin=null
<V>: kotlin.Any
<V1>: kotlin.Any
$receiver: GET_FIELD 'FIELD PROPERTY_DELEGATE name:test4$delegate type:java.util.HashMap<kotlin.String, kotlin.Any> visibility:private [final,static]' type=java.util.HashMap<kotlin.String, kotlin.Any> origin=null
thisRef: CONST Null type=kotlin.Nothing? value=null
property: PROPERTY_REFERENCE 'public final test4: @[FlexibleNullability] kotlin.Any? [delegated,var]' field=null getter='public final fun <get-test4> (): @[FlexibleNullability] kotlin.Any? declared in <root>' setter='public final fun <set-test4> (<set-?>: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.Any?> origin=PROPERTY_REFERENCE_FOR_DELEGATE
FUN DELEGATED_PROPERTY_ACCESSOR name:<set-test4> visibility:public modality:FINAL <> (<set-?>:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit
property: PROPERTY_REFERENCE 'public final test4: kotlin.Any [delegated,var]' field=null getter='public final fun <get-test4> (): kotlin.Any declared in <root>' setter='public final fun <set-test4> (<set-?>: kotlin.Any): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty0<kotlin.Any> origin=PROPERTY_REFERENCE_FOR_DELEGATE
FUN DELEGATED_PROPERTY_ACCESSOR name:<set-test4> visibility:public modality:FINAL <> (<set-?>:kotlin.Any) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:test4 visibility:public modality:FINAL [delegated,var]
VALUE_PARAMETER name:<set-?> index:0 type:@[FlexibleNullability] kotlin.Any?
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Any
BLOCK_BODY
CALL 'public final fun setValue <V> (thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>, value: V of kotlin.collections.MapAccessorsKt.setValue): kotlin.Unit [inline,operator] declared in kotlin.collections.MapAccessorsKt' type=kotlin.Unit origin=null
<V>: @[FlexibleNullability] kotlin.Any?
<V>: kotlin.Any
$receiver: GET_FIELD 'FIELD PROPERTY_DELEGATE name:test4$delegate type:java.util.HashMap<kotlin.String, kotlin.Any> visibility:private [final,static]' type=java.util.HashMap<kotlin.String, kotlin.Any> origin=null
thisRef: CONST Null type=kotlin.Nothing? value=null
property: PROPERTY_REFERENCE 'public final test4: @[FlexibleNullability] kotlin.Any? [delegated,var]' field=null getter='public final fun <get-test4> (): @[FlexibleNullability] kotlin.Any? declared in <root>' setter='public final fun <set-test4> (<set-?>: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.Any?> origin=PROPERTY_REFERENCE_FOR_DELEGATE
value: GET_VAR '<set-?>: @[FlexibleNullability] kotlin.Any? declared in <root>.<set-test4>' type=@[FlexibleNullability] kotlin.Any? origin=null
property: PROPERTY_REFERENCE 'public final test4: kotlin.Any [delegated,var]' field=null getter='public final fun <get-test4> (): kotlin.Any declared in <root>' setter='public final fun <set-test4> (<set-?>: kotlin.Any): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty0<kotlin.Any> origin=PROPERTY_REFERENCE_FOR_DELEGATE
value: GET_VAR '<set-?>: kotlin.Any declared in <root>.<set-test4>' type=kotlin.Any origin=null
@@ -38,11 +38,12 @@ class C {
}
var test4: @FlexibleNullability Any? /* by */
var test4: Any /* by */
field = hashMapOf<String, Any>()
get(): @FlexibleNullability Any? {
return #test4$delegate.getValue<@FlexibleNullability Any?, @FlexibleNullability Any?>(thisRef = null, property = ::test4)
get(): Any {
return #test4$delegate.getValue<Any, Any>(thisRef = null, property = ::test4)
}
set(<set-?>: @FlexibleNullability Any?) {
#test4$delegate.setValue<@FlexibleNullability Any?>(thisRef = null, property = ::test4, value = <set-?>)
set(<set-?>: Any) {
#test4$delegate.setValue<Any>(thisRef = null, property = ::test4, value = <set-?>)
}
@@ -22,39 +22,40 @@ FILE fqName:<root> fileName:/localDelegatedProperties.kt
message: CALL 'local final fun <get-x> (): kotlin.Int declared in <root>.test1' type=kotlin.Int origin=GET_LOCAL_PROPERTY
FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
LOCAL_DELEGATED_PROPERTY name:x type:@[FlexibleNullability] kotlin.Int? flags:var
LOCAL_DELEGATED_PROPERTY name:x type:kotlin.Int flags:var
VAR PROPERTY_DELEGATE name:x$delegate type:java.util.HashMap<kotlin.String, kotlin.Int> [val]
CALL 'public final fun hashMapOf <K, V> (): java.util.HashMap<K of kotlin.collections.MapsKt.hashMapOf, V of kotlin.collections.MapsKt.hashMapOf> [inline] declared in kotlin.collections.MapsKt' type=java.util.HashMap<kotlin.String, kotlin.Int> origin=null
<K>: kotlin.String
<V>: kotlin.Int
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-x> visibility:local modality:FINAL <> () returnType:@[FlexibleNullability] kotlin.Int?
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-x> visibility:local modality:FINAL <> () returnType:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <get-x> (): @[FlexibleNullability] kotlin.Int? declared in <root>.test2'
CALL 'public final fun getValue <V, V1> (thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): V1 of kotlin.collections.MapAccessorsKt.getValue [inline,operator] declared in kotlin.collections.MapAccessorsKt' type=@[FlexibleNullability] kotlin.Int? origin=null
<V>: @[FlexibleNullability] kotlin.Int?
<V1>: @[FlexibleNullability] kotlin.Int?
RETURN type=kotlin.Nothing from='local final fun <get-x> (): kotlin.Int declared in <root>.test2'
CALL 'public final fun getValue <V, V1> (thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): V1 of kotlin.collections.MapAccessorsKt.getValue [inline,operator] declared in kotlin.collections.MapAccessorsKt' type=kotlin.Int origin=null
<V>: kotlin.Int
<V1>: kotlin.Int
$receiver: GET_VAR 'val x$delegate: java.util.HashMap<kotlin.String, kotlin.Int> [val] declared in <root>.test2' type=java.util.HashMap<kotlin.String, kotlin.Int> origin=null
thisRef: CONST Null type=kotlin.Nothing? value=null
property: LOCAL_DELEGATED_PROPERTY_REFERENCE 'var x: @[FlexibleNullability] kotlin.Int? by (...)' delegate='val x$delegate: java.util.HashMap<kotlin.String, kotlin.Int> [val] declared in <root>.test2' getter='local final fun <get-x> (): @[FlexibleNullability] kotlin.Int? declared in <root>.test2' setter='local final fun <set-x> (<set-?>: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.test2' type=kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.Int?> origin=PROPERTY_REFERENCE_FOR_DELEGATE
FUN DELEGATED_PROPERTY_ACCESSOR name:<set-x> visibility:local modality:FINAL <> (<set-?>:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit
VALUE_PARAMETER name:<set-?> index:0 type:@[FlexibleNullability] kotlin.Int?
property: LOCAL_DELEGATED_PROPERTY_REFERENCE 'var x: kotlin.Int by (...)' delegate='val x$delegate: java.util.HashMap<kotlin.String, kotlin.Int> [val] declared in <root>.test2' getter='local final fun <get-x> (): kotlin.Int declared in <root>.test2' setter='local final fun <set-x> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.test2' type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=PROPERTY_REFERENCE_FOR_DELEGATE
FUN DELEGATED_PROPERTY_ACCESSOR name:<set-x> visibility:local modality:FINAL <> (<set-?>:kotlin.Int) returnType:kotlin.Unit
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
CALL 'public final fun setValue <V> (thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>, value: V of kotlin.collections.MapAccessorsKt.setValue): kotlin.Unit [inline,operator] declared in kotlin.collections.MapAccessorsKt' type=kotlin.Unit origin=null
<V>: @[FlexibleNullability] kotlin.Int?
<V>: kotlin.Int
$receiver: GET_VAR 'val x$delegate: java.util.HashMap<kotlin.String, kotlin.Int> [val] declared in <root>.test2' type=java.util.HashMap<kotlin.String, kotlin.Int> origin=null
thisRef: CONST Null type=kotlin.Nothing? value=null
property: LOCAL_DELEGATED_PROPERTY_REFERENCE 'var x: @[FlexibleNullability] kotlin.Int? by (...)' delegate='val x$delegate: java.util.HashMap<kotlin.String, kotlin.Int> [val] declared in <root>.test2' getter='local final fun <get-x> (): @[FlexibleNullability] kotlin.Int? declared in <root>.test2' setter='local final fun <set-x> (<set-?>: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.test2' type=kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.Int?> origin=PROPERTY_REFERENCE_FOR_DELEGATE
value: GET_VAR '<set-?>: @[FlexibleNullability] kotlin.Int? declared in <root>.test2.<set-x>' type=@[FlexibleNullability] kotlin.Int? origin=null
CALL 'local final fun <set-x> (<set-?>: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.test2' type=kotlin.Unit origin=EQ
property: LOCAL_DELEGATED_PROPERTY_REFERENCE 'var x: kotlin.Int by (...)' delegate='val x$delegate: java.util.HashMap<kotlin.String, kotlin.Int> [val] declared in <root>.test2' getter='local final fun <get-x> (): kotlin.Int declared in <root>.test2' setter='local final fun <set-x> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.test2' type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=PROPERTY_REFERENCE_FOR_DELEGATE
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.test2.<set-x>' type=kotlin.Int origin=null
CALL 'local final fun <set-x> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.test2' type=kotlin.Unit origin=EQ
<set-?>: CONST Int type=kotlin.Int value=0
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:@[FlexibleNullability] kotlin.Int? [val]
CALL 'local final fun <get-x> (): @[FlexibleNullability] kotlin.Int? declared in <root>.test2' type=@[FlexibleNullability] kotlin.Int? origin=GET_LOCAL_PROPERTY
CALL 'local final fun <set-x> (<set-?>: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.test2' type=kotlin.Unit origin=POSTFIX_INCR
<set-?>: CALL 'public final fun inc (): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val tmp_0: @[FlexibleNullability] kotlin.Int? [val] declared in <root>.test2' type=@[FlexibleNullability] kotlin.Int? origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
GET_VAR 'val tmp_0: @[FlexibleNullability] kotlin.Int? [val] declared in <root>.test2' type=@[FlexibleNullability] kotlin.Int? origin=null
CALL 'local final fun <set-x> (<set-?>: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.test2' type=kotlin.Unit origin=PLUSEQ
BLOCK type=kotlin.Int origin=POSTFIX_INCR
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Int [val]
CALL 'local final fun <get-x> (): kotlin.Int declared in <root>.test2' type=kotlin.Int origin=GET_LOCAL_PROPERTY
CALL 'local final fun <set-x> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.test2' type=kotlin.Unit origin=POSTFIX_INCR
<set-?>: CALL 'public final fun inc (): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val tmp_0: kotlin.Int [val] declared in <root>.test2' type=kotlin.Int origin=null
GET_VAR 'val tmp_0: kotlin.Int [val] declared in <root>.test2' type=kotlin.Int origin=null
CALL 'local final fun <set-x> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.test2' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'local final fun <get-x> (): @[FlexibleNullability] kotlin.Int? declared in <root>.test2' type=@[FlexibleNullability] kotlin.Int? origin=GET_LOCAL_PROPERTY
$this: CALL 'local final fun <get-x> (): kotlin.Int declared in <root>.test2' type=kotlin.Int origin=GET_LOCAL_PROPERTY
other: CONST Int type=kotlin.Int value=1
@@ -12,18 +12,21 @@ fun test1() {
}
fun test2() {
var x: @FlexibleNullability Int?
var x: Int
val x$delegate: HashMap<String, Int> = hashMapOf<String, Int>()
local get(): @FlexibleNullability Int? {
return x$delegate.getValue<@FlexibleNullability Int?, @FlexibleNullability Int?>(thisRef = null, property = ::x)
local get(): Int {
return x$delegate.getValue<Int, Int>(thisRef = null, property = ::x)
}
local set(<set-?>: @FlexibleNullability Int?) {
x$delegate.setValue<@FlexibleNullability Int?>(thisRef = null, property = ::x, value = <set-?>)
local set(<set-?>: Int) {
x$delegate.setValue<Int>(thisRef = null, property = ::x, value = <set-?>)
}
<set-x>(<set-?> = 0)
val <unary>: @FlexibleNullability Int? = <get-x>()
<set-x>(<set-?> = <unary>.inc())
<unary> /*~> Unit */
{ // BLOCK
val <unary>: Int = <get-x>()
<set-x>(<set-?> = <unary>.inc())
<unary>
} /*~> Unit */
<set-x>(<set-?> = <get-x>().plus(other = 1))
}
@@ -93,23 +93,23 @@ FILE fqName:<root> fileName:/packageLevelProperties.kt
CALL 'public final fun hashMapOf <K, V> (): java.util.HashMap<K of kotlin.collections.MapsKt.hashMapOf, V of kotlin.collections.MapsKt.hashMapOf> [inline] declared in kotlin.collections.MapsKt' type=java.util.HashMap<kotlin.String, kotlin.Int> origin=null
<K>: kotlin.String
<V>: kotlin.Int
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-test8> visibility:public modality:FINAL <> () returnType:@[FlexibleNullability] kotlin.Int?
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-test8> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test8 visibility:public modality:FINAL [delegated,var]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test8> (): @[FlexibleNullability] kotlin.Int? declared in <root>'
CALL 'public final fun getValue <V, V1> (thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): V1 of kotlin.collections.MapAccessorsKt.getValue [inline,operator] declared in kotlin.collections.MapAccessorsKt' type=@[FlexibleNullability] kotlin.Int? origin=null
<V>: @[FlexibleNullability] kotlin.Int?
<V1>: @[FlexibleNullability] kotlin.Int?
RETURN type=kotlin.Nothing from='public final fun <get-test8> (): kotlin.Int declared in <root>'
CALL 'public final fun getValue <V, V1> (thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): V1 of kotlin.collections.MapAccessorsKt.getValue [inline,operator] declared in kotlin.collections.MapAccessorsKt' type=kotlin.Int origin=null
<V>: kotlin.Int
<V1>: kotlin.Int
$receiver: GET_FIELD 'FIELD PROPERTY_DELEGATE name:test8$delegate type:java.util.HashMap<kotlin.String, kotlin.Int> visibility:private [final,static]' type=java.util.HashMap<kotlin.String, kotlin.Int> origin=null
thisRef: CONST Null type=kotlin.Nothing? value=null
property: PROPERTY_REFERENCE 'public final test8: @[FlexibleNullability] kotlin.Int? [delegated,var]' field=null getter='public final fun <get-test8> (): @[FlexibleNullability] kotlin.Int? declared in <root>' setter='public final fun <set-test8> (<set-?>: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.Int?> origin=PROPERTY_REFERENCE_FOR_DELEGATE
FUN DELEGATED_PROPERTY_ACCESSOR name:<set-test8> visibility:public modality:FINAL <> (<set-?>:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit
property: PROPERTY_REFERENCE 'public final test8: kotlin.Int [delegated,var]' field=null getter='public final fun <get-test8> (): kotlin.Int declared in <root>' setter='public final fun <set-test8> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=PROPERTY_REFERENCE_FOR_DELEGATE
FUN DELEGATED_PROPERTY_ACCESSOR name:<set-test8> visibility:public modality:FINAL <> (<set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:test8 visibility:public modality:FINAL [delegated,var]
VALUE_PARAMETER name:<set-?> index:0 type:@[FlexibleNullability] kotlin.Int?
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
BLOCK_BODY
CALL 'public final fun setValue <V> (thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>, value: V of kotlin.collections.MapAccessorsKt.setValue): kotlin.Unit [inline,operator] declared in kotlin.collections.MapAccessorsKt' type=kotlin.Unit origin=null
<V>: @[FlexibleNullability] kotlin.Int?
<V>: kotlin.Int
$receiver: GET_FIELD 'FIELD PROPERTY_DELEGATE name:test8$delegate type:java.util.HashMap<kotlin.String, kotlin.Int> visibility:private [final,static]' type=java.util.HashMap<kotlin.String, kotlin.Int> origin=null
thisRef: CONST Null type=kotlin.Nothing? value=null
property: PROPERTY_REFERENCE 'public final test8: @[FlexibleNullability] kotlin.Int? [delegated,var]' field=null getter='public final fun <get-test8> (): @[FlexibleNullability] kotlin.Int? declared in <root>' setter='public final fun <set-test8> (<set-?>: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.Int?> origin=PROPERTY_REFERENCE_FOR_DELEGATE
value: GET_VAR '<set-?>: @[FlexibleNullability] kotlin.Int? declared in <root>.<set-test8>' type=@[FlexibleNullability] kotlin.Int? origin=null
property: PROPERTY_REFERENCE 'public final test8: kotlin.Int [delegated,var]' field=null getter='public final fun <get-test8> (): kotlin.Int declared in <root>' setter='public final fun <set-test8> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=PROPERTY_REFERENCE_FOR_DELEGATE
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.<set-test8>' type=kotlin.Int origin=null
@@ -37,11 +37,12 @@ val test7: Int /* by */
return #test7$delegate.getValue<Int>(thisRef = null, property = ::test7)
}
var test8: @FlexibleNullability Int? /* by */
var test8: Int /* by */
field = hashMapOf<String, Int>()
get(): @FlexibleNullability Int? {
return #test8$delegate.getValue<@FlexibleNullability Int?, @FlexibleNullability Int?>(thisRef = null, property = ::test8)
get(): Int {
return #test8$delegate.getValue<Int, Int>(thisRef = null, property = ::test8)
}
set(<set-?>: @FlexibleNullability Int?) {
#test8$delegate.setValue<@FlexibleNullability Int?>(thisRef = null, property = ::test8, value = <set-?>)
set(<set-?>: Int) {
#test8$delegate.setValue<Int>(thisRef = null, property = ::test8, value = <set-?>)
}
@@ -153,7 +153,7 @@ FILE fqName:<root> fileName:/ClashResolutionDescriptor.kt
BLOCK type=kotlin.collections.Collection<<root>.ComponentDescriptor> origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.collections.Collection<<root>.ComponentDescriptor>? [val]
TYPE_OP type=kotlin.collections.Collection<<root>.ComponentDescriptor>? origin=SAFE_CAST typeOperand=kotlin.collections.Collection<<root>.ComponentDescriptor>
CALL 'public open fun get (p0: @[FlexibleNullability] K of java.util.HashMap?): V of java.util.HashMap? [operator] declared in java.util.HashMap' type=kotlin.Any? origin=null
CALL 'public open fun get (p0: @[EnhancedNullability] K of java.util.HashMap): V of java.util.HashMap? [operator] declared in java.util.HashMap' type=kotlin.Any? origin=null
$this: CALL 'private final fun <get-registrationMap> (): java.util.HashMap<java.lang.reflect.Type, kotlin.Any> declared in <root>' type=java.util.HashMap<java.lang.reflect.Type, kotlin.Any> origin=GET_PROPERTY
p0: CALL 'public final fun <get-applicableTo> (): java.lang.Class<E of <root>.PlatformExtensionsClashResolver> declared in <root>.PlatformExtensionsClashResolver' type=java.lang.Class<out <root>.PlatformSpecificExtension<out <root>.PlatformSpecificExtension<out <root>.PlatformSpecificExtension<out <root>.PlatformSpecificExtension<out <root>.PlatformSpecificExtension<out kotlin.Any?>>>>>> origin=GET_PROPERTY
$this: GET_VAR 'val resolver: <root>.PlatformExtensionsClashResolver<*> [val] declared in <root>.resolveClashesIfAny' type=<root>.PlatformExtensionsClashResolver<*> origin=null
+102 -102
View File
@@ -196,51 +196,51 @@ FILE fqName:<root> fileName:/MultiList.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in java.util.ArrayList'
<E>: <root>.Some<T of <root>.SomeList>
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:SomeList modality:OPEN visibility:public superTypes:[<root>.MyList<T of <root>.SomeList>; java.util.ArrayList<<root>.Some<T of <root>.SomeList>>]'
FUN FAKE_OVERRIDE name:contains visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?) returnType:kotlin.Boolean [fake_override,operator]
FUN FAKE_OVERRIDE name:contains visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:<root>.Some<T of <root>.SomeList>) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun contains (p0: @[FlexibleNullability] E of java.util.ArrayList?): kotlin.Boolean [operator] declared in java.util.ArrayList
public open fun contains (p0: @[EnhancedNullability] E of java.util.ArrayList): kotlin.Boolean [operator] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?
VALUE_PARAMETER name:p0 index:0 type:<root>.Some<T of <root>.SomeList>
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:OPEN <> ($this:java.util.AbstractCollection<E of java.util.AbstractCollection>, p0:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun containsAll (p0: kotlin.collections.Collection<@[FlexibleNullability] E of java.util.ArrayList?>): kotlin.Boolean [fake_override] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractCollection<E of java.util.AbstractCollection>
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>
FUN FAKE_OVERRIDE name:get visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>? [fake_override,operator]
FUN FAKE_OVERRIDE name:get visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:<root>.Some<T of <root>.SomeList> [fake_override,operator]
overridden:
public open fun get (p0: kotlin.Int): @[FlexibleNullability] E of java.util.ArrayList? [operator] declared in java.util.ArrayList
public open fun get (p0: kotlin.Int): @[EnhancedNullability] E of java.util.ArrayList [operator] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?) returnType:kotlin.Int [fake_override]
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:<root>.Some<T of <root>.SomeList>) returnType:kotlin.Int [fake_override]
overridden:
public open fun indexOf (p0: @[FlexibleNullability] 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<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?
VALUE_PARAMETER name:p0 index:0 type:<root>.Some<T of <root>.SomeList>
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun isEmpty (): kotlin.Boolean declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
FUN FAKE_OVERRIDE name:iterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>) returnType:@[EnhancedNullability] kotlin.collections.MutableIterator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?> [fake_override,operator]
FUN FAKE_OVERRIDE name:iterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>) returnType:@[EnhancedNullability] kotlin.collections.MutableIterator<<root>.Some<T of <root>.SomeList>> [fake_override,operator]
overridden:
public open fun iterator (): @[EnhancedNullability] kotlin.collections.MutableIterator<@[FlexibleNullability] E of java.util.ArrayList?> [operator] declared in java.util.ArrayList
public open fun iterator (): @[EnhancedNullability] kotlin.collections.MutableIterator<@[EnhancedNullability] E of java.util.ArrayList> [operator] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?) returnType:kotlin.Int [fake_override]
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:<root>.Some<T of <root>.SomeList>) returnType:kotlin.Int [fake_override]
overridden:
public open fun lastIndexOf (p0: @[FlexibleNullability] 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<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>) returnType:@[EnhancedNullability] kotlin.collections.MutableListIterator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?> [fake_override]
VALUE_PARAMETER name:p0 index:0 type:<root>.Some<T of <root>.SomeList>
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>) returnType:@[EnhancedNullability] kotlin.collections.MutableListIterator<<root>.Some<T of <root>.SomeList>> [fake_override]
overridden:
public open fun listIterator (): @[EnhancedNullability] kotlin.collections.MutableListIterator<@[FlexibleNullability] 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<E of java.util.ArrayList>
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:@[EnhancedNullability] kotlin.collections.MutableListIterator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?> [fake_override]
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:@[EnhancedNullability] kotlin.collections.MutableListIterator<<root>.Some<T of <root>.SomeList>> [fake_override]
overridden:
public open fun listIterator (p0: kotlin.Int): @[EnhancedNullability] kotlin.collections.MutableListIterator<@[FlexibleNullability] 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<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:subList visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:kotlin.Int) returnType:@[EnhancedNullability] kotlin.collections.MutableList<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?> [fake_override]
FUN FAKE_OVERRIDE name:subList visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:kotlin.Int) returnType:@[EnhancedNullability] kotlin.collections.MutableList<<root>.Some<T of <root>.SomeList>> [fake_override]
overridden:
public open fun subList (p0: kotlin.Int, p1: kotlin.Int): @[EnhancedNullability] kotlin.collections.MutableList<@[FlexibleNullability] 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<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
VALUE_PARAMETER name:p1 index:1 type:kotlin.Int
@@ -310,77 +310,77 @@ FILE fqName:<root> fileName:/MultiList.kt
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] kotlin.Array<out @[FlexibleNullability] T of <root>.SomeList.toArray?>?
FUN FAKE_OVERRIDE name:set visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?) returnType:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>? [fake_override,operator]
FUN FAKE_OVERRIDE name:set visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:<root>.Some<T of <root>.SomeList>) returnType:<root>.Some<T of <root>.SomeList> [fake_override,operator]
overridden:
public open fun set (p0: kotlin.Int, p1: @[FlexibleNullability] E of java.util.ArrayList?): @[FlexibleNullability] E of java.util.ArrayList? [operator] declared in java.util.ArrayList
public open fun set (p0: kotlin.Int, p1: @[EnhancedNullability] E of java.util.ArrayList): @[EnhancedNullability] E of java.util.ArrayList [operator] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
VALUE_PARAMETER name:p1 index:1 type:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?
FUN FAKE_OVERRIDE name:add visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?) returnType:kotlin.Boolean [fake_override]
VALUE_PARAMETER name:p1 index:1 type:<root>.Some<T of <root>.SomeList>
FUN FAKE_OVERRIDE name:add visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:<root>.Some<T of <root>.SomeList>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun add (p0: @[FlexibleNullability] E of java.util.ArrayList?): kotlin.Boolean declared in java.util.ArrayList
public open fun add (p0: @[EnhancedNullability] E of java.util.ArrayList): kotlin.Boolean declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?
FUN FAKE_OVERRIDE name:add visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?) returnType:kotlin.Unit [fake_override]
VALUE_PARAMETER name:p0 index:0 type:<root>.Some<T of <root>.SomeList>
FUN FAKE_OVERRIDE name:add visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:<root>.Some<T of <root>.SomeList>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun add (p0: kotlin.Int, p1: @[FlexibleNullability] E of java.util.ArrayList?): kotlin.Unit declared in java.util.ArrayList
public open fun add (p0: kotlin.Int, p1: @[EnhancedNullability] E of java.util.ArrayList): kotlin.Unit declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
VALUE_PARAMETER name:p1 index:1 type:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?
FUN FAKE_OVERRIDE name:remove visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?) returnType:kotlin.Boolean [fake_override]
VALUE_PARAMETER name:p1 index:1 type:<root>.Some<T of <root>.SomeList>
FUN FAKE_OVERRIDE name:remove visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:<root>.Some<T of <root>.SomeList>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun remove (p0: @[FlexibleNullability] E of java.util.ArrayList?): kotlin.Boolean declared in java.util.ArrayList
public open fun remove (p0: @[EnhancedNullability] E of java.util.ArrayList): kotlin.Boolean declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?
VALUE_PARAMETER name:p0 index:0 type:<root>.Some<T of <root>.SomeList>
FUN FAKE_OVERRIDE name:clear visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun clear (): kotlin.Unit declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
FUN FAKE_OVERRIDE name:addAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>) returnType:kotlin.Boolean [fake_override]
FUN FAKE_OVERRIDE name:addAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[EnhancedNullability] kotlin.collections.Collection<out <root>.Some<T of <root>.SomeList>>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun addAll (p0: @[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] E of java.util.ArrayList?>): kotlin.Boolean declared in java.util.ArrayList
public open fun addAll (p0: @[EnhancedNullability] kotlin.collections.Collection<out @[EnhancedNullability] E of java.util.ArrayList>): kotlin.Boolean declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>
FUN FAKE_OVERRIDE name:addAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:@[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>) returnType:kotlin.Boolean [fake_override]
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] kotlin.collections.Collection<out <root>.Some<T of <root>.SomeList>>
FUN FAKE_OVERRIDE name:addAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:@[EnhancedNullability] kotlin.collections.Collection<out <root>.Some<T of <root>.SomeList>>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun addAll (p0: kotlin.Int, p1: @[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] E of java.util.ArrayList?>): kotlin.Boolean declared in java.util.ArrayList
public open fun addAll (p0: kotlin.Int, p1: @[EnhancedNullability] kotlin.collections.Collection<out @[EnhancedNullability] E of java.util.ArrayList>): kotlin.Boolean declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
VALUE_PARAMETER name:p1 index:1 type:@[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>
VALUE_PARAMETER name:p1 index:1 type:@[EnhancedNullability] kotlin.collections.Collection<out <root>.Some<T of <root>.SomeList>>
FUN FAKE_OVERRIDE name:removeRange visibility:protected/*protected and package*/ modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun removeRange (p0: kotlin.Int, p1: kotlin.Int): kotlin.Unit declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
VALUE_PARAMETER name:p1 index:1 type:kotlin.Int
FUN FAKE_OVERRIDE name:removeAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>) returnType:kotlin.Boolean [fake_override]
FUN FAKE_OVERRIDE name:removeAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.collections.Collection<<root>.Some<T of <root>.SomeList>>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun removeAll (p0: kotlin.collections.Collection<@[FlexibleNullability] E of java.util.ArrayList?>): kotlin.Boolean declared in java.util.ArrayList
public open fun removeAll (p0: kotlin.collections.Collection<@[EnhancedNullability] E of java.util.ArrayList>): kotlin.Boolean declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>
FUN FAKE_OVERRIDE name:retainAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>) returnType:kotlin.Boolean [fake_override]
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<<root>.Some<T of <root>.SomeList>>
FUN FAKE_OVERRIDE name:retainAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.collections.Collection<<root>.Some<T of <root>.SomeList>>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun retainAll (p0: kotlin.collections.Collection<@[FlexibleNullability] E of java.util.ArrayList?>): kotlin.Boolean declared in java.util.ArrayList
public open fun retainAll (p0: kotlin.collections.Collection<@[EnhancedNullability] E of java.util.ArrayList>): kotlin.Boolean declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>
FUN FAKE_OVERRIDE name:removeIf visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[EnhancedNullability] java.util.function.Predicate<in @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>) returnType:kotlin.Boolean [fake_override]
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<<root>.Some<T of <root>.SomeList>>
FUN FAKE_OVERRIDE name:removeIf visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[EnhancedNullability] java.util.function.Predicate<in <root>.Some<T of <root>.SomeList>>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun removeIf (p0: @[EnhancedNullability] java.util.function.Predicate<in @[FlexibleNullability] 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
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] java.util.function.Predicate<in @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>
FUN FAKE_OVERRIDE name:replaceAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[EnhancedNullability] java.util.function.UnaryOperator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>) returnType:kotlin.Unit [fake_override]
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] java.util.function.Predicate<in <root>.Some<T of <root>.SomeList>>
FUN FAKE_OVERRIDE name:replaceAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[EnhancedNullability] java.util.function.UnaryOperator<<root>.Some<T of <root>.SomeList>>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun replaceAll (p0: @[EnhancedNullability] java.util.function.UnaryOperator<@[FlexibleNullability] E of java.util.ArrayList?>): kotlin.Unit declared in java.util.ArrayList
public open fun replaceAll (p0: @[EnhancedNullability] java.util.function.UnaryOperator<@[EnhancedNullability] E of java.util.ArrayList>): kotlin.Unit declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] java.util.function.UnaryOperator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] java.util.function.UnaryOperator<<root>.Some<T of <root>.SomeList>>
FUN FAKE_OVERRIDE name:sort visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[FlexibleNullability] java.util.Comparator<in @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun sort (p0: @[FlexibleNullability] java.util.Comparator<in @[FlexibleNullability] E of java.util.ArrayList?>?): kotlin.Unit declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] java.util.Comparator<in @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>?
FUN FAKE_OVERRIDE name:removeAt visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:@[FlexibleNullability] <root>.Some<T of <root>.SomeList>? [fake_override]
FUN FAKE_OVERRIDE name:removeAt visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:<root>.Some<T of <root>.SomeList> [fake_override]
overridden:
public open fun removeAt (p0: kotlin.Int): @[FlexibleNullability] E of java.util.ArrayList? declared in java.util.ArrayList
public open fun removeAt (p0: kotlin.Int): @[EnhancedNullability] E of java.util.ArrayList declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
CLASS CLASS name:FinalList modality:FINAL visibility:public superTypes:[<root>.SomeList<kotlin.String>]
@@ -390,51 +390,51 @@ FILE fqName:<root> fileName:/MultiList.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.SomeList'
<T>: kotlin.String
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:FinalList modality:FINAL visibility:public superTypes:[<root>.SomeList<kotlin.String>]'
FUN FAKE_OVERRIDE name:contains visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[FlexibleNullability] <root>.Some<kotlin.String>?) returnType:kotlin.Boolean [fake_override,operator]
FUN FAKE_OVERRIDE name:contains visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:<root>.Some<kotlin.String>) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun contains (p0: @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?): kotlin.Boolean [fake_override,operator] declared in <root>.SomeList
public open fun contains (p0: <root>.Some<T of <root>.SomeList>): kotlin.Boolean [fake_override,operator] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] <root>.Some<kotlin.String>?
VALUE_PARAMETER name:p0 index:0 type:<root>.Some<kotlin.String>
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:OPEN <> ($this:java.util.AbstractCollection<E of java.util.AbstractCollection>, p0:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<kotlin.String>?>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun containsAll (p0: kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>): kotlin.Boolean [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractCollection<E of java.util.AbstractCollection>
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<kotlin.String>?>
FUN FAKE_OVERRIDE name:get visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:@[FlexibleNullability] <root>.Some<kotlin.String>? [fake_override,operator]
FUN FAKE_OVERRIDE name:get visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:<root>.Some<kotlin.String> [fake_override,operator]
overridden:
public open fun get (p0: kotlin.Int): @[FlexibleNullability] <root>.Some<T of <root>.SomeList>? [fake_override,operator] declared in <root>.SomeList
public open fun get (p0: kotlin.Int): <root>.Some<T of <root>.SomeList> [fake_override,operator] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[FlexibleNullability] <root>.Some<kotlin.String>?) returnType:kotlin.Int [fake_override]
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:<root>.Some<kotlin.String>) returnType:kotlin.Int [fake_override]
overridden:
public open fun indexOf (p0: @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?): kotlin.Int [fake_override] declared in <root>.SomeList
public open fun indexOf (p0: <root>.Some<T of <root>.SomeList>): kotlin.Int [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] <root>.Some<kotlin.String>?
VALUE_PARAMETER name:p0 index:0 type:<root>.Some<kotlin.String>
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun isEmpty (): kotlin.Boolean [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
FUN FAKE_OVERRIDE name:iterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>) returnType:@[EnhancedNullability] kotlin.collections.MutableIterator<@[FlexibleNullability] <root>.Some<kotlin.String>?> [fake_override,operator]
FUN FAKE_OVERRIDE name:iterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>) returnType:@[EnhancedNullability] kotlin.collections.MutableIterator<<root>.Some<kotlin.String>> [fake_override,operator]
overridden:
public open fun iterator (): @[EnhancedNullability] kotlin.collections.MutableIterator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?> [fake_override,operator] declared in <root>.SomeList
public open fun iterator (): @[EnhancedNullability] kotlin.collections.MutableIterator<<root>.Some<T of <root>.SomeList>> [fake_override,operator] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[FlexibleNullability] <root>.Some<kotlin.String>?) returnType:kotlin.Int [fake_override]
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:<root>.Some<kotlin.String>) returnType:kotlin.Int [fake_override]
overridden:
public open fun lastIndexOf (p0: @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?): kotlin.Int [fake_override] declared in <root>.SomeList
public open fun lastIndexOf (p0: <root>.Some<T of <root>.SomeList>): kotlin.Int [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] <root>.Some<kotlin.String>?
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>) returnType:@[EnhancedNullability] kotlin.collections.MutableListIterator<@[FlexibleNullability] <root>.Some<kotlin.String>?> [fake_override]
VALUE_PARAMETER name:p0 index:0 type:<root>.Some<kotlin.String>
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>) returnType:@[EnhancedNullability] kotlin.collections.MutableListIterator<<root>.Some<kotlin.String>> [fake_override]
overridden:
public open fun listIterator (): @[EnhancedNullability] kotlin.collections.MutableListIterator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?> [fake_override] declared in <root>.SomeList
public open fun listIterator (): @[EnhancedNullability] kotlin.collections.MutableListIterator<<root>.Some<T of <root>.SomeList>> [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:@[EnhancedNullability] kotlin.collections.MutableListIterator<@[FlexibleNullability] <root>.Some<kotlin.String>?> [fake_override]
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:@[EnhancedNullability] kotlin.collections.MutableListIterator<<root>.Some<kotlin.String>> [fake_override]
overridden:
public open fun listIterator (p0: kotlin.Int): @[EnhancedNullability] kotlin.collections.MutableListIterator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?> [fake_override] declared in <root>.SomeList
public open fun listIterator (p0: kotlin.Int): @[EnhancedNullability] kotlin.collections.MutableListIterator<<root>.Some<T of <root>.SomeList>> [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:subList visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:kotlin.Int) returnType:@[EnhancedNullability] kotlin.collections.MutableList<@[FlexibleNullability] <root>.Some<kotlin.String>?> [fake_override]
FUN FAKE_OVERRIDE name:subList visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:kotlin.Int) returnType:@[EnhancedNullability] kotlin.collections.MutableList<<root>.Some<kotlin.String>> [fake_override]
overridden:
public open fun subList (p0: kotlin.Int, p1: kotlin.Int): @[EnhancedNullability] kotlin.collections.MutableList<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?> [fake_override] declared in <root>.SomeList
public open fun subList (p0: kotlin.Int, p1: kotlin.Int): @[EnhancedNullability] kotlin.collections.MutableList<<root>.Some<T of <root>.SomeList>> [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
VALUE_PARAMETER name:p1 index:1 type:kotlin.Int
@@ -504,76 +504,76 @@ FILE fqName:<root> fileName:/MultiList.kt
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] kotlin.Array<out @[FlexibleNullability] T of <root>.FinalList.toArray?>?
FUN FAKE_OVERRIDE name:set visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:@[FlexibleNullability] <root>.Some<kotlin.String>?) returnType:@[FlexibleNullability] <root>.Some<kotlin.String>? [fake_override,operator]
FUN FAKE_OVERRIDE name:set visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:<root>.Some<kotlin.String>) returnType:<root>.Some<kotlin.String> [fake_override,operator]
overridden:
public open fun set (p0: kotlin.Int, p1: @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?): @[FlexibleNullability] <root>.Some<T of <root>.SomeList>? [fake_override,operator] declared in <root>.SomeList
public open fun set (p0: kotlin.Int, p1: <root>.Some<T of <root>.SomeList>): <root>.Some<T of <root>.SomeList> [fake_override,operator] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
VALUE_PARAMETER name:p1 index:1 type:@[FlexibleNullability] <root>.Some<kotlin.String>?
FUN FAKE_OVERRIDE name:add visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[FlexibleNullability] <root>.Some<kotlin.String>?) returnType:kotlin.Boolean [fake_override]
VALUE_PARAMETER name:p1 index:1 type:<root>.Some<kotlin.String>
FUN FAKE_OVERRIDE name:add visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:<root>.Some<kotlin.String>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun add (p0: @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?): kotlin.Boolean [fake_override] declared in <root>.SomeList
public open fun add (p0: <root>.Some<T of <root>.SomeList>): kotlin.Boolean [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] <root>.Some<kotlin.String>?
FUN FAKE_OVERRIDE name:add visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:@[FlexibleNullability] <root>.Some<kotlin.String>?) returnType:kotlin.Unit [fake_override]
VALUE_PARAMETER name:p0 index:0 type:<root>.Some<kotlin.String>
FUN FAKE_OVERRIDE name:add visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:<root>.Some<kotlin.String>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun add (p0: kotlin.Int, p1: @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?): kotlin.Unit [fake_override] declared in <root>.SomeList
public open fun add (p0: kotlin.Int, p1: <root>.Some<T of <root>.SomeList>): kotlin.Unit [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
VALUE_PARAMETER name:p1 index:1 type:@[FlexibleNullability] <root>.Some<kotlin.String>?
FUN FAKE_OVERRIDE name:remove visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[FlexibleNullability] <root>.Some<kotlin.String>?) returnType:kotlin.Boolean [fake_override]
VALUE_PARAMETER name:p1 index:1 type:<root>.Some<kotlin.String>
FUN FAKE_OVERRIDE name:remove visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:<root>.Some<kotlin.String>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun remove (p0: @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?): kotlin.Boolean [fake_override] declared in <root>.SomeList
public open fun remove (p0: <root>.Some<T of <root>.SomeList>): kotlin.Boolean [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] <root>.Some<kotlin.String>?
VALUE_PARAMETER name:p0 index:0 type:<root>.Some<kotlin.String>
FUN FAKE_OVERRIDE name:clear visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun clear (): kotlin.Unit [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
FUN FAKE_OVERRIDE name:addAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] <root>.Some<kotlin.String>?>) returnType:kotlin.Boolean [fake_override]
FUN FAKE_OVERRIDE name:addAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[EnhancedNullability] kotlin.collections.Collection<out <root>.Some<kotlin.String>>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun addAll (p0: @[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>): kotlin.Boolean [fake_override] declared in <root>.SomeList
public open fun addAll (p0: @[EnhancedNullability] kotlin.collections.Collection<out <root>.Some<T of <root>.SomeList>>): kotlin.Boolean [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] <root>.Some<kotlin.String>?>
FUN FAKE_OVERRIDE name:addAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:@[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] <root>.Some<kotlin.String>?>) returnType:kotlin.Boolean [fake_override]
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] kotlin.collections.Collection<out <root>.Some<kotlin.String>>
FUN FAKE_OVERRIDE name:addAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:@[EnhancedNullability] kotlin.collections.Collection<out <root>.Some<kotlin.String>>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun addAll (p0: kotlin.Int, p1: @[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>): kotlin.Boolean [fake_override] declared in <root>.SomeList
public open fun addAll (p0: kotlin.Int, p1: @[EnhancedNullability] kotlin.collections.Collection<out <root>.Some<T of <root>.SomeList>>): kotlin.Boolean [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
VALUE_PARAMETER name:p1 index:1 type:@[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] <root>.Some<kotlin.String>?>
VALUE_PARAMETER name:p1 index:1 type:@[EnhancedNullability] kotlin.collections.Collection<out <root>.Some<kotlin.String>>
FUN FAKE_OVERRIDE name:removeRange visibility:protected/*protected and package*/ modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int, p1:kotlin.Int) returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected and package*/ open fun removeRange (p0: kotlin.Int, p1: kotlin.Int): kotlin.Unit [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
VALUE_PARAMETER name:p1 index:1 type:kotlin.Int
FUN FAKE_OVERRIDE name:removeAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<kotlin.String>?>) returnType:kotlin.Boolean [fake_override]
FUN FAKE_OVERRIDE name:removeAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.collections.Collection<<root>.Some<kotlin.String>>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun removeAll (p0: kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>): kotlin.Boolean [fake_override] declared in <root>.SomeList
public open fun removeAll (p0: kotlin.collections.Collection<<root>.Some<T of <root>.SomeList>>): kotlin.Boolean [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<kotlin.String>?>
FUN FAKE_OVERRIDE name:retainAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<kotlin.String>?>) returnType:kotlin.Boolean [fake_override]
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<<root>.Some<kotlin.String>>
FUN FAKE_OVERRIDE name:retainAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.collections.Collection<<root>.Some<kotlin.String>>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun retainAll (p0: kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>): kotlin.Boolean [fake_override] declared in <root>.SomeList
public open fun retainAll (p0: kotlin.collections.Collection<<root>.Some<T of <root>.SomeList>>): kotlin.Boolean [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<@[FlexibleNullability] <root>.Some<kotlin.String>?>
FUN FAKE_OVERRIDE name:removeIf visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[EnhancedNullability] java.util.function.Predicate<in @[FlexibleNullability] <root>.Some<kotlin.String>?>) returnType:kotlin.Boolean [fake_override]
VALUE_PARAMETER name:p0 index:0 type:kotlin.collections.Collection<<root>.Some<kotlin.String>>
FUN FAKE_OVERRIDE name:removeIf visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[EnhancedNullability] java.util.function.Predicate<in <root>.Some<kotlin.String>>) returnType:kotlin.Boolean [fake_override]
overridden:
public open fun removeIf (p0: @[EnhancedNullability] java.util.function.Predicate<in @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>): kotlin.Boolean [fake_override] declared in <root>.SomeList
public open fun removeIf (p0: @[EnhancedNullability] java.util.function.Predicate<in <root>.Some<T of <root>.SomeList>>): kotlin.Boolean [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] java.util.function.Predicate<in @[FlexibleNullability] <root>.Some<kotlin.String>?>
FUN FAKE_OVERRIDE name:replaceAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[EnhancedNullability] java.util.function.UnaryOperator<@[FlexibleNullability] <root>.Some<kotlin.String>?>) returnType:kotlin.Unit [fake_override]
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] java.util.function.Predicate<in <root>.Some<kotlin.String>>
FUN FAKE_OVERRIDE name:replaceAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[EnhancedNullability] java.util.function.UnaryOperator<<root>.Some<kotlin.String>>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun replaceAll (p0: @[EnhancedNullability] java.util.function.UnaryOperator<@[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>): kotlin.Unit [fake_override] declared in <root>.SomeList
public open fun replaceAll (p0: @[EnhancedNullability] java.util.function.UnaryOperator<<root>.Some<T of <root>.SomeList>>): kotlin.Unit [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] java.util.function.UnaryOperator<@[FlexibleNullability] <root>.Some<kotlin.String>?>
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] java.util.function.UnaryOperator<<root>.Some<kotlin.String>>
FUN FAKE_OVERRIDE name:sort visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:@[FlexibleNullability] java.util.Comparator<in @[FlexibleNullability] <root>.Some<kotlin.String>?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun sort (p0: @[FlexibleNullability] java.util.Comparator<in @[FlexibleNullability] <root>.Some<T of <root>.SomeList>?>?): kotlin.Unit [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:@[FlexibleNullability] java.util.Comparator<in @[FlexibleNullability] <root>.Some<kotlin.String>?>?
FUN FAKE_OVERRIDE name:removeAt visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:@[FlexibleNullability] <root>.Some<kotlin.String>? [fake_override]
FUN FAKE_OVERRIDE name:removeAt visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:<root>.Some<kotlin.String> [fake_override]
overridden:
public open fun removeAt (p0: kotlin.Int): @[FlexibleNullability] <root>.Some<T of <root>.SomeList>? [fake_override] declared in <root>.SomeList
public open fun removeAt (p0: kotlin.Int): <root>.Some<T of <root>.SomeList> [fake_override] declared in <root>.SomeList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<E of java.util.ArrayList>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
@@ -6,7 +6,7 @@ public abstract interface Kt3302 : R|kotlin/Any| {
}
public abstract interface BasicBSONObject : R|test/Kt3302.LinkedHashMap<ft<kotlin/String, kotlin/String?>, ft<kotlin/Any, kotlin/Any?>>|, R|test/Kt3302.BSONObject| {
@R|java/lang/Override|() public abstract fun put(key: R|ft<kotlin/String, kotlin/String?>|, value: R|ft<kotlin/Any, kotlin/Any?>|): R|ft<kotlin/Any, kotlin/Any?>|
@R|java/lang/Override|() public abstract fun put(key: R|@EnhancedNullability kotlin/String|, value: R|@EnhancedNullability kotlin/Any|): R|ft<kotlin/Any, kotlin/Any?>|
}
public abstract interface LinkedHashMap<K : R|ft<kotlin/Any, kotlin/Any?>|, V : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
@@ -17345,6 +17345,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
runTest("compiler/testData/diagnostics/tests/j+k/protectedStaticSamePackage.kt");
}
@Test
@TestMetadata("purelyImplementedSupertype.kt")
public void testPurelyImplementedSupertype() throws Exception {
runTest("compiler/testData/diagnostics/tests/j+k/purelyImplementedSupertype.kt");
}
@Test
@TestMetadata("rawOverride.kt")
public void testRawOverride() throws Exception {