JVM_IR fix Java wildcard types translation
Types such as 'Collection<? extends CharSequence>' are treated as '(kotlin.collections.MutableCollection<out kotlin.CharSequence!> ..kotlin.collections.Collection<kotlin.CharSequence!>?)' by the front-end. When generating generic signatures, JVM BE takes lower bound (which is 'kotlin.collections.MutableCollection<out kotlin.CharSequence!>'). Emulate this behavior in TypeTranslator.
This commit is contained in:
+5
@@ -2070,6 +2070,11 @@ public class Fir2IrTextTestGenerated extends AbstractFir2IrTextTest {
|
||||
runTest("compiler/testData/ir/irText/types/intersectionType3_OI.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("javaWildcardType.kt")
|
||||
public void testJavaWildcardType() throws Exception {
|
||||
runTest("compiler/testData/ir/irText/types/javaWildcardType.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt36143.kt")
|
||||
public void testKt36143() throws Exception {
|
||||
runTest("compiler/testData/ir/irText/types/kt36143.kt");
|
||||
|
||||
@@ -83,55 +83,71 @@ class TypeTranslator(
|
||||
translateType(kotlinType, Variance.INVARIANT).type
|
||||
|
||||
private fun translateType(kotlinType: KotlinType, variance: Variance): IrTypeProjection {
|
||||
val flexibleApproximatedType = approximate(kotlinType)
|
||||
val approximatedType = approximate(kotlinType)
|
||||
|
||||
when {
|
||||
flexibleApproximatedType.isError ->
|
||||
return IrErrorTypeImpl(flexibleApproximatedType, translateTypeAnnotations(flexibleApproximatedType), variance)
|
||||
flexibleApproximatedType.isDynamic() ->
|
||||
return IrDynamicTypeImpl(flexibleApproximatedType, translateTypeAnnotations(flexibleApproximatedType), variance)
|
||||
approximatedType.isError ->
|
||||
return IrErrorTypeImpl(approximatedType, translateTypeAnnotations(approximatedType), variance)
|
||||
approximatedType.isDynamic() ->
|
||||
return IrDynamicTypeImpl(approximatedType, translateTypeAnnotations(approximatedType), variance)
|
||||
}
|
||||
|
||||
val approximatedType = flexibleApproximatedType.upperIfFlexible()
|
||||
|
||||
val ktTypeConstructor = approximatedType.constructor
|
||||
val ktTypeDescriptor = ktTypeConstructor.declarationDescriptor
|
||||
?: throw AssertionError("No descriptor for type $approximatedType")
|
||||
val upperType = approximatedType.upperIfFlexible()
|
||||
val upperTypeDescriptor = upperType.constructor.declarationDescriptor
|
||||
?: throw AssertionError("No descriptor for type $upperType")
|
||||
|
||||
if (erasureStack.isNotEmpty()) {
|
||||
if (ktTypeDescriptor is TypeParameterDescriptor) {
|
||||
if (ktTypeDescriptor.containingDeclaration in erasureStack) {
|
||||
if (upperTypeDescriptor is TypeParameterDescriptor) {
|
||||
if (upperTypeDescriptor.containingDeclaration in erasureStack) {
|
||||
// This hack is about type parameter leak in case of generic delegated property
|
||||
// Such code has to be prohibited since LV 1.5
|
||||
// For more details see commit message or KT-24643
|
||||
return approximateUpperBounds(ktTypeDescriptor.upperBounds, variance)
|
||||
return approximateUpperBounds(upperTypeDescriptor.upperBounds, variance)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return IrSimpleTypeBuilder().apply {
|
||||
this.kotlinType = flexibleApproximatedType
|
||||
this.hasQuestionMark = approximatedType.isMarkedNullable
|
||||
this.kotlinType = approximatedType
|
||||
this.hasQuestionMark = upperType.isMarkedNullable
|
||||
this.variance = variance
|
||||
this.abbreviation = approximatedType.getAbbreviation()?.toIrTypeAbbreviation()
|
||||
when (ktTypeDescriptor) {
|
||||
this.abbreviation = upperType.getAbbreviation()?.toIrTypeAbbreviation()
|
||||
|
||||
when (upperTypeDescriptor) {
|
||||
is TypeParameterDescriptor -> {
|
||||
classifier = resolveTypeParameter(ktTypeDescriptor)
|
||||
annotations = translateTypeAnnotations(approximatedType, flexibleApproximatedType)
|
||||
classifier = resolveTypeParameter(upperTypeDescriptor)
|
||||
annotations = translateTypeAnnotations(upperType, approximatedType)
|
||||
}
|
||||
|
||||
is ClassDescriptor -> {
|
||||
classifier = symbolTable.referenceClass(ktTypeDescriptor)
|
||||
arguments =
|
||||
if (flexibleApproximatedType is RawType)
|
||||
translateTypeArguments(flexibleApproximatedType.arguments)
|
||||
else
|
||||
// Types such as 'java.util.Collection<? extends CharSequence>' are treated as
|
||||
// '( kotlin.collections.MutableCollection<out kotlin.CharSequence!>
|
||||
// .. kotlin.collections.Collection<kotlin.CharSequence!>? )'
|
||||
// by the front-end.
|
||||
// When generating generic signatures, JVM BE uses generic arguments of lower bound,
|
||||
// thus producing 'java.util.Collection<? extends CharSequence>' from
|
||||
// 'kotlin.collections.MutableCollection<out kotlin.CharSequence!>'.
|
||||
// Construct equivalent type here.
|
||||
// NB the difference is observed only when lowerTypeDescriptor != upperTypeDescriptor,
|
||||
// which corresponds to mutability-flexible types such as mentioned above.
|
||||
val lowerType = approximatedType.lowerIfFlexible()
|
||||
val lowerTypeDescriptor =
|
||||
lowerType.constructor.declarationDescriptor as? ClassDescriptor
|
||||
?: throw AssertionError("No class descriptor for lower type $lowerType of $approximatedType")
|
||||
classifier = symbolTable.referenceClass(lowerTypeDescriptor)
|
||||
arguments = when {
|
||||
approximatedType is RawType ->
|
||||
translateTypeArguments(approximatedType.arguments)
|
||||
annotations = translateTypeAnnotations(approximatedType, flexibleApproximatedType)
|
||||
lowerTypeDescriptor != upperTypeDescriptor ->
|
||||
translateTypeArguments(lowerType.arguments)
|
||||
else ->
|
||||
translateTypeArguments(upperType.arguments)
|
||||
}
|
||||
annotations = translateTypeAnnotations(upperType, approximatedType)
|
||||
}
|
||||
|
||||
else ->
|
||||
throw AssertionError("Unexpected type descriptor $ktTypeDescriptor :: ${ktTypeDescriptor::class}")
|
||||
throw AssertionError("Unexpected type descriptor $upperTypeDescriptor :: ${upperTypeDescriptor::class}")
|
||||
}
|
||||
}.buildTypeProjection()
|
||||
}
|
||||
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// FILE: delegationToJavaInterfaceWithWildcardType.kt
|
||||
// WITH_SIGNATURES
|
||||
interface K {
|
||||
fun kf1(): Collection<out CharSequence>
|
||||
fun kf2(): Collection<CharSequence>
|
||||
|
||||
fun kg1(c: Collection<out CharSequence>)
|
||||
fun kg2(c: Collection<CharSequence>)
|
||||
}
|
||||
|
||||
class C(j: J, k: K) : J by j, K by k
|
||||
|
||||
// FILE: J.java
|
||||
import java.util.*;
|
||||
|
||||
public interface J {
|
||||
Collection<? extends CharSequence> jf1();
|
||||
Collection<CharSequence> jf2();
|
||||
|
||||
void jg1(Collection<? extends CharSequence> c);
|
||||
void jg2(Collection<CharSequence> c);
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
@kotlin.Metadata
|
||||
public final class<null> C {
|
||||
// source: 'delegationToJavaInterfaceWithWildcardType.kt'
|
||||
public <()Ljava/util/Collection<+Ljava/lang/CharSequence;>;> method jf1(): java.util.Collection
|
||||
public <()Ljava/util/Collection<Ljava/lang/CharSequence;>;> method jf2(): java.util.Collection
|
||||
public @org.jetbrains.annotations.NotNull <()Ljava/util/Collection<Ljava/lang/CharSequence;>;> method kf1(): java.util.Collection
|
||||
public @org.jetbrains.annotations.NotNull <()Ljava/util/Collection<Ljava/lang/CharSequence;>;> method kf2(): java.util.Collection
|
||||
public <(Ljava/util/Collection<+Ljava/lang/CharSequence;>;)V> method jg1(p0: java.util.Collection): void
|
||||
public <(Ljava/util/Collection<+Ljava/lang/CharSequence;>;)V> method kg1(@org.jetbrains.annotations.NotNull p0: java.util.Collection): void
|
||||
public <(Ljava/util/Collection<+Ljava/lang/CharSequence;>;)V> method kg2(@org.jetbrains.annotations.NotNull p0: java.util.Collection): void
|
||||
public <(Ljava/util/Collection<Ljava/lang/CharSequence;>;)V> method jg2(p0: java.util.Collection): void
|
||||
public <null> method <init>(@org.jetbrains.annotations.NotNull p0: J, @org.jetbrains.annotations.NotNull p1: K): void
|
||||
private synthetic final field <null> $$delegate_0: J
|
||||
private synthetic final field <null> $$delegate_1: K
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public interface<null> K {
|
||||
// source: 'delegationToJavaInterfaceWithWildcardType.kt'
|
||||
public abstract @org.jetbrains.annotations.NotNull <()Ljava/util/Collection<Ljava/lang/CharSequence;>;> method kf1(): java.util.Collection
|
||||
public abstract @org.jetbrains.annotations.NotNull <()Ljava/util/Collection<Ljava/lang/CharSequence;>;> method kf2(): java.util.Collection
|
||||
public abstract <(Ljava/util/Collection<+Ljava/lang/CharSequence;>;)V> method kg1(@org.jetbrains.annotations.NotNull p0: java.util.Collection): void
|
||||
public abstract <(Ljava/util/Collection<+Ljava/lang/CharSequence;>;)V> method kg2(@org.jetbrains.annotations.NotNull p0: java.util.Collection): void
|
||||
}
|
||||
@@ -19,7 +19,7 @@ public final class<<T:Ljava/lang/Number;>Ljava/lang/Object;> GenericOut {
|
||||
@kotlin.Metadata
|
||||
public final class<null> KRaw {
|
||||
// source: 'rawTypeInSignature.kt'
|
||||
public <(Ljava/util/List<+Ljava/lang/Object;>;Ljava/util/List;)Ljava/util/List;> method bothRawAndGeneric(p0: java.util.List, p1: java.util.List): java.util.List
|
||||
public <(Ljava/util/List<Ljava/lang/Object;>;Ljava/util/List;)Ljava/util/List;> method bothRawAndGeneric(p0: java.util.List, p1: java.util.List): java.util.List
|
||||
public <null> method <init>(@org.jetbrains.annotations.NotNull p0: JRaw): void
|
||||
public <null> method returnsRawGenericIn(): GenericIn
|
||||
public <null> method returnsRawGenericInv(): GenericInv
|
||||
|
||||
@@ -63,7 +63,7 @@ FILE fqName:<root> fileName:/AllCandidates.kt
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:@[FlexibleNullability] <root>.OverloadResolutionResultsImpl<@[FlexibleNullability] A of <root>.allCandidatesResult?>?) returnType:kotlin.Unit
|
||||
$receiver: VALUE_PARAMETER name:<this> type:@[FlexibleNullability] <root>.OverloadResolutionResultsImpl<@[FlexibleNullability] A of <root>.allCandidatesResult?>?
|
||||
BLOCK_BODY
|
||||
CALL 'public open fun setAllCandidates (allCandidates: @[FlexibleNullability] kotlin.collections.Collection<@[FlexibleNullability] <root>.ResolvedCall<@[FlexibleNullability] D of <root>.OverloadResolutionResultsImpl?>?>?): kotlin.Unit declared in <root>.OverloadResolutionResultsImpl' type=kotlin.Unit origin=EQ
|
||||
CALL 'public open fun setAllCandidates (allCandidates: @[FlexibleNullability] kotlin.collections.MutableCollection<@[FlexibleNullability] <root>.ResolvedCall<@[FlexibleNullability] D of <root>.OverloadResolutionResultsImpl?>?>?): kotlin.Unit declared in <root>.OverloadResolutionResultsImpl' type=kotlin.Unit origin=EQ
|
||||
<1>: @[FlexibleNullability] A of <root>.allCandidatesResult?
|
||||
$this: TYPE_OP type=<root>.OverloadResolutionResultsImpl<@[FlexibleNullability] A of <root>.allCandidatesResult?> origin=IMPLICIT_NOTNULL typeOperand=<root>.OverloadResolutionResultsImpl<@[FlexibleNullability] A of <root>.allCandidatesResult?>
|
||||
GET_VAR '<this>: @[FlexibleNullability] <root>.OverloadResolutionResultsImpl<@[FlexibleNullability] A of <root>.allCandidatesResult?>? declared in <root>.allCandidatesResult.<anonymous>' type=@[FlexibleNullability] <root>.OverloadResolutionResultsImpl<@[FlexibleNullability] A of <root>.allCandidatesResult?>? origin=null
|
||||
|
||||
@@ -8,12 +8,12 @@ FILE fqName:<root> fileName:/typeParametersInImplicitCast.kt
|
||||
<T>: kotlin.collections.List<T of <root>.problematic>
|
||||
<R>: @[FlexibleNullability] T of <root>.problematic?
|
||||
$receiver: GET_VAR 'lss: kotlin.collections.List<kotlin.collections.List<T of <root>.problematic>> declared in <root>.problematic' type=kotlin.collections.List<kotlin.collections.List<T of <root>.problematic>> origin=null
|
||||
transform: FUN_EXPR type=kotlin.Function1<kotlin.collections.List<T of <root>.problematic>, @[EnhancedNullability] kotlin.collections.List<@[FlexibleNullability] T of <root>.problematic?>> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.collections.List<T of <root>.problematic>) returnType:@[EnhancedNullability] kotlin.collections.List<@[FlexibleNullability] T of <root>.problematic?>
|
||||
transform: FUN_EXPR type=kotlin.Function1<kotlin.collections.List<T of <root>.problematic>, @[EnhancedNullability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.problematic?>> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.collections.List<T of <root>.problematic>) returnType:@[EnhancedNullability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.problematic?>
|
||||
VALUE_PARAMETER name:it index:0 type:kotlin.collections.List<T of <root>.problematic>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (it: kotlin.collections.List<T of <root>.problematic>): @[EnhancedNullability] kotlin.collections.List<@[FlexibleNullability] T of <root>.problematic?> declared in <root>.problematic'
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (it: kotlin.collections.List<T of <root>.problematic>): @[EnhancedNullability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.problematic?> declared in <root>.problematic'
|
||||
TYPE_OP type=kotlin.collections.List<@[FlexibleNullability] T of <root>.problematic?> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<@[FlexibleNullability] T of <root>.problematic?>
|
||||
CALL 'public/*package*/ open fun id <T> (v: @[FlexibleNullability] kotlin.collections.List<@[FlexibleNullability] T of <root>.ListId.id?>?): @[EnhancedNullability] kotlin.collections.List<@[FlexibleNullability] T of <root>.ListId.id?> declared in <root>.ListId' type=@[EnhancedNullability] kotlin.collections.List<@[FlexibleNullability] T of <root>.problematic?> origin=null
|
||||
CALL 'public/*package*/ open fun id <T> (v: @[FlexibleNullability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.ListId.id?>?): @[EnhancedNullability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.ListId.id?> declared in <root>.ListId' type=@[EnhancedNullability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.problematic?> origin=null
|
||||
<T>: @[FlexibleNullability] T of <root>.problematic?
|
||||
v: GET_VAR 'it: kotlin.collections.List<T of <root>.problematic> declared in <root>.problematic.<anonymous>' type=kotlin.collections.List<T of <root>.problematic> origin=null
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ FILE fqName:<root> fileName:/builtinMap.kt
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CALL 'public final fun apply <T> (block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.apply, kotlin.Unit>): T of kotlin.apply [inline] declared in kotlin' type=java.util.LinkedHashMap<@[FlexibleNullability] K1 of <root>.plus?, @[FlexibleNullability] V1 of <root>.plus?>{ kotlin.collections.LinkedHashMap<@[FlexibleNullability] K1 of <root>.plus?, @[FlexibleNullability] V1 of <root>.plus?> } origin=null
|
||||
<T>: java.util.LinkedHashMap<@[FlexibleNullability] K1 of <root>.plus?, @[FlexibleNullability] V1 of <root>.plus?>{ kotlin.collections.LinkedHashMap<@[FlexibleNullability] K1 of <root>.plus?, @[FlexibleNullability] V1 of <root>.plus?> }
|
||||
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (p0: @[FlexibleNullability] kotlin.collections.Map<out @[FlexibleNullability] K of java.util.LinkedHashMap?, @[FlexibleNullability] V of java.util.LinkedHashMap?>?) declared in java.util.LinkedHashMap' type=java.util.LinkedHashMap<@[FlexibleNullability] K1 of <root>.plus?, @[FlexibleNullability] V1 of <root>.plus?> origin=null
|
||||
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (p0: @[FlexibleNullability] kotlin.collections.MutableMap<out @[FlexibleNullability] K of java.util.LinkedHashMap?, out @[FlexibleNullability] V of java.util.LinkedHashMap?>?) declared in java.util.LinkedHashMap' type=java.util.LinkedHashMap<@[FlexibleNullability] K1 of <root>.plus?, @[FlexibleNullability] V1 of <root>.plus?> origin=null
|
||||
<class: K>: @[FlexibleNullability] K1 of <root>.plus?
|
||||
<class: V>: @[FlexibleNullability] V1 of <root>.plus?
|
||||
p0: GET_VAR '<this>: kotlin.collections.Map<out K1 of <root>.plus, V1 of <root>.plus> declared in <root>.plus' type=kotlin.collections.Map<out K1 of <root>.plus, V1 of <root>.plus> origin=null
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
// FILE: javaWildcardType.kt
|
||||
interface K {
|
||||
fun kf1(): Collection<out CharSequence>
|
||||
fun kf2(): Collection<CharSequence>
|
||||
|
||||
fun kg1(c: Collection<out CharSequence>)
|
||||
fun kg2(c: Collection<CharSequence>)
|
||||
}
|
||||
|
||||
|
||||
class C(j: J, k: K) : J by j, K by k
|
||||
|
||||
// FILE: J.java
|
||||
import java.util.*;
|
||||
|
||||
public interface J {
|
||||
Collection<? extends CharSequence> jf1();
|
||||
Collection<CharSequence> jf2();
|
||||
|
||||
void jg1(Collection<? extends CharSequence> c);
|
||||
void jg2(Collection<CharSequence> c);
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
FILE fqName:<root> fileName:/javaWildcardType.kt
|
||||
CLASS INTERFACE name:K modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K
|
||||
FUN name:kf1 visibility:public modality:ABSTRACT <> ($this:<root>.K) returnType:kotlin.collections.Collection<out kotlin.CharSequence>
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.K
|
||||
FUN name:kf2 visibility:public modality:ABSTRACT <> ($this:<root>.K) returnType:kotlin.collections.Collection<kotlin.CharSequence>
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.K
|
||||
FUN name:kg1 visibility:public modality:ABSTRACT <> ($this:<root>.K, c:kotlin.collections.Collection<out kotlin.CharSequence>) returnType:kotlin.Unit
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.K
|
||||
VALUE_PARAMETER name:c index:0 type:kotlin.collections.Collection<out kotlin.CharSequence>
|
||||
FUN name:kg2 visibility:public modality:ABSTRACT <> ($this:<root>.K, c:kotlin.collections.Collection<kotlin.CharSequence>) returnType:kotlin.Unit
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.K
|
||||
VALUE_PARAMETER name:c index:0 type:kotlin.collections.Collection<kotlin.CharSequence>
|
||||
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
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.J; <root>.K]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
|
||||
CONSTRUCTOR visibility:public <> (j:<root>.J, k:<root>.K) returnType:<root>.C [primary]
|
||||
VALUE_PARAMETER name:j index:0 type:<root>.J
|
||||
VALUE_PARAMETER name:k index:1 type:<root>.K
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.J; <root>.K]'
|
||||
FIELD DELEGATE name:$$delegate_0 type:<root>.J visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
GET_VAR 'j: <root>.J declared in <root>.C.<init>' type=<root>.J origin=null
|
||||
FUN DELEGATED_MEMBER name:jf1 visibility:public modality:OPEN <> ($this:<root>.C) returnType:@[FlexibleNullability] kotlin.collections.MutableCollection<out @[FlexibleNullability] kotlin.CharSequence?>?
|
||||
overridden:
|
||||
public abstract fun jf1 (): @[FlexibleNullability] kotlin.collections.MutableCollection<out @[FlexibleNullability] kotlin.CharSequence?>? declared in <root>.J
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun jf1 (): @[FlexibleNullability] kotlin.collections.MutableCollection<out @[FlexibleNullability] kotlin.CharSequence?>? declared in <root>.C'
|
||||
CALL 'public abstract fun jf1 (): @[FlexibleNullability] kotlin.collections.MutableCollection<out @[FlexibleNullability] kotlin.CharSequence?>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.MutableCollection<out @[FlexibleNullability] kotlin.CharSequence?>? origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.J visibility:private [final]' type=<root>.J origin=null
|
||||
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.jf1' type=<root>.C origin=null
|
||||
FUN DELEGATED_MEMBER name:jf2 visibility:public modality:OPEN <> ($this:<root>.C) returnType:@[FlexibleNullability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.CharSequence?>?
|
||||
overridden:
|
||||
public abstract fun jf2 (): @[FlexibleNullability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.CharSequence?>? declared in <root>.J
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun jf2 (): @[FlexibleNullability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.CharSequence?>? declared in <root>.C'
|
||||
CALL 'public abstract fun jf2 (): @[FlexibleNullability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.CharSequence?>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.CharSequence?>? origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.J visibility:private [final]' type=<root>.J origin=null
|
||||
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.jf2' type=<root>.C origin=null
|
||||
FUN DELEGATED_MEMBER name:jg1 visibility:public modality:OPEN <> ($this:<root>.C, c:@[FlexibleNullability] kotlin.collections.MutableCollection<out @[FlexibleNullability] kotlin.CharSequence?>?) returnType:kotlin.Unit
|
||||
overridden:
|
||||
public abstract fun jg1 (c: @[FlexibleNullability] kotlin.collections.MutableCollection<out @[FlexibleNullability] kotlin.CharSequence?>?): kotlin.Unit declared in <root>.J
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
VALUE_PARAMETER name:c index:0 type:@[FlexibleNullability] kotlin.collections.MutableCollection<out @[FlexibleNullability] kotlin.CharSequence?>?
|
||||
BLOCK_BODY
|
||||
CALL 'public abstract fun jg1 (c: @[FlexibleNullability] kotlin.collections.MutableCollection<out @[FlexibleNullability] kotlin.CharSequence?>?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.J visibility:private [final]' type=<root>.J origin=null
|
||||
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.jg1' type=<root>.C origin=null
|
||||
c: GET_VAR 'c: @[FlexibleNullability] kotlin.collections.MutableCollection<out @[FlexibleNullability] kotlin.CharSequence?>? declared in <root>.C.jg1' type=@[FlexibleNullability] kotlin.collections.MutableCollection<out @[FlexibleNullability] kotlin.CharSequence?>? origin=null
|
||||
FUN DELEGATED_MEMBER name:jg2 visibility:public modality:OPEN <> ($this:<root>.C, c:@[FlexibleNullability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.CharSequence?>?) returnType:kotlin.Unit
|
||||
overridden:
|
||||
public abstract fun jg2 (c: @[FlexibleNullability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.CharSequence?>?): kotlin.Unit declared in <root>.J
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
VALUE_PARAMETER name:c index:0 type:@[FlexibleNullability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.CharSequence?>?
|
||||
BLOCK_BODY
|
||||
CALL 'public abstract fun jg2 (c: @[FlexibleNullability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.CharSequence?>?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.J visibility:private [final]' type=<root>.J origin=null
|
||||
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.jg2' type=<root>.C origin=null
|
||||
c: GET_VAR 'c: @[FlexibleNullability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.CharSequence?>? declared in <root>.C.jg2' type=@[FlexibleNullability] kotlin.collections.MutableCollection<@[FlexibleNullability] kotlin.CharSequence?>? origin=null
|
||||
FIELD DELEGATE name:$$delegate_1 type:<root>.K visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
GET_VAR 'k: <root>.K declared in <root>.C.<init>' type=<root>.K origin=null
|
||||
FUN DELEGATED_MEMBER name:kf1 visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.collections.Collection<out kotlin.CharSequence>
|
||||
overridden:
|
||||
public abstract fun kf1 (): kotlin.collections.Collection<out kotlin.CharSequence> declared in <root>.K
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun kf1 (): kotlin.collections.Collection<out kotlin.CharSequence> declared in <root>.C'
|
||||
CALL 'public abstract fun kf1 (): kotlin.collections.Collection<out kotlin.CharSequence> declared in <root>.K' type=kotlin.collections.Collection<out kotlin.CharSequence> origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_1 type:<root>.K visibility:private [final]' type=<root>.K origin=null
|
||||
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.kf1' type=<root>.C origin=null
|
||||
FUN DELEGATED_MEMBER name:kf2 visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.collections.Collection<kotlin.CharSequence>
|
||||
overridden:
|
||||
public abstract fun kf2 (): kotlin.collections.Collection<kotlin.CharSequence> declared in <root>.K
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun kf2 (): kotlin.collections.Collection<kotlin.CharSequence> declared in <root>.C'
|
||||
CALL 'public abstract fun kf2 (): kotlin.collections.Collection<kotlin.CharSequence> declared in <root>.K' type=kotlin.collections.Collection<kotlin.CharSequence> origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_1 type:<root>.K visibility:private [final]' type=<root>.K origin=null
|
||||
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.kf2' type=<root>.C origin=null
|
||||
FUN DELEGATED_MEMBER name:kg1 visibility:public modality:OPEN <> ($this:<root>.C, c:kotlin.collections.Collection<out kotlin.CharSequence>) returnType:kotlin.Unit
|
||||
overridden:
|
||||
public abstract fun kg1 (c: kotlin.collections.Collection<out kotlin.CharSequence>): kotlin.Unit declared in <root>.K
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
VALUE_PARAMETER name:c index:0 type:kotlin.collections.Collection<out kotlin.CharSequence>
|
||||
BLOCK_BODY
|
||||
CALL 'public abstract fun kg1 (c: kotlin.collections.Collection<out kotlin.CharSequence>): kotlin.Unit declared in <root>.K' type=kotlin.Unit origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_1 type:<root>.K visibility:private [final]' type=<root>.K origin=null
|
||||
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.kg1' type=<root>.C origin=null
|
||||
c: GET_VAR 'c: kotlin.collections.Collection<out kotlin.CharSequence> declared in <root>.C.kg1' type=kotlin.collections.Collection<out kotlin.CharSequence> origin=null
|
||||
FUN DELEGATED_MEMBER name:kg2 visibility:public modality:OPEN <> ($this:<root>.C, c:kotlin.collections.Collection<kotlin.CharSequence>) returnType:kotlin.Unit
|
||||
overridden:
|
||||
public abstract fun kg2 (c: kotlin.collections.Collection<kotlin.CharSequence>): kotlin.Unit declared in <root>.K
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
VALUE_PARAMETER name:c index:0 type:kotlin.collections.Collection<kotlin.CharSequence>
|
||||
BLOCK_BODY
|
||||
CALL 'public abstract fun kg2 (c: kotlin.collections.Collection<kotlin.CharSequence>): kotlin.Unit declared in <root>.K' type=kotlin.Unit origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_1 type:<root>.K visibility:private [final]' type=<root>.K origin=null
|
||||
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.kg2' type=<root>.C origin=null
|
||||
c: GET_VAR 'c: kotlin.collections.Collection<kotlin.CharSequence> declared in <root>.C.kg2' type=kotlin.collections.Collection<kotlin.CharSequence> 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 [fake_override,operator] declared in <root>.J
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.K
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in <root>.J
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in <root>.K
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String [fake_override] declared in <root>.J
|
||||
public open fun toString (): kotlin.String [fake_override] declared in <root>.K
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
Vendored
+1
-1
@@ -193,7 +193,7 @@ FILE fqName:<root> fileName:/enhancedNullabilityInDestructuringAssignment.kt
|
||||
$receiver: CALL 'public final fun withIndex <T> (): kotlin.collections.Iterable<kotlin.collections.IndexedValue<T of kotlin.collections.withIndex>> declared in kotlin.collections' type=kotlin.collections.Iterable<kotlin.collections.IndexedValue<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>> origin=null
|
||||
<T>: @[NotNull(value = <null>)] @[EnhancedNullability] <root>.P
|
||||
$receiver: TYPE_OP type=kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>
|
||||
CALL 'public open fun listOfNotNull (): @[FlexibleNullability] kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? origin=null
|
||||
CALL 'public open fun listOfNotNull (): @[FlexibleNullability] kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? origin=null
|
||||
VAR name:x type:kotlin.Int [val]
|
||||
CALL 'public final fun component1 (): kotlin.Int [operator] declared in kotlin.collections.IndexedValue' type=kotlin.Int origin=COMPONENT_N(index=1)
|
||||
$this: GET_VAR 'val tmp_3: kotlin.collections.IndexedValue<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> [val] declared in <root>.test4' type=kotlin.collections.IndexedValue<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=null
|
||||
|
||||
+4
-4
@@ -9,7 +9,7 @@ FILE fqName:<root> fileName:/enhancedNullabilityInForLoop.kt
|
||||
CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator<E of kotlin.collections.MutableList> [fake_override,operator] declared in kotlin.collections.MutableList' type=kotlin.collections.MutableIterator<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=FOR_LOOP_ITERATOR
|
||||
$this: TYPE_OP type=kotlin.collections.MutableList<*> origin=IMPLICIT_CAST typeOperand=kotlin.collections.MutableList<*>
|
||||
TYPE_OP type=kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>
|
||||
CALL 'public open fun listOfNotNull (): @[FlexibleNullability] kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? origin=null
|
||||
CALL 'public open fun listOfNotNull (): @[FlexibleNullability] kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? origin=null
|
||||
WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
||||
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean [fake_override,operator] declared in kotlin.collections.MutableIterator' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
|
||||
$this: GET_VAR 'val tmp_0: kotlin.collections.MutableIterator<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> [val] declared in <root>.testForInListUnused' type=kotlin.collections.MutableIterator<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=null
|
||||
@@ -25,7 +25,7 @@ FILE fqName:<root> fileName:/enhancedNullabilityInForLoop.kt
|
||||
CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator<E of kotlin.collections.MutableList> [fake_override,operator] declared in kotlin.collections.MutableList' type=kotlin.collections.MutableIterator<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=FOR_LOOP_ITERATOR
|
||||
$this: TYPE_OP type=kotlin.collections.MutableList<*> origin=IMPLICIT_CAST typeOperand=kotlin.collections.MutableList<*>
|
||||
TYPE_OP type=kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>
|
||||
CALL 'public open fun listOfNotNull (): @[FlexibleNullability] kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? origin=null
|
||||
CALL 'public open fun listOfNotNull (): @[FlexibleNullability] kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? origin=null
|
||||
WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
||||
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean [fake_override,operator] declared in kotlin.collections.MutableIterator' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
|
||||
$this: GET_VAR 'val tmp_1: kotlin.collections.MutableIterator<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> [val] declared in <root>.testForInListDestructured' type=kotlin.collections.MutableIterator<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=null
|
||||
@@ -48,7 +48,7 @@ FILE fqName:<root> fileName:/enhancedNullabilityInForLoop.kt
|
||||
CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator<E of kotlin.collections.MutableList> [fake_override,operator] declared in kotlin.collections.MutableList' type=kotlin.collections.MutableIterator<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=null
|
||||
$this: TYPE_OP type=kotlin.collections.MutableList<*> origin=IMPLICIT_CAST typeOperand=kotlin.collections.MutableList<*>
|
||||
TYPE_OP type=kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>
|
||||
CALL 'public open fun listOfNotNull (): @[FlexibleNullability] kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? origin=null
|
||||
CALL 'public open fun listOfNotNull (): @[FlexibleNullability] kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? origin=null
|
||||
WHILE label=null origin=WHILE_LOOP
|
||||
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean [fake_override,operator] declared in kotlin.collections.MutableIterator' type=kotlin.Boolean origin=null
|
||||
$this: GET_VAR 'val iterator: kotlin.collections.MutableIterator<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> [val] declared in <root>.testDesugaredForInList' type=kotlin.collections.MutableIterator<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=null
|
||||
@@ -82,7 +82,7 @@ FILE fqName:<root> fileName:/enhancedNullabilityInForLoop.kt
|
||||
CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator<E of kotlin.collections.MutableList> [fake_override,operator] declared in kotlin.collections.MutableList' type=kotlin.collections.MutableIterator<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=FOR_LOOP_ITERATOR
|
||||
$this: TYPE_OP type=kotlin.collections.MutableList<*> origin=IMPLICIT_CAST typeOperand=kotlin.collections.MutableList<*>
|
||||
TYPE_OP type=kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>
|
||||
CALL 'public open fun listOfNotNull (): @[FlexibleNullability] kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.List<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? origin=null
|
||||
CALL 'public open fun listOfNotNull (): @[FlexibleNullability] kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.MutableList<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P>? origin=null
|
||||
WHILE label=null origin=FOR_LOOP_INNER_WHILE
|
||||
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean [fake_override,operator] declared in kotlin.collections.MutableIterator' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
|
||||
$this: GET_VAR 'val tmp_4: kotlin.collections.MutableIterator<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> [val] declared in <root>.testForInListUse' type=kotlin.collections.MutableIterator<@[NotNull(value = <null>)] @[EnhancedNullability] <root>.P> origin=null
|
||||
|
||||
@@ -114,13 +114,13 @@ FILE fqName:<root> fileName:/rawTypeInSignature.kt
|
||||
CALL 'public abstract fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>? declared in <root>.JRaw' type=@[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>? origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]' type=<root>.JRaw origin=null
|
||||
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw.returnsRawGenericOut' type=<root>.KRaw origin=null
|
||||
FUN DELEGATED_MEMBER name:returnsRawList visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] @[RawType] kotlin.collections.List<kotlin.Any?>?
|
||||
FUN DELEGATED_MEMBER name:returnsRawList visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
|
||||
overridden:
|
||||
public abstract fun returnsRawList (): @[FlexibleNullability] @[RawType] kotlin.collections.List<kotlin.Any?>? declared in <root>.JRaw
|
||||
public abstract fun returnsRawList (): @[FlexibleNullability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.JRaw
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun returnsRawList (): @[FlexibleNullability] @[RawType] kotlin.collections.List<kotlin.Any?>? declared in <root>.KRaw'
|
||||
CALL 'public abstract fun returnsRawList (): @[FlexibleNullability] @[RawType] kotlin.collections.List<kotlin.Any?>? declared in <root>.JRaw' type=@[FlexibleNullability] @[RawType] kotlin.collections.List<kotlin.Any?>? origin=null
|
||||
RETURN type=kotlin.Nothing from='public open fun returnsRawList (): @[FlexibleNullability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.KRaw'
|
||||
CALL 'public abstract fun returnsRawList (): @[FlexibleNullability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.JRaw' type=@[FlexibleNullability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]' type=<root>.JRaw origin=null
|
||||
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw.returnsRawList' type=<root>.KRaw origin=null
|
||||
FUN DELEGATED_MEMBER name:takesRawGenericIn visibility:public modality:OPEN <> ($this:<root>.KRaw, g:@[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>?) returnType:kotlin.Unit
|
||||
@@ -153,16 +153,16 @@ FILE fqName:<root> fileName:/rawTypeInSignature.kt
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]' type=<root>.JRaw origin=null
|
||||
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw.takesRawGenericOut' type=<root>.KRaw origin=null
|
||||
g: GET_VAR 'g: @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>? declared in <root>.KRaw.takesRawGenericOut' type=@[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>? origin=null
|
||||
FUN DELEGATED_MEMBER name:takesRawList visibility:public modality:OPEN <> ($this:<root>.KRaw, list:@[FlexibleNullability] @[RawType] kotlin.collections.List<kotlin.Any?>?) returnType:kotlin.Unit
|
||||
FUN DELEGATED_MEMBER name:takesRawList visibility:public modality:OPEN <> ($this:<root>.KRaw, list:@[FlexibleNullability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit
|
||||
overridden:
|
||||
public abstract fun takesRawList (list: @[FlexibleNullability] @[RawType] kotlin.collections.List<kotlin.Any?>?): kotlin.Unit declared in <root>.JRaw
|
||||
public abstract fun takesRawList (list: @[FlexibleNullability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.JRaw
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
|
||||
VALUE_PARAMETER name:list index:0 type:@[FlexibleNullability] @[RawType] kotlin.collections.List<kotlin.Any?>?
|
||||
VALUE_PARAMETER name:list index:0 type:@[FlexibleNullability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
|
||||
BLOCK_BODY
|
||||
CALL 'public abstract fun takesRawList (list: @[FlexibleNullability] @[RawType] kotlin.collections.List<kotlin.Any?>?): kotlin.Unit declared in <root>.JRaw' type=kotlin.Unit origin=null
|
||||
CALL 'public abstract fun takesRawList (list: @[FlexibleNullability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.JRaw' type=kotlin.Unit origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]' type=<root>.JRaw origin=null
|
||||
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw.takesRawList' type=<root>.KRaw origin=null
|
||||
list: GET_VAR 'list: @[FlexibleNullability] @[RawType] kotlin.collections.List<kotlin.Any?>? declared in <root>.KRaw.takesRawList' type=@[FlexibleNullability] @[RawType] kotlin.collections.List<kotlin.Any?>? origin=null
|
||||
list: GET_VAR 'list: @[FlexibleNullability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.KRaw.takesRawList' type=@[FlexibleNullability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? 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 [fake_override,operator] declared in <root>.JRaw
|
||||
|
||||
+5
@@ -49,6 +49,11 @@ public class BytecodeListingTestGenerated extends AbstractBytecodeListingTest {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/defaultImpls.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("delegationToJavaInterfaceWithWildcardType.kt")
|
||||
public void testDelegationToJavaInterfaceWithWildcardType() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/delegationToJavaInterfaceWithWildcardType.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("emptyMultifileFacade.kt")
|
||||
public void testEmptyMultifileFacade() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/emptyMultifileFacade.kt");
|
||||
|
||||
+5
@@ -49,6 +49,11 @@ public class IrBytecodeListingTestGenerated extends AbstractIrBytecodeListingTes
|
||||
runTest("compiler/testData/codegen/bytecodeListing/defaultImpls.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("delegationToJavaInterfaceWithWildcardType.kt")
|
||||
public void testDelegationToJavaInterfaceWithWildcardType() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/delegationToJavaInterfaceWithWildcardType.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("emptyMultifileFacade.kt")
|
||||
public void testEmptyMultifileFacade() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/emptyMultifileFacade.kt");
|
||||
|
||||
@@ -2069,6 +2069,11 @@ public class IrTextTestCaseGenerated extends AbstractIrTextTestCase {
|
||||
runTest("compiler/testData/ir/irText/types/intersectionType3_OI.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("javaWildcardType.kt")
|
||||
public void testJavaWildcardType() throws Exception {
|
||||
runTest("compiler/testData/ir/irText/types/javaWildcardType.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt36143.kt")
|
||||
public void testKt36143() throws Exception {
|
||||
runTest("compiler/testData/ir/irText/types/kt36143.kt");
|
||||
|
||||
Reference in New Issue
Block a user