[FIR2IR] Remove non-existent accessors from property references on Java fields
Rename `MissingFieldInJavaClass` to `FieldsFromJavaClass` to correspond its content ^KT-65722 Fixed Merge-request: KT-MR-14837
This commit is contained in:
committed by
Space Team
parent
2d4f4b9bb5
commit
ea44d4defd
@@ -9,7 +9,7 @@ FILE fqName:<root> fileName:/protectedJavaFieldRef.kt
|
||||
PROPERTY name:ref visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:ref type:kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.String?> visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
PROPERTY_REFERENCE 'protected/*protected and package*/ open j: @[FlexibleNullability] kotlin.String?' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j type:@[FlexibleNullability] kotlin.String? visibility:protected/*protected and package*/' getter='protected/*protected and package*/ open fun <get-j> (): @[FlexibleNullability] kotlin.String? declared in p.Base' setter='protected/*protected and package*/ open fun <set-j> (<set-?>: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in p.Base' type=kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.String?> origin=null
|
||||
PROPERTY_REFERENCE 'protected/*protected and package*/ open j: @[FlexibleNullability] kotlin.String?' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:j type:@[FlexibleNullability] kotlin.String? visibility:protected/*protected and package*/' getter=null setter=null type=kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.String?> origin=null
|
||||
$this: GET_VAR '<this>: <root>.Derived declared in <root>.Derived' type=<root>.Derived origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-ref> visibility:public modality:FINAL <> ($this:<root>.Derived) returnType:kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.String?>
|
||||
correspondingProperty: PROPERTY name:ref visibility:public modality:FINAL [val]
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J modality:OPEN visibility:public/*package*/ superTypes:[kotlin.Any]
|
||||
CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J modality:OPEN visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
|
||||
CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public/*package*/ <> () returnType:<root>.J [primary]
|
||||
CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public <> () returnType:<root>.J [primary]
|
||||
FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:kotlin.Int visibility:public
|
||||
FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f2 type:kotlin.Int visibility:public
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J modality:OPEN visibility:public/*package*/ superTypes:[kotlin.Any]
|
||||
CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J modality:OPEN visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER IR_EXTERNAL_JAVA_DECLARATION_STUB name:<this> type:<root>.J
|
||||
CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public/*package*/ <> () returnType:<root>.J [primary]
|
||||
CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public <> () returnType:<root>.J [primary]
|
||||
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
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J1 modality:OPEN visibility:public/*package*/ superTypes:[kotlin.Any]
|
||||
CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J1 modality:OPEN visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J1<T of <root>.J1>
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
|
||||
CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public/*package*/ <> () returnType:<root>.J1<T of <root>.J1> [primary]
|
||||
CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public <> () returnType:<root>.J1<T of <root>.J1> [primary]
|
||||
FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:@[FlexibleNullability] T of <root>.J1? visibility:public
|
||||
FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f2 type:@[FlexibleNullability] T of <root>.J1? visibility:public
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J1 modality:OPEN visibility:public/*package*/ superTypes:[kotlin.Any]
|
||||
CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J1 modality:OPEN visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER IR_EXTERNAL_JAVA_DECLARATION_STUB name:<this> type:<root>.J1<T of <root>.J1>
|
||||
TYPE_PARAMETER IR_EXTERNAL_DECLARATION_STUB name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
|
||||
CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public/*package*/ <> () returnType:<root>.J1<T of <root>.J1> [primary]
|
||||
CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public <> () returnType:<root>.J1<T of <root>.J1> [primary]
|
||||
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
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:X modality:OPEN visibility:public/*package*/ superTypes:[<root>.J]
|
||||
CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:X modality:OPEN visibility:public superTypes:[<root>.J]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.X
|
||||
CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public/*package*/ <> () returnType:<root>.X [primary]
|
||||
CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public <> () returnType:<root>.X [primary]
|
||||
FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f2 type:kotlin.Int visibility:public
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:X modality:OPEN visibility:public/*package*/ superTypes:[<root>.J]
|
||||
CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:X modality:OPEN visibility:public superTypes:[<root>.J]
|
||||
$this: VALUE_PARAMETER IR_EXTERNAL_JAVA_DECLARATION_STUB name:<this> type:<root>.X
|
||||
CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public/*package*/ <> () returnType:<root>.X [primary]
|
||||
CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public <> () returnType:<root>.X [primary]
|
||||
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
|
||||
@@ -0,0 +1,24 @@
|
||||
FILE fqName:<root> fileName:/Main.kt
|
||||
FUN name:f visibility:public modality:FINAL <> (j:<root>.J, x:<root>.X, j1:<root>.J1<kotlin.String>) returnType:kotlin.Unit
|
||||
VALUE_PARAMETER name:j index:0 type:<root>.J
|
||||
VALUE_PARAMETER name:x index:1 type:<root>.X
|
||||
VALUE_PARAMETER name:j1 index:2 type:<root>.J1<kotlin.String>
|
||||
BLOCK_BODY
|
||||
VAR name:jf type:kotlin.reflect.KMutableProperty0<kotlin.Int> [val]
|
||||
PROPERTY_REFERENCE 'public open f: kotlin.Int' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:kotlin.Int visibility:public' getter=null setter=null type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
|
||||
$this: GET_VAR 'j: <root>.J declared in <root>.f' type=<root>.J origin=null
|
||||
VAR name:js type:kotlin.reflect.KMutableProperty0<kotlin.Int> [val]
|
||||
PROPERTY_REFERENCE 'public open s: kotlin.Int' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s type:kotlin.Int visibility:public [static]' getter=null setter=null type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
|
||||
VAR name:xf type:kotlin.reflect.KMutableProperty0<kotlin.Int> [val]
|
||||
PROPERTY_REFERENCE 'public open f: kotlin.Int' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:kotlin.Int visibility:public' getter=null setter=null type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
|
||||
$this: GET_VAR 'x: <root>.X declared in <root>.f' type=<root>.X origin=null
|
||||
VAR name:xs type:kotlin.reflect.KMutableProperty0<kotlin.Int> [val]
|
||||
PROPERTY_REFERENCE 'public open s: kotlin.Int' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s type:kotlin.Int visibility:public [static]' getter=null setter=null type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
|
||||
VAR name:xf2 type:kotlin.reflect.KMutableProperty0<kotlin.Int> [val]
|
||||
PROPERTY_REFERENCE 'public open f2: kotlin.Int' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f2 type:kotlin.Int visibility:public' getter=null setter=null type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
|
||||
$this: GET_VAR 'x: <root>.X declared in <root>.f' type=<root>.X origin=null
|
||||
VAR name:xs2 type:kotlin.reflect.KMutableProperty0<kotlin.Int> [val]
|
||||
PROPERTY_REFERENCE 'public open s2: kotlin.Int' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s2 type:kotlin.Int visibility:public [static]' getter=null setter=null type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
|
||||
VAR name:j1f type:kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.String?> [val]
|
||||
PROPERTY_REFERENCE 'public open f: @[FlexibleNullability] T of <root>.J1?' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:@[FlexibleNullability] T of <root>.J1? visibility:public' getter=null setter=null type=kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.String?> origin=null
|
||||
$this: GET_VAR 'j1: <root>.J1<kotlin.String> declared in <root>.f' type=<root>.J1<kotlin.String> origin=null
|
||||
@@ -0,0 +1,10 @@
|
||||
fun f(j: J, x: X, j1: J1<String>) {
|
||||
val jf: KMutableProperty0<Int> = j::f
|
||||
val js: KMutableProperty0<Int> = J::s
|
||||
val xf: KMutableProperty0<Int> = x::f
|
||||
val xs: KMutableProperty0<Int> = X::s
|
||||
val xf2: KMutableProperty0<Int> = x::f2
|
||||
val xs2: KMutableProperty0<Int> = X::s2
|
||||
val j1f: KMutableProperty0<@FlexibleNullability String?> = j1::f
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
FILE fqName:<root> fileName:/Main.kt
|
||||
FUN name:f visibility:public modality:FINAL <> (j:<root>.J, x:<root>.X, j1:<root>.J1<kotlin.String>) returnType:kotlin.Unit
|
||||
VALUE_PARAMETER name:j index:0 type:<root>.J
|
||||
VALUE_PARAMETER name:x index:1 type:<root>.X
|
||||
VALUE_PARAMETER name:j1 index:2 type:<root>.J1<kotlin.String>
|
||||
BLOCK_BODY
|
||||
VAR name:jf type:kotlin.reflect.KMutableProperty0<kotlin.Int> [val]
|
||||
PROPERTY_REFERENCE 'public final f: kotlin.Int' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:kotlin.Int visibility:public' getter=null setter=null type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
|
||||
$this: GET_VAR 'j: <root>.J declared in <root>.f' type=<root>.J origin=null
|
||||
VAR name:js type:kotlin.reflect.KMutableProperty0<kotlin.Int> [val]
|
||||
PROPERTY_REFERENCE 'public final s: kotlin.Int' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s type:kotlin.Int visibility:public [static]' getter=null setter=null type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
|
||||
VAR name:xf type:kotlin.reflect.KMutableProperty0<kotlin.Int> [val]
|
||||
PROPERTY_REFERENCE 'public final f: kotlin.Int' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:kotlin.Int visibility:public' getter=null setter=null type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
|
||||
$this: GET_VAR 'x: <root>.X declared in <root>.f' type=<root>.X origin=null
|
||||
VAR name:xs type:kotlin.reflect.KMutableProperty0<kotlin.Int> [val]
|
||||
PROPERTY_REFERENCE 'public final s: kotlin.Int' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s type:kotlin.Int visibility:public [static]' getter=null setter=null type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
|
||||
VAR name:xf2 type:kotlin.reflect.KMutableProperty0<kotlin.Int> [val]
|
||||
PROPERTY_REFERENCE 'public final f2: kotlin.Int' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f2 type:kotlin.Int visibility:public' getter=null setter=null type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
|
||||
$this: GET_VAR 'x: <root>.X declared in <root>.f' type=<root>.X origin=null
|
||||
VAR name:xs2 type:kotlin.reflect.KMutableProperty0<kotlin.Int> [val]
|
||||
PROPERTY_REFERENCE 'public final s2: kotlin.Int' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s2 type:kotlin.Int visibility:public [static]' getter=null setter=null type=kotlin.reflect.KMutableProperty0<kotlin.Int> origin=null
|
||||
VAR name:j1f type:kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.String?> [val]
|
||||
PROPERTY_REFERENCE 'public final f: @[FlexibleNullability] T of <root>.J1?' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:@[FlexibleNullability] T of <root>.J1? visibility:public' getter=null setter=null type=kotlin.reflect.KMutableProperty0<@[FlexibleNullability] kotlin.String?> origin=null
|
||||
$this: GET_VAR 'j1: <root>.J1<kotlin.String> declared in <root>.f' type=<root>.J1<kotlin.String> origin=null
|
||||
+17
-5
@@ -1,14 +1,14 @@
|
||||
// FIR_IDENTICAL
|
||||
// TARGET_BACKEND: JVM
|
||||
// ISSUE: KT-61362
|
||||
// ISSUE: KT-61362, KT-65722
|
||||
// DUMP_EXTERNAL_CLASS: J
|
||||
// DUMP_EXTERNAL_CLASS: X
|
||||
// DUMP_EXTERNAL_CLASS: J1
|
||||
// DUMP_EXTERNAL_CLASS: X1
|
||||
// DUMP_IR
|
||||
|
||||
// FILE: J.java
|
||||
|
||||
class J {
|
||||
public class J {
|
||||
public int f = 0;
|
||||
public static int s = 0;
|
||||
|
||||
@@ -18,14 +18,14 @@ class J {
|
||||
|
||||
// FILE: X.java
|
||||
|
||||
class X extends J {
|
||||
public class X extends J {
|
||||
public int f2 = 1;
|
||||
public static int s2 = 1;
|
||||
}
|
||||
|
||||
// FILE: J1.java
|
||||
|
||||
class J1<T> {
|
||||
public class J1<T> {
|
||||
public T f = null;
|
||||
public static T s = null;
|
||||
|
||||
@@ -38,4 +38,16 @@ class J1<T> {
|
||||
class X1<T> extends J1<String> {
|
||||
public String f2 = "s1";
|
||||
public static String s2 = "s2";
|
||||
}
|
||||
|
||||
// FILE: Main.kt
|
||||
|
||||
fun f(j: J, x: X, j1: J1<String>) {
|
||||
val jf = j::f
|
||||
val js = J::s
|
||||
val xf = x::f
|
||||
val xs = X::s
|
||||
val xf2 = x::f2
|
||||
val xs2 = X::s2
|
||||
val j1f = j1::f
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
fun f(j: J, x: X, j1: J1<String>) {
|
||||
val jf: KMutableProperty0<Int> = j::f
|
||||
val js: KMutableProperty0<Int> = J::s
|
||||
val xf: KMutableProperty0<Int> = x::f
|
||||
val xs: KMutableProperty0<Int> = X::s
|
||||
val xf2: KMutableProperty0<Int> = x::f2
|
||||
val xs2: KMutableProperty0<Int> = X::s2
|
||||
val j1f: KMutableProperty0<@FlexibleNullability String?> = j1::f
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
// CHECK:
|
||||
// Mangled name: #f(J;X;J1<kotlin.String>){}
|
||||
// Public signature: /f|-2688577840123949128[0]
|
||||
// Public signature debug description: f(J;X;J1<kotlin.String>){}
|
||||
fun f(j: J, x: X, j1: J1<String>): Unit
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
Reference in New Issue
Block a user