Raw FIR/LT: use similar sources for delegated constructor calls

After this commit all IR source range tests behave in the same way
for FIR/PSI and FIR/LT, test data is now consistent
This commit is contained in:
Mikhail Glukhikh
2023-10-02 11:16:25 +02:00
committed by Space Team
parent 4ed6ece78b
commit 9d3bf69212
10 changed files with 25 additions and 33 deletions
@@ -920,7 +920,9 @@ class LightTreeRawFirDeclarationBuilder(
arguments: List<FirExpression>,
): FirDelegatedConstructorCall {
return buildDelegatedConstructorCall {
source = delegatedConstructorSource ?: selfTypeSource?.fakeElement(KtFakeSourceElementKind.DelegatingConstructorCall)
source = delegatedConstructorSource
?: primaryConstructor?.toFirSourceElement(KtFakeSourceElementKind.DelegatingConstructorCall)
?: selfTypeSource?.fakeElement(KtFakeSourceElementKind.DelegatingConstructorCall)
constructedTypeRef = delegatedSuperTypeRef.copyWithNewSourceKind(KtFakeSourceElementKind.ImplicitTypeRef)
isThis = false
calleeReference = buildExplicitSuperReference {
@@ -1,13 +1,12 @@
// COMPARE_WITH_LIGHT_TREE
// ISSUE: KT-40851
fun error(): Nothing = throw Exception()
<!UNREACHABLE_CODE{LT}!>class Some<!UNREACHABLE_CODE{PSI}!>()<!> {
class Some<!UNREACHABLE_CODE!>()<!> {
var x: Int
val y: Int =<!> error()
val y: Int = error()
<!UNREACHABLE_CODE{LT}!>init {
init {
<!UNREACHABLE_CODE!>x = 1<!>;
}
}<!>
}
@@ -1,4 +1,3 @@
// COMPARE_WITH_LIGHT_TREE
// ISSUE: KT-40851
fun error(): Nothing = throw Exception()
+1 -1
View File
@@ -9,7 +9,7 @@
@1:38..63 CONSTRUCTOR visibility:public <> (description:kotlin.String) returnType:<root>.MyAnnotation [primary]
@1:39..62 VALUE_PARAMETER name:description index:0 type:kotlin.String
@1:38..63 BLOCK_BODY
@0:0..1:63 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@1:38..63 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@1:38..63 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ANNOTATION_CLASS name:MyAnnotation modality:OPEN visibility:internal superTypes:[kotlin.Annotation]'
@1:39..62 PROPERTY name:description visibility:public modality:FINAL [val]
@1:39..62 FIELD PROPERTY_BACKING_FIELD name:description type:kotlin.String visibility:private [final]
+1 -1
View File
@@ -9,7 +9,7 @@
@8:52..79 VALUE_PARAMETER name:<this> type:<root>.Foo
@8:72..78 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@8:52..79 BLOCK_BODY
@8:4..10:36 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@8:52..79 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@8:52..79 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Inner modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]'
@-1:-1..-1 FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
@-1:-1..-1 VALUE_PARAMETER name:<this> type:kotlin.Any
@@ -3,7 +3,7 @@
@0:20..2:1 CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.Test1 [primary]
@1:4..14 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@0:20..2:1 BLOCK_BODY
@0:0..3:1 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@0:20..2:1 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@0:20..2:1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test1 modality:ABSTRACT visibility:public superTypes:[kotlin.Any]'
@1:4..14 PROPERTY name:x visibility:public modality:FINAL [val]
@1:4..14 FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]
@@ -27,7 +27,7 @@
@7:11..9:1 CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.Test2 [primary]
@8:4..14 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@7:11..9:1 BLOCK_BODY
@5:0..14:1 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@7:11..9:1 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@7:11..9:1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test2 modality:ABSTRACT visibility:public superTypes:[kotlin.Any]'
@8:4..14 PROPERTY name:x visibility:public modality:FINAL [val]
@8:4..14 FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]
@@ -44,7 +44,7 @@
@11:19..13:5 VALUE_PARAMETER name:<this> type:<root>.Test2
@12:8..18 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@11:19..13:5 BLOCK_BODY
@10:4..13:5 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@11:19..13:5 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@11:19..13:5 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:TestInner modality:FINAL visibility:public [inner] superTypes:[kotlin.Any]'
@12:8..18 PROPERTY name:x visibility:public modality:FINAL [val]
@12:8..18 FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]
@@ -3,7 +3,7 @@
@0:11..23 CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.Test1 [primary]
@0:12..22 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@0:11..23 BLOCK_BODY
@0:0..23 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@0:11..23 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@0:11..23 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test1 modality:FINAL visibility:public superTypes:[kotlin.Any]'
@0:12..22 PROPERTY name:x visibility:public modality:FINAL [val]
@0:12..22 FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]
@@ -27,7 +27,7 @@
@3:0..32 CONSTRUCTOR visibility:internal <> (x:kotlin.Int) returnType:<root>.Test2 [primary]
@3:21..31 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@3:0..32 BLOCK_BODY
@2:0..3:32 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@3:0..32 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@3:0..32 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test2 modality:FINAL visibility:public superTypes:[kotlin.Any]'
@3:21..31 PROPERTY name:x visibility:public modality:FINAL [val]
@3:21..31 FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]
@@ -51,7 +51,7 @@
@9:0..23 CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.Test3 [primary]
@9:12..22 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@9:0..23 BLOCK_BODY
@5:0..9:23 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@9:0..23 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@9:0..23 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test3 modality:FINAL visibility:public superTypes:[kotlin.Any]'
@9:12..22 PROPERTY name:x visibility:public modality:FINAL [val]
@9:12..22 FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]
@@ -79,7 +79,7 @@
@12:10..27 CONST String type=kotlin.String value="UNUSED_VARIABLE"
@13:12..22 VALUE_PARAMETER name:x index:0 type:kotlin.Int
@12:0..13:23 BLOCK_BODY
@11:0..13:23 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@12:0..13:23 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@12:0..13:23 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test4 modality:FINAL visibility:public superTypes:[kotlin.Any]'
@13:12..22 PROPERTY name:x visibility:public modality:FINAL [val]
@13:12..22 FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]
@@ -5,7 +5,7 @@
@2:8..21 VALUE_PARAMETER name:y index:1 type:kotlin.String
@3:8..18 VALUE_PARAMETER name:z index:2 type:kotlin.Any
@0:12..4:1 BLOCK_BODY
@0:0..4:1 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@0:12..4:1 DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
@0:12..4:1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public [data] superTypes:[kotlin.Any]'
@1:8..18 PROPERTY name:x visibility:public modality:FINAL [val]
@1:8..18 FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]
@@ -253,16 +253,14 @@ public final class ListOfUsers : java/lang/Object {
LDC (list)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (12)
LINENUMBER (13)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
LABEL (L2)
LINENUMBER (13)
ALOAD (0)
ALOAD (1)
PUTFIELD (ListOfUsers, list, Ljava/util/List;)
RETURN
LABEL (L3)
LABEL (L2)
}
public void <init>(int seen0, java.util.List list, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
@@ -542,16 +540,14 @@ public final class OptionalUser : java/lang/Object {
LDC (user)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (9)
LINENUMBER (10)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
LABEL (L2)
LINENUMBER (10)
ALOAD (0)
ALOAD (1)
PUTFIELD (OptionalUser, user, LUser;)
RETURN
LABEL (L3)
LABEL (L2)
}
public void <init>(User p0, int p1, kotlin.jvm.internal.DefaultConstructorMarker p2) {
@@ -930,11 +926,9 @@ public final class User : java/lang/Object {
LDC (lastName)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (6)
LINENUMBER (7)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
LABEL (L2)
LINENUMBER (7)
ALOAD (0)
ALOAD (1)
PUTFIELD (User, firstName, Ljava/lang/String;)
@@ -942,7 +936,7 @@ public final class User : java/lang/Object {
ALOAD (2)
PUTFIELD (User, lastName, Ljava/lang/String;)
RETURN
LABEL (L3)
LABEL (L2)
}
public void <init>(int seen0, java.lang.String firstName, java.lang.String lastName, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {
@@ -219,16 +219,14 @@ public final class Container : java/lang/Object {
LDC (r)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V)
LABEL (L1)
LINENUMBER (18)
LINENUMBER (19)
ALOAD (0)
INVOKESPECIAL (java/lang/Object, <init>, ()V)
LABEL (L2)
LINENUMBER (19)
ALOAD (0)
ALOAD (1)
PUTFIELD (Container, r, LResult;)
RETURN
LABEL (L3)
LABEL (L2)
}
public void <init>(int seen0, Result r, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker) {