From 920b0bfe63f55af80d032f800ffdc68dd46357c8 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 17 Oct 2023 15:25:16 +0200 Subject: [PATCH] FIR2IR: use SYNTHETIC_OFFSET for data class generated members --- .../kotlin/fir/backend/ConversionUtils.kt | 2 +- .../synthesizedDataClassMembers.fir.txt | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt index 44b7d0c446a..fcfa50b7fb5 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt @@ -84,7 +84,7 @@ internal inline fun KtSourceElement?.convertWithOffsets(f: (star val startOffset: Int val endOffset: Int - if (isCompiledElement(psi)) { + if (isCompiledElement(psi) || this?.kind == KtFakeSourceElementKind.DataClassGeneratedMembers) { startOffset = UNDEFINED_OFFSET endOffset = UNDEFINED_OFFSET } else { diff --git a/compiler/testData/ir/sourceRanges/declarations/synthesizedDataClassMembers.fir.txt b/compiler/testData/ir/sourceRanges/declarations/synthesizedDataClassMembers.fir.txt index 96b09ea38cc..3c4b8150562 100644 --- a/compiler/testData/ir/sourceRanges/declarations/synthesizedDataClassMembers.fir.txt +++ b/compiler/testData/ir/sourceRanges/declarations/synthesizedDataClassMembers.fir.txt @@ -37,35 +37,35 @@ @3:8..18 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Any declared in .C' @3:8..18 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null @3:8..18 GET_VAR ': .C declared in .C.' type=.C origin=null - @1:8..18 FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:.C) returnType:kotlin.Int [operator] - @1:8..18 VALUE_PARAMETER name: type:.C + @-1:-1..-1 FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:.C) returnType:kotlin.Int [operator] + @-1:-1..-1 VALUE_PARAMETER name: type:.C @-1:-1..-1 BLOCK_BODY @-1:-1..-1 RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Int [operator] declared in .C' @-1:-1..-1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null @-1:-1..-1 GET_VAR ': .C declared in .C.component1' type=.C origin=null - @2:8..21 FUN GENERATED_DATA_CLASS_MEMBER name:component2 visibility:public modality:FINAL <> ($this:.C) returnType:kotlin.String [operator] - @2:8..21 VALUE_PARAMETER name: type:.C + @-1:-1..-1 FUN GENERATED_DATA_CLASS_MEMBER name:component2 visibility:public modality:FINAL <> ($this:.C) returnType:kotlin.String [operator] + @-1:-1..-1 VALUE_PARAMETER name: type:.C @-1:-1..-1 BLOCK_BODY @-1:-1..-1 RETURN type=kotlin.Nothing from='public final fun component2 (): kotlin.String [operator] declared in .C' @-1:-1..-1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null @-1:-1..-1 GET_VAR ': .C declared in .C.component2' type=.C origin=null - @3:8..18 FUN GENERATED_DATA_CLASS_MEMBER name:component3 visibility:public modality:FINAL <> ($this:.C) returnType:kotlin.Any [operator] - @3:8..18 VALUE_PARAMETER name: type:.C + @-1:-1..-1 FUN GENERATED_DATA_CLASS_MEMBER name:component3 visibility:public modality:FINAL <> ($this:.C) returnType:kotlin.Any [operator] + @-1:-1..-1 VALUE_PARAMETER name: type:.C @-1:-1..-1 BLOCK_BODY @-1:-1..-1 RETURN type=kotlin.Nothing from='public final fun component3 (): kotlin.Any [operator] declared in .C' @-1:-1..-1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null @-1:-1..-1 GET_VAR ': .C declared in .C.component3' type=.C origin=null - @0:0..4:1 FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.C, x:kotlin.Int, y:kotlin.String, z:kotlin.Any) returnType:.C - @0:0..4:1 VALUE_PARAMETER name: type:.C - @1:8..18 VALUE_PARAMETER name:x index:0 type:kotlin.Int + @-1:-1..-1 FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.C, x:kotlin.Int, y:kotlin.String, z:kotlin.Any) returnType:.C + @-1:-1..-1 VALUE_PARAMETER name: type:.C + @-1:-1..-1 VALUE_PARAMETER name:x index:0 type:kotlin.Int @-1:-1..-1 EXPRESSION_BODY @-1:-1..-1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null @-1:-1..-1 GET_VAR ': .C declared in .C.copy' type=.C origin=null - @2:8..21 VALUE_PARAMETER name:y index:1 type:kotlin.String + @-1:-1..-1 VALUE_PARAMETER name:y index:1 type:kotlin.String @-1:-1..-1 EXPRESSION_BODY @-1:-1..-1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null @-1:-1..-1 GET_VAR ': .C declared in .C.copy' type=.C origin=null - @3:8..18 VALUE_PARAMETER name:z index:2 type:kotlin.Any + @-1:-1..-1 VALUE_PARAMETER name:z index:2 type:kotlin.Any @-1:-1..-1 EXPRESSION_BODY @-1:-1..-1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null @-1:-1..-1 GET_VAR ': .C declared in .C.copy' type=.C origin=null