K2: Refine how JDK members are mapped to built-in classes

Previously, the semantic was more-or-less correct for most of the cases
but some corner one, like `sort` in MutableList didn't work properly.

Namely, `sort` should be marked there in a way to forbid to call it
everywhere beside super-calls.
Also, overriding it should be allowed.

Mostly, the logic was re-written to K2 model from K1-related
JvmBuiltInsCustomizer.

^KT-57694 In progress
^KT-57269 Fixed
This commit is contained in:
Denis.Zharkov
2023-04-13 11:50:54 +02:00
committed by Space Team
parent 161fe1d2ca
commit 2e5b783cc6
59 changed files with 1225 additions and 595 deletions
@@ -180,14 +180,14 @@ FILE fqName:<root> fileName:/ArrayListOverrides.kt
overridden:
public open fun toString (): @[EnhancedNullability] kotlin.String [fake_override] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractCollection<E of java.util.AbstractCollection>
FUN FAKE_OVERRIDE name:parallelStream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<E of kotlin.collections.Collection>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] kotlin.String?> [fake_override]
overridden:
public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] E of java.util.ArrayList?> [fake_override] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<E of kotlin.collections.Collection>
FUN FAKE_OVERRIDE name:stream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<E of kotlin.collections.Collection>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] kotlin.String?> [fake_override]
overridden:
public open fun stream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] E of java.util.ArrayList?> [fake_override] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<E of kotlin.collections.Collection>
FUN FAKE_OVERRIDE name:parallelStream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<E of kotlin.collections.Collection>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] kotlin.String?> [fake_override]
overridden:
public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] E of java.util.ArrayList?> [fake_override] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<E of kotlin.collections.Collection>
FUN FAKE_OVERRIDE name:removeAt visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:@[EnhancedNullability] kotlin.String [fake_override,operator]
overridden:
public open fun removeAt (p0: kotlin.Int): @[EnhancedNullability] E of java.util.ArrayList [operator] declared in java.util.ArrayList
@@ -377,14 +377,14 @@ FILE fqName:<root> fileName:/ArrayListOverrides.kt
overridden:
public open fun toString (): @[EnhancedNullability] kotlin.String [fake_override] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractCollection<E of java.util.AbstractCollection>
FUN FAKE_OVERRIDE name:parallelStream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<E of kotlin.collections.Collection>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] kotlin.String?> [fake_override]
overridden:
public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] E of java.util.ArrayList?> [fake_override] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<E of kotlin.collections.Collection>
FUN FAKE_OVERRIDE name:stream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<E of kotlin.collections.Collection>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] kotlin.String?> [fake_override]
overridden:
public open fun stream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] E of java.util.ArrayList?> [fake_override] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<E of kotlin.collections.Collection>
FUN FAKE_OVERRIDE name:parallelStream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<E of kotlin.collections.Collection>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] kotlin.String?> [fake_override]
overridden:
public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] E of java.util.ArrayList?> [fake_override] declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<E of kotlin.collections.Collection>
FUN FAKE_OVERRIDE name:removeAt visibility:public modality:OPEN <> ($this:java.util.ArrayList<E of java.util.ArrayList>, p0:kotlin.Int) returnType:@[EnhancedNullability] kotlin.String [fake_override,operator]
overridden:
public open fun removeAt (p0: kotlin.Int): @[EnhancedNullability] E of java.util.ArrayList [operator] declared in java.util.ArrayList