[FIR2IR] Fix nullability of converted raw types

#KT-65298 Fixed
This commit is contained in:
Kirill Rakhman
2024-02-12 15:11:23 +01:00
committed by Space Team
parent 3b4ca56f74
commit 931480b12d
22 changed files with 401 additions and 121 deletions
@@ -176,7 +176,7 @@ class Fir2IrTypeConverter(
is ConeRawType -> {
// Upper bound has star projections here, so we take lower one
// (some reflection tests rely on this)
lowerBound.toIrType(
lowerBound.withNullability(upperBound.nullability, session.typeContext).toIrType(
typeOrigin,
annotations,
hasFlexibleNullability = lowerBound.nullability != upperBound.nullability,
@@ -2677,6 +2677,22 @@ public class FirLightTreeJvmIrTextTestGenerated extends AbstractFirLightTreeJvmI
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/fakeOverrides")
@TestDataPath("$PROJECT_ROOT")
public class FakeOverrides {
@Test
public void testAllFilesPresentInFakeOverrides() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("fakeOverrideOfRaw.kt")
public void testFakeOverrideOfRaw() throws Exception {
runTest("compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt");
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/firProblems")
@TestDataPath("$PROJECT_ROOT")
@@ -2677,6 +2677,22 @@ public class FirPsiJvmIrTextTestGenerated extends AbstractFirPsiJvmIrTextTest {
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/fakeOverrides")
@TestDataPath("$PROJECT_ROOT")
public class FakeOverrides {
@Test
public void testAllFilesPresentInFakeOverrides() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("fakeOverrideOfRaw.kt")
public void testFakeOverrideOfRaw() throws Exception {
runTest("compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt");
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/firProblems")
@TestDataPath("$PROJECT_ROOT")
@@ -0,0 +1,29 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] <root>.List?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] <root>.List?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] <root>.List?
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] <root>.List? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] <root>.List? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
@@ -0,0 +1,8 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
@@ -0,0 +1,23 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: A#bar(){}List?
// Public signature: /A.bar|-6805136188302315839[0]
// Public signature debug description: bar(){}List?
/* fake */ override fun bar(): List?
// CHECK:
// Mangled name: A#foo(List?){}
// Public signature: /A.foo|-6260703452578085119[0]
// Public signature debug description: foo(List?){}
/* fake */ override fun foo(a: List?): Unit
}
@@ -0,0 +1,29 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] <root>.List?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] <root>.List?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] <root>.List?
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] <root>.List? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] <root>.List? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
@@ -0,0 +1,13 @@
// ISSUE: KT-65298
// TARGET_BACKEND: JVM
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// FILE: Java1.java
public class Java1 {
public void foo(List a) {};
public List bar() { return null; };
}
// FILE: 1.kt
class A : Java1() {
}
@@ -0,0 +1,8 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
@@ -0,0 +1,23 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: A#bar(){}List?
// Public signature: /A.bar|-6805136188302315839[0]
// Public signature debug description: bar(){}List?
/* fake */ override fun bar(): List?
// CHECK:
// Mangled name: A#foo(List?){}
// Public signature: /A.foo|-6260703452578085119[0]
// Public signature debug description: foo(List?){}
/* fake */ override fun foo(a: List?): Unit
}
@@ -59,23 +59,23 @@ FILE fqName:<root> fileName:/rawTypeInSignature.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:testReturnsRawGenericInv visibility:public modality:FINAL <> (j:<root>.JRaw) returnType:@[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>
FUN name:testReturnsRawGenericInv visibility:public modality:FINAL <> (j:<root>.JRaw) returnType:@[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>?
VALUE_PARAMETER name:j index:0 type:<root>.JRaw
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericInv (j: <root>.JRaw): @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number> declared in <root>'
CALL 'public abstract fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number> declared in <root>.JRaw' type=@[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number> origin=null
RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericInv (j: <root>.JRaw): @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>? declared in <root>'
CALL 'public abstract fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>? declared in <root>.JRaw' type=@[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>? origin=null
$this: GET_VAR 'j: <root>.JRaw declared in <root>.testReturnsRawGenericInv' type=<root>.JRaw origin=null
FUN name:testReturnsRawGenericIn visibility:public modality:FINAL <> (j:<root>.JRaw) returnType:@[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>
FUN name:testReturnsRawGenericIn visibility:public modality:FINAL <> (j:<root>.JRaw) returnType:@[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>?
VALUE_PARAMETER name:j index:0 type:<root>.JRaw
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericIn (j: <root>.JRaw): @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number> declared in <root>'
CALL 'public abstract fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number> declared in <root>.JRaw' type=@[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number> origin=null
RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericIn (j: <root>.JRaw): @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>? declared in <root>'
CALL 'public abstract fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>? declared in <root>.JRaw' type=@[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>? origin=null
$this: GET_VAR 'j: <root>.JRaw declared in <root>.testReturnsRawGenericIn' type=<root>.JRaw origin=null
FUN name:testReturnsRawGenericOut visibility:public modality:FINAL <> (j:<root>.JRaw) returnType:@[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>
FUN name:testReturnsRawGenericOut visibility:public modality:FINAL <> (j:<root>.JRaw) returnType:@[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>?
VALUE_PARAMETER name:j index:0 type:<root>.JRaw
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericOut (j: <root>.JRaw): @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number> declared in <root>'
CALL 'public abstract fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number> declared in <root>.JRaw' type=@[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number> origin=null
RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericOut (j: <root>.JRaw): @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>? declared in <root>'
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_VAR 'j: <root>.JRaw declared in <root>.testReturnsRawGenericOut' type=<root>.JRaw origin=null
CLASS CLASS name:KRaw modality:FINAL visibility:public superTypes:[<root>.JRaw]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KRaw
@@ -87,86 +87,82 @@ FILE fqName:<root> fileName:/rawTypeInSignature.kt
FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]
EXPRESSION_BODY
GET_VAR 'j: <root>.JRaw declared in <root>.KRaw.<init>' type=<root>.JRaw origin=null
FUN DELEGATED_MEMBER name:takesRawList visibility:public modality:OPEN <> ($this:<root>.KRaw, list:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>) returnType:kotlin.Unit
FUN DELEGATED_MEMBER name:takesRawList visibility:public modality:OPEN <> ($this:<root>.KRaw, list:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit
overridden:
public abstract fun takesRawList (list: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>): kotlin.Unit declared in <root>.JRaw
public abstract fun takesRawList (list: @[FlexibleNullability] @[FlexibleMutability] @[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] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>
VALUE_PARAMETER name:list index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
BLOCK_BODY
CALL 'public abstract fun takesRawList (list: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>): kotlin.Unit declared in <root>.JRaw' type=kotlin.Unit origin=null
CALL 'public abstract fun takesRawList (list: @[FlexibleNullability] @[FlexibleMutability] @[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] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?> declared in <root>.KRaw.takesRawList' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?> origin=null
FUN DELEGATED_MEMBER name:returnsRawList visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>
list: GET_VAR 'list: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.KRaw.takesRawList' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? origin=null
FUN DELEGATED_MEMBER name:returnsRawList visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
overridden:
public abstract fun returnsRawList (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?> declared in <root>.JRaw
public abstract fun returnsRawList (): @[FlexibleNullability] @[FlexibleMutability] @[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] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?> declared in <root>.KRaw'
TYPE_OP type=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>
CALL 'public abstract fun returnsRawList (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?> declared in <root>.JRaw' type=@[FlexibleNullability] @[FlexibleMutability] @[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:takesRawGenericInv visibility:public modality:OPEN <> ($this:<root>.KRaw, g:@[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>) returnType:kotlin.Unit
RETURN type=kotlin.Nothing from='public open fun returnsRawList (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.KRaw'
CALL 'public abstract fun returnsRawList (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.JRaw' type=@[FlexibleNullability] @[FlexibleMutability] @[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:takesRawGenericInv visibility:public modality:OPEN <> ($this:<root>.KRaw, g:@[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>?) returnType:kotlin.Unit
overridden:
public abstract fun takesRawGenericInv (g: @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>): kotlin.Unit declared in <root>.JRaw
public abstract fun takesRawGenericInv (g: @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>?): kotlin.Unit declared in <root>.JRaw
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>
VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>?
BLOCK_BODY
CALL 'public abstract fun takesRawGenericInv (g: @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>): kotlin.Unit declared in <root>.JRaw' type=kotlin.Unit origin=null
CALL 'public abstract fun takesRawGenericInv (g: @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>?): 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.takesRawGenericInv' type=<root>.KRaw origin=null
g: GET_VAR 'g: @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number> declared in <root>.KRaw.takesRawGenericInv' type=@[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number> origin=null
FUN DELEGATED_MEMBER name:returnsRawGenericInv visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>
g: GET_VAR 'g: @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>? declared in <root>.KRaw.takesRawGenericInv' type=@[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>? origin=null
FUN DELEGATED_MEMBER name:returnsRawGenericInv visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>?
overridden:
public abstract fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number> declared in <root>.JRaw
public abstract fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>? declared in <root>.JRaw
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number> declared in <root>.KRaw'
TYPE_OP type=@[RawType] <root>.GenericInv<kotlin.Number> origin=IMPLICIT_NOTNULL typeOperand=@[RawType] <root>.GenericInv<kotlin.Number>
CALL 'public abstract fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number> declared in <root>.JRaw' type=@[FlexibleNullability] @[RawType] <root>.GenericInv<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.returnsRawGenericInv' 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
RETURN type=kotlin.Nothing from='public open fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>? declared in <root>.KRaw'
CALL 'public abstract fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] <root>.GenericInv<kotlin.Number>? declared in <root>.JRaw' type=@[FlexibleNullability] @[RawType] <root>.GenericInv<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.returnsRawGenericInv' 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
overridden:
public abstract fun takesRawGenericIn (g: @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>): kotlin.Unit declared in <root>.JRaw
public abstract fun takesRawGenericIn (g: @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>?): kotlin.Unit declared in <root>.JRaw
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>
VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>?
BLOCK_BODY
CALL 'public abstract fun takesRawGenericIn (g: @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>): kotlin.Unit declared in <root>.JRaw' type=kotlin.Unit origin=null
CALL 'public abstract fun takesRawGenericIn (g: @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>?): 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.takesRawGenericIn' type=<root>.KRaw origin=null
g: GET_VAR 'g: @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number> declared in <root>.KRaw.takesRawGenericIn' type=@[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number> origin=null
FUN DELEGATED_MEMBER name:returnsRawGenericIn visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>
g: GET_VAR 'g: @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>? declared in <root>.KRaw.takesRawGenericIn' type=@[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>? origin=null
FUN DELEGATED_MEMBER name:returnsRawGenericIn visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>?
overridden:
public abstract fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number> declared in <root>.JRaw
public abstract fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>? declared in <root>.JRaw
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number> declared in <root>.KRaw'
TYPE_OP type=@[RawType] <root>.GenericIn<kotlin.Number> origin=IMPLICIT_NOTNULL typeOperand=@[RawType] <root>.GenericIn<kotlin.Number>
CALL 'public abstract fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number> declared in <root>.JRaw' type=@[FlexibleNullability] @[RawType] <root>.GenericIn<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.returnsRawGenericIn' type=<root>.KRaw origin=null
FUN DELEGATED_MEMBER name:takesRawGenericOut visibility:public modality:OPEN <> ($this:<root>.KRaw, g:@[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>) returnType:kotlin.Unit
RETURN type=kotlin.Nothing from='public open fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>? declared in <root>.KRaw'
CALL 'public abstract fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] <root>.GenericIn<kotlin.Number>? declared in <root>.JRaw' type=@[FlexibleNullability] @[RawType] <root>.GenericIn<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.returnsRawGenericIn' type=<root>.KRaw origin=null
FUN DELEGATED_MEMBER name:takesRawGenericOut visibility:public modality:OPEN <> ($this:<root>.KRaw, g:@[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>?) returnType:kotlin.Unit
overridden:
public abstract fun takesRawGenericOut (g: @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>): kotlin.Unit declared in <root>.JRaw
public abstract fun takesRawGenericOut (g: @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>?): kotlin.Unit declared in <root>.JRaw
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>
VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>?
BLOCK_BODY
CALL 'public abstract fun takesRawGenericOut (g: @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>): kotlin.Unit declared in <root>.JRaw' type=kotlin.Unit origin=null
CALL 'public abstract fun takesRawGenericOut (g: @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>?): 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.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:returnsRawGenericOut visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>
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:returnsRawGenericOut visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>?
overridden:
public abstract fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number> declared in <root>.JRaw
public abstract fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>? declared in <root>.JRaw
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number> declared in <root>.KRaw'
TYPE_OP type=@[RawType] <root>.GenericOut<kotlin.Number> origin=IMPLICIT_NOTNULL typeOperand=@[RawType] <root>.GenericOut<kotlin.Number>
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
RETURN type=kotlin.Nothing from='public open fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] <root>.GenericOut<kotlin.Number>? declared in <root>.KRaw'
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 FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.JRaw
@@ -25,15 +25,15 @@ class GenericOut<out T : Number> {
}
fun testReturnsRawGenericInv(j: JRaw): @FlexibleNullability @RawType GenericInv<Number> {
fun testReturnsRawGenericInv(j: JRaw): @FlexibleNullability @RawType GenericInv<Number>? {
return j.returnsRawGenericInv()
}
fun testReturnsRawGenericIn(j: JRaw): @FlexibleNullability @RawType GenericIn<Number> {
fun testReturnsRawGenericIn(j: JRaw): @FlexibleNullability @RawType GenericIn<Number>? {
return j.returnsRawGenericIn()
}
fun testReturnsRawGenericOut(j: JRaw): @FlexibleNullability @RawType GenericOut<Number> {
fun testReturnsRawGenericOut(j: JRaw): @FlexibleNullability @RawType GenericOut<Number>? {
return j.returnsRawGenericOut()
}
@@ -45,36 +45,36 @@ class KRaw : JRaw {
}
private /* final field */ val $$delegate_0: JRaw = j
override fun takesRawList(list: @FlexibleNullability @FlexibleMutability @RawType MutableList<Any?>) {
override fun takesRawList(list: @FlexibleNullability @FlexibleMutability @RawType MutableList<Any?>?) {
<this>.#$$delegate_0.takesRawList(list = list)
}
override fun returnsRawList(): @FlexibleNullability @FlexibleMutability @RawType MutableList<Any?> {
return <this>.#$$delegate_0.returnsRawList() /*!! @FlexibleMutability @RawType MutableList<Any?> */
override fun returnsRawList(): @FlexibleNullability @FlexibleMutability @RawType MutableList<Any?>? {
return <this>.#$$delegate_0.returnsRawList()
}
override fun takesRawGenericInv(g: @FlexibleNullability @RawType GenericInv<Number>) {
override fun takesRawGenericInv(g: @FlexibleNullability @RawType GenericInv<Number>?) {
<this>.#$$delegate_0.takesRawGenericInv(g = g)
}
override fun returnsRawGenericInv(): @FlexibleNullability @RawType GenericInv<Number> {
return <this>.#$$delegate_0.returnsRawGenericInv() /*!! @RawType GenericInv<Number> */
override fun returnsRawGenericInv(): @FlexibleNullability @RawType GenericInv<Number>? {
return <this>.#$$delegate_0.returnsRawGenericInv()
}
override fun takesRawGenericIn(g: @FlexibleNullability @RawType GenericIn<Number>) {
override fun takesRawGenericIn(g: @FlexibleNullability @RawType GenericIn<Number>?) {
<this>.#$$delegate_0.takesRawGenericIn(g = g)
}
override fun returnsRawGenericIn(): @FlexibleNullability @RawType GenericIn<Number> {
return <this>.#$$delegate_0.returnsRawGenericIn() /*!! @RawType GenericIn<Number> */
override fun returnsRawGenericIn(): @FlexibleNullability @RawType GenericIn<Number>? {
return <this>.#$$delegate_0.returnsRawGenericIn()
}
override fun takesRawGenericOut(g: @FlexibleNullability @RawType GenericOut<Number>) {
override fun takesRawGenericOut(g: @FlexibleNullability @RawType GenericOut<Number>?) {
<this>.#$$delegate_0.takesRawGenericOut(g = g)
}
override fun returnsRawGenericOut(): @FlexibleNullability @RawType GenericOut<Number> {
return <this>.#$$delegate_0.returnsRawGenericOut() /*!! @RawType GenericOut<Number> */
override fun returnsRawGenericOut(): @FlexibleNullability @RawType GenericOut<Number>? {
return <this>.#$$delegate_0.returnsRawGenericOut()
}
}
@@ -45,69 +45,92 @@ class KRaw : JRaw {
constructor(j: JRaw) /* primary */
// CHECK JVM_IR:
// Mangled name: KRaw#returnsRawGenericIn(){}GenericIn<kotlin.Number>
// Public signature: /KRaw.returnsRawGenericIn|-5257730602735068314[0]
// Public signature debug description: returnsRawGenericIn(){}GenericIn<kotlin.Number>
override fun returnsRawGenericIn(): GenericIn<Number>
// Mangled name: KRaw#returnsRawGenericIn(){}GenericIn<kotlin.Number>?
// Mangled name for the signature by IR: returnsRawGenericIn(){}GenericIn<kotlin.Number>?
// Mangled name for the signature by Frontend: returnsRawGenericIn(){}GenericIn<kotlin.Number>
// Public signature: /KRaw.returnsRawGenericIn|2316913195849838102[0]
// Public signature debug description: returnsRawGenericIn(){}GenericIn<kotlin.Number>?
override fun returnsRawGenericIn(): GenericIn<Number>?
// CHECK JVM_IR:
// Mangled name: KRaw#returnsRawGenericInv(){}GenericInv<kotlin.Number>
// Public signature: /KRaw.returnsRawGenericInv|8692532014882222304[0]
// Public signature debug description: returnsRawGenericInv(){}GenericInv<kotlin.Number>
override fun returnsRawGenericInv(): GenericInv<Number>
// Mangled name: KRaw#returnsRawGenericInv(){}GenericInv<kotlin.Number>?
// Mangled name for the signature by IR: returnsRawGenericInv(){}GenericInv<kotlin.Number>?
// Mangled name for the signature by Frontend: returnsRawGenericInv(){}GenericInv<kotlin.Number>
// Public signature: /KRaw.returnsRawGenericInv|5636795900726870653[0]
// Public signature debug description: returnsRawGenericInv(){}GenericInv<kotlin.Number>?
override fun returnsRawGenericInv(): GenericInv<Number>?
// CHECK JVM_IR:
// Mangled name: KRaw#returnsRawGenericOut(){}GenericOut<kotlin.Number>
// Public signature: /KRaw.returnsRawGenericOut|6207427576909418451[0]
// Public signature debug description: returnsRawGenericOut(){}GenericOut<kotlin.Number>
override fun returnsRawGenericOut(): GenericOut<Number>
// Mangled name: KRaw#returnsRawGenericOut(){}GenericOut<kotlin.Number>?
// Mangled name for the signature by IR: returnsRawGenericOut(){}GenericOut<kotlin.Number>?
// Mangled name for the signature by Frontend: returnsRawGenericOut(){}GenericOut<kotlin.Number>
// Public signature: /KRaw.returnsRawGenericOut|-2900081068433007254[0]
// Public signature debug description: returnsRawGenericOut(){}GenericOut<kotlin.Number>?
override fun returnsRawGenericOut(): GenericOut<Number>?
// CHECK JVM_IR:
// Mangled name: KRaw#returnsRawList(){}kotlin.collections.MutableList<kotlin.Any?>
// Public signature: /KRaw.returnsRawList|1437515324872981008[0]
// Public signature debug description: returnsRawList(){}kotlin.collections.MutableList<kotlin.Any?>
override fun returnsRawList(): MutableList<Any?>
// Mangled name: KRaw#returnsRawList(){}kotlin.collections.MutableList<kotlin.Any?>?
// Mangled name for the signature by IR: returnsRawList(){}kotlin.collections.MutableList<kotlin.Any?>?
// Mangled name for the signature by Frontend: returnsRawList(){}kotlin.collections.MutableList<kotlin.Any?>
// Public signature: /KRaw.returnsRawList|-6457317888193014337[0]
// Public signature debug description: returnsRawList(){}kotlin.collections.MutableList<kotlin.Any?>?
override fun returnsRawList(): MutableList<Any?>?
// CHECK:
// Mangled name: KRaw#takesRawGenericIn(GenericIn<kotlin.Number>){}
// Public signature: /KRaw.takesRawGenericIn|-2236627248339978838[0]
// Public signature debug description: takesRawGenericIn(GenericIn<kotlin.Number>){}
override fun takesRawGenericIn(g: GenericIn<Number>): Unit
// Mangled name: KRaw#takesRawGenericIn(GenericIn<kotlin.Number>?){}
// Mangled name for the signature by IR: takesRawGenericIn(GenericIn<kotlin.Number>?){}
// Mangled name for the signature by Frontend: takesRawGenericIn(GenericIn<kotlin.Number>){}
// Public signature: /KRaw.takesRawGenericIn|7111924639802650374[0]
// Public signature debug description: takesRawGenericIn(GenericIn<kotlin.Number>?){}
override fun takesRawGenericIn(g: GenericIn<Number>?): Unit
// CHECK:
// Mangled name: KRaw#takesRawGenericInv(GenericInv<kotlin.Number>){}
// Public signature: /KRaw.takesRawGenericInv|2853148690189632857[0]
// Public signature debug description: takesRawGenericInv(GenericInv<kotlin.Number>){}
override fun takesRawGenericInv(g: GenericInv<Number>): Unit
// Mangled name: KRaw#takesRawGenericInv(GenericInv<kotlin.Number>?){}
// Mangled name for the signature by IR: takesRawGenericInv(GenericInv<kotlin.Number>?){}
// Mangled name for the signature by Frontend: takesRawGenericInv(GenericInv<kotlin.Number>){}
// Public signature: /KRaw.takesRawGenericInv|-7043210737732405875[0]
// Public signature debug description: takesRawGenericInv(GenericInv<kotlin.Number>?){}
override fun takesRawGenericInv(g: GenericInv<Number>?): Unit
// CHECK:
// Mangled name: KRaw#takesRawGenericOut(GenericOut<kotlin.Number>){}
// Public signature: /KRaw.takesRawGenericOut|-5773421374790089688[0]
// Public signature debug description: takesRawGenericOut(GenericOut<kotlin.Number>){}
override fun takesRawGenericOut(g: GenericOut<Number>): Unit
// Mangled name: KRaw#takesRawGenericOut(GenericOut<kotlin.Number>?){}
// Mangled name for the signature by IR: takesRawGenericOut(GenericOut<kotlin.Number>?){}
// Mangled name for the signature by Frontend: takesRawGenericOut(GenericOut<kotlin.Number>){}
// Public signature: /KRaw.takesRawGenericOut|-6937861296436003286[0]
// Public signature debug description: takesRawGenericOut(GenericOut<kotlin.Number>?){}
override fun takesRawGenericOut(g: GenericOut<Number>?): Unit
// CHECK:
// Mangled name: KRaw#takesRawList(kotlin.collections.MutableList<kotlin.Any?>){}
// Public signature: /KRaw.takesRawList|1781281561350478530[0]
// Public signature debug description: takesRawList(kotlin.collections.MutableList<kotlin.Any?>){}
override fun takesRawList(list: MutableList<Any?>): Unit
// Mangled name: KRaw#takesRawList(kotlin.collections.MutableList<kotlin.Any?>?){}
// Mangled name for the signature by IR: takesRawList(kotlin.collections.MutableList<kotlin.Any?>?){}
// Mangled name for the signature by Frontend: takesRawList(kotlin.collections.MutableList<kotlin.Any?>){}
// Public signature: /KRaw.takesRawList|-1231162314770327388[0]
// Public signature debug description: takesRawList(kotlin.collections.MutableList<kotlin.Any?>?){}
override fun takesRawList(list: MutableList<Any?>?): Unit
}
// CHECK JVM_IR:
// Mangled name: #testReturnsRawGenericIn(JRaw){}GenericIn<kotlin.Number>
// Public signature: /testReturnsRawGenericIn|8366804840057905100[0]
// Public signature debug description: testReturnsRawGenericIn(JRaw){}GenericIn<kotlin.Number>
fun testReturnsRawGenericIn(j: JRaw): GenericIn<Number>
// Mangled name: #testReturnsRawGenericIn(JRaw){}GenericIn<kotlin.Number>?
// Mangled name for the signature by IR: testReturnsRawGenericIn(JRaw){}GenericIn<kotlin.Number>?
// Mangled name for the signature by Frontend: testReturnsRawGenericIn(JRaw){}GenericIn<kotlin.Number>
// Public signature: /testReturnsRawGenericIn|-306193371031556622[0]
// Public signature debug description: testReturnsRawGenericIn(JRaw){}GenericIn<kotlin.Number>?
fun testReturnsRawGenericIn(j: JRaw): GenericIn<Number>?
// CHECK JVM_IR:
// Mangled name: #testReturnsRawGenericInv(JRaw){}GenericInv<kotlin.Number>
// Public signature: /testReturnsRawGenericInv|5130359618608443436[0]
// Public signature debug description: testReturnsRawGenericInv(JRaw){}GenericInv<kotlin.Number>
fun testReturnsRawGenericInv(j: JRaw): GenericInv<Number>
// Mangled name: #testReturnsRawGenericInv(JRaw){}GenericInv<kotlin.Number>?
// Mangled name for the signature by IR: testReturnsRawGenericInv(JRaw){}GenericInv<kotlin.Number>?
// Mangled name for the signature by Frontend: testReturnsRawGenericInv(JRaw){}GenericInv<kotlin.Number>
// Public signature: /testReturnsRawGenericInv|6592680998914081032[0]
// Public signature debug description: testReturnsRawGenericInv(JRaw){}GenericInv<kotlin.Number>?
fun testReturnsRawGenericInv(j: JRaw): GenericInv<Number>?
// CHECK JVM_IR:
// Mangled name: #testReturnsRawGenericOut(JRaw){}GenericOut<kotlin.Number>
// Public signature: /testReturnsRawGenericOut|-62256167970682834[0]
// Public signature debug description: testReturnsRawGenericOut(JRaw){}GenericOut<kotlin.Number>
fun testReturnsRawGenericOut(j: JRaw): GenericOut<Number>
// Mangled name: #testReturnsRawGenericOut(JRaw){}GenericOut<kotlin.Number>?
// Mangled name for the signature by IR: testReturnsRawGenericOut(JRaw){}GenericOut<kotlin.Number>?
// Mangled name for the signature by Frontend: testReturnsRawGenericOut(JRaw){}GenericOut<kotlin.Number>
// Public signature: /testReturnsRawGenericOut|6146268409340591089[0]
// Public signature debug description: testReturnsRawGenericOut(JRaw){}GenericOut<kotlin.Number>?
fun testReturnsRawGenericOut(j: JRaw): GenericOut<Number>?
@@ -2677,6 +2677,22 @@ public class ClassicJvmIrTextTestGenerated extends AbstractClassicJvmIrTextTest
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/fakeOverrides")
@TestDataPath("$PROJECT_ROOT")
public class FakeOverrides {
@Test
public void testAllFilesPresentInFakeOverrides() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("fakeOverrideOfRaw.kt")
public void testFakeOverrideOfRaw() throws Exception {
runTest("compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt");
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/firProblems")
@TestDataPath("$PROJECT_ROOT")
@@ -11,13 +11,10 @@ import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlin.test.backend.BlackBoxCodegenSuppressor
import org.jetbrains.kotlin.test.backend.handlers.*
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.builders.classicFrontendHandlersStep
import org.jetbrains.kotlin.test.builders.firHandlersStep
import org.jetbrains.kotlin.test.builders.irHandlersStep
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.DUMP_IR
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.DUMP_KT_IR
import org.jetbrains.kotlin.test.FirParser
import org.jetbrains.kotlin.test.builders.*
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.DUMP_SIGNATURES
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.DIAGNOSTICS
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.REPORT_ONLY_EXPLICITLY_DEFINED_DEBUG_INFO
@@ -26,6 +23,8 @@ import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.LINK_VIA_
import org.jetbrains.kotlin.test.directives.configureFirParser
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDumpHandler
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirScopeDumpHandler
import org.jetbrains.kotlin.test.model.*
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest
import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider
@@ -103,6 +102,14 @@ abstract class AbstractIrTextTest<FrontendOutput : ResultingArtifact.FrontendOut
protected fun TestConfigurationBuilder.commonConfigurationForK2(parser: FirParser) {
configureFirParser(parser)
configureFirHandlersStep {
useHandlersAtFirst(
::FirDumpHandler,
::FirScopeDumpHandler,
)
}
useAfterAnalysisCheckers(
::FirIrDumpIdenticalChecker,
)
@@ -2082,6 +2082,19 @@ public class KlibIrTextTestCaseGenerated extends AbstractKlibIrTextTestCase {
}
}
@TestMetadata("compiler/testData/ir/irText/fakeOverrides")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class FakeOverrides extends AbstractKlibIrTextTestCase {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTestWithCustomIgnoreDirective(this::doTest, TargetBackend.JS_IR, testDataFilePath, "// IGNORE_BACKEND_KLIB: ");
}
public void testAllFilesPresentInFakeOverrides() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true);
}
}
@TestMetadata("compiler/testData/ir/irText/firProblems")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@@ -2341,6 +2341,16 @@ public class FirLightTreeJsIrTextTestGenerated extends AbstractFirLightTreeJsIrT
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/fakeOverrides")
@TestDataPath("$PROJECT_ROOT")
public class FakeOverrides {
@Test
public void testAllFilesPresentInFakeOverrides() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true);
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/firProblems")
@TestDataPath("$PROJECT_ROOT")
@@ -2341,6 +2341,16 @@ public class FirPsiJsIrTextTestGenerated extends AbstractFirPsiJsIrTextTest {
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/fakeOverrides")
@TestDataPath("$PROJECT_ROOT")
public class FakeOverrides {
@Test
public void testAllFilesPresentInFakeOverrides() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true);
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/firProblems")
@TestDataPath("$PROJECT_ROOT")
@@ -2341,6 +2341,16 @@ public class ClassicJsIrTextTestGenerated extends AbstractClassicJsIrTextTest {
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/fakeOverrides")
@TestDataPath("$PROJECT_ROOT")
public class FakeOverrides {
@Test
public void testAllFilesPresentInFakeOverrides() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true);
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/firProblems")
@TestDataPath("$PROJECT_ROOT")
@@ -2347,6 +2347,16 @@ public class ClassicNativeIrTextTestGenerated extends AbstractClassicNativeIrTex
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/fakeOverrides")
@TestDataPath("$PROJECT_ROOT")
public class FakeOverrides {
@Test
public void testAllFilesPresentInFakeOverrides() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/firProblems")
@TestDataPath("$PROJECT_ROOT")
@@ -2347,6 +2347,16 @@ public class FirLightTreeNativeIrTextTestGenerated extends AbstractFirLightTreeN
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/fakeOverrides")
@TestDataPath("$PROJECT_ROOT")
public class FakeOverrides {
@Test
public void testAllFilesPresentInFakeOverrides() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/firProblems")
@TestDataPath("$PROJECT_ROOT")
@@ -2347,6 +2347,16 @@ public class FirPsiNativeIrTextTestGenerated extends AbstractFirPsiNativeIrTextT
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/fakeOverrides")
@TestDataPath("$PROJECT_ROOT")
public class FakeOverrides {
@Test
public void testAllFilesPresentInFakeOverrides() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
}
}
@Nested
@TestMetadata("compiler/testData/ir/irText/firProblems")
@TestDataPath("$PROJECT_ROOT")