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 469669e4460..4768ab438ce 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 @@ -75,6 +75,12 @@ internal inline fun FirElement.convertWithOffsets(f: (startOffse return source.convertWithOffsets(f) } +internal inline fun FirPropertyAccessor?.convertWithOffsets( + defaultStartOffset: Int, defaultEndOffset: Int, f: (startOffset: Int, endOffset: Int) -> T +): T { + return if (this == null) return f(defaultStartOffset, defaultEndOffset) else source.convertWithOffsets(f) +} + internal inline fun KtSourceElement?.convertWithOffsets(f: (startOffset: Int, endOffset: Int) -> T): T { val startOffset: Int val endOffset: Int diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/Fir2IrCallableDeclarationsGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/Fir2IrCallableDeclarationsGenerator.kt index 4595e0977fe..493d58395b1 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/Fir2IrCallableDeclarationsGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/Fir2IrCallableDeclarationsGenerator.kt @@ -359,36 +359,40 @@ class Fir2IrCallableDeclarationsGenerator(val components: Fir2IrComponents) : Fi if (irParent != null) { backingField?.parent = irParent } - this.getter = createIrPropertyAccessor( - getter, property, this, type, irParent, false, - when { - origin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB -> origin - origin == IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER -> origin - delegate != null -> IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR - origin == IrDeclarationOrigin.FAKE_OVERRIDE -> origin - origin == IrDeclarationOrigin.DELEGATED_MEMBER -> origin - getter == null || getter is FirDefaultPropertyGetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR - else -> origin - }, - startOffset, endOffset, - dontUseSignature = signature == null, fakeOverrideOwnerLookupTag, - property.unwrapFakeOverrides().getter, - ) - if (property.isVar) { - this.setter = createIrPropertyAccessor( - setter, property, this, type, irParent, true, + this.getter = getter.convertWithOffsets(startOffset, endOffset) { startOffset, endOffset -> + createIrPropertyAccessor( + getter, property, this, type, irParent, false, when { + origin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB -> origin + origin == IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER -> origin delegate != null -> IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR origin == IrDeclarationOrigin.FAKE_OVERRIDE -> origin origin == IrDeclarationOrigin.DELEGATED_MEMBER -> origin - setter is FirDefaultPropertySetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR + getter == null || getter is FirDefaultPropertyGetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR else -> origin }, startOffset, endOffset, dontUseSignature = signature == null, fakeOverrideOwnerLookupTag, - property.unwrapFakeOverrides().setter, + property.unwrapFakeOverrides().getter, ) } + if (property.isVar) { + this.setter = setter.convertWithOffsets(startOffset, endOffset) { startOffset, endOffset -> + createIrPropertyAccessor( + setter, property, this, type, irParent, true, + when { + delegate != null -> IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR + origin == IrDeclarationOrigin.FAKE_OVERRIDE -> origin + origin == IrDeclarationOrigin.DELEGATED_MEMBER -> origin + setter is FirDefaultPropertySetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR + else -> origin + }, + startOffset, endOffset, + dontUseSignature = signature == null, fakeOverrideOwnerLookupTag, + property.unwrapFakeOverrides().setter, + ) + } + } } } } diff --git a/compiler/testData/cli/jvm/conflictingJvmDeclarations.out b/compiler/testData/cli/jvm/conflictingJvmDeclarations.out index eab9856de5e..a50d64fa1cc 100644 --- a/compiler/testData/cli/jvm/conflictingJvmDeclarations.out +++ b/compiler/testData/cli/jvm/conflictingJvmDeclarations.out @@ -1,9 +1,9 @@ -compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:2:5: error: platform declaration clash: The following declarations have the same JVM signature (getX()I): +compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:3:9: error: platform declaration clash: The following declarations have the same JVM signature (getX()I): fun ``(): Int defined in Foo fun getX(): Int defined in Foo fun getY(): Int defined in Foo - val x: Int - ^ + get() = 42 + ^ compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:8:5: error: platform declaration clash: The following declarations have the same JVM signature (getX()I): fun ``(): Int defined in Foo fun getX(): Int defined in Foo diff --git a/compiler/testData/cli/jvm/conflictingJvmDeclarationsK2.out b/compiler/testData/cli/jvm/conflictingJvmDeclarationsK2.out index eab9856de5e..a50d64fa1cc 100644 --- a/compiler/testData/cli/jvm/conflictingJvmDeclarationsK2.out +++ b/compiler/testData/cli/jvm/conflictingJvmDeclarationsK2.out @@ -1,9 +1,9 @@ -compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:2:5: error: platform declaration clash: The following declarations have the same JVM signature (getX()I): +compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:3:9: error: platform declaration clash: The following declarations have the same JVM signature (getX()I): fun ``(): Int defined in Foo fun getX(): Int defined in Foo fun getY(): Int defined in Foo - val x: Int - ^ + get() = 42 + ^ compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:8:5: error: platform declaration clash: The following declarations have the same JVM signature (getX()I): fun ``(): Int defined in Foo fun getX(): Int defined in Foo diff --git a/compiler/testData/diagnostics/tests/multiplatform/annotationMatching/gettersAndSetters.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/annotationMatching/gettersAndSetters.fir.kt index 86eb357ee4f..7726ef94f3d 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/annotationMatching/gettersAndSetters.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/annotationMatching/gettersAndSetters.fir.kt @@ -23,13 +23,13 @@ expect var onSetter: String // MODULE: m1-jvm()()(m1-common) // FILE: jvm.kt -actual val onGetter: String - get() = "" +actual val onGetter: String + get() = "" actual val onGetterImplicit: String = "" -actual val onGetterWithExplicitTarget: String - get() = "" +actual val onGetterWithExplicitTarget: String + get() = "" actual val explicitTargetMatchesWithoutTarget: String @Ann get() = "" @@ -37,6 +37,6 @@ actual val explicitTargetMatchesWithoutTarget: String @Ann actual val setOnPropertyWithoutTargetNotMatch: String = "" -actual var onSetter: String +actual var onSetter: String get() = "" - set(_) {} + set(_) {} diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/classFunctionOverriddenByProperty.fir.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/classFunctionOverriddenByProperty.fir.kt deleted file mode 100644 index dace5e2afd0..00000000000 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/classFunctionOverriddenByProperty.fir.kt +++ /dev/null @@ -1,8 +0,0 @@ -open class B { - fun getX() = 1 -} - -class C : B() { - val x: Int - get() = 1 -} diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/classFunctionOverriddenByProperty.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/classFunctionOverriddenByProperty.kt index d93832524c9..99343e84bdc 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/classFunctionOverriddenByProperty.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/classFunctionOverriddenByProperty.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL open class B { fun getX() = 1 } diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByProperty.fir.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByProperty.fir.kt deleted file mode 100644 index 835c88a1310..00000000000 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByProperty.fir.kt +++ /dev/null @@ -1,8 +0,0 @@ -interface T { - fun getX() = 1 -} - -class C : T { - val x: Int - get() = 1 -} diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByProperty.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByProperty.kt index b35bd4adf1e..f522cde7ea2 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByProperty.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByProperty.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL interface T { fun getX() = 1 } diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByPropertyNoImpl.fir.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByPropertyNoImpl.fir.kt deleted file mode 100644 index 92975678dc8..00000000000 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByPropertyNoImpl.fir.kt +++ /dev/null @@ -1,8 +0,0 @@ -interface T { - fun getX(): Int -} - -abstract class C : T { - val x: Int - get() = 1 -} diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByPropertyNoImpl.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByPropertyNoImpl.kt index 53c13f484dc..469b2032019 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByPropertyNoImpl.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByPropertyNoImpl.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL interface T { fun getX(): Int } diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/erasure/extensionProperties.fir.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/erasure/extensionProperties.fir.kt deleted file mode 100644 index 287fcae9445..00000000000 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/erasure/extensionProperties.fir.kt +++ /dev/null @@ -1,7 +0,0 @@ -class G - -val G.foo: Int - get() = 1 - -val G.foo: Int - get() = 1 diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/erasure/extensionProperties.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/erasure/extensionProperties.kt index 47b41f4d225..1a450ca4e88 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/erasure/extensionProperties.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/erasure/extensionProperties.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL class G val G.foo: Int diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/extensionPropertyAndFunction.fir.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/extensionPropertyAndFunction.fir.kt deleted file mode 100644 index e3813c59e92..00000000000 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/extensionPropertyAndFunction.fir.kt +++ /dev/null @@ -1,7 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER - -class C { - fun getX(t: Any) = 1 - val Any.x: Int - get() = 1 -} diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/extensionPropertyAndFunction.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/extensionPropertyAndFunction.kt index eb4b5cb6bd4..a0c2ce9bd97 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/extensionPropertyAndFunction.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/extensionPropertyAndFunction.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !DIAGNOSTICS: -UNUSED_PARAMETER class C { diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/functionAndVar.fir.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/functionAndVar.fir.kt deleted file mode 100644 index 09a44f18ec2..00000000000 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/functionAndVar.fir.kt +++ /dev/null @@ -1,8 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER - -class C { - fun setX(x: Int) {} - - var x: Int = 1 - set(v) {} -} diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/functionAndVar.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/functionAndVar.kt index e796a47c741..9cc94cd6eeb 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/functionAndVar.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/functionAndVar.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !DIAGNOSTICS: -UNUSED_PARAMETER class C { diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/topLevelGetter.fir.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/topLevelGetter.fir.kt deleted file mode 100644 index 97fdc83ff2a..00000000000 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/topLevelGetter.fir.kt +++ /dev/null @@ -1,3 +0,0 @@ -val x: Int - get() = 1 -fun getX() = 1 diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/topLevelGetter.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/topLevelGetter.kt index b6d593ebeeb..493cfb1a6e1 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/topLevelGetter.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/topLevelGetter.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL val x: Int get() = 1 fun getX() = 1 diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/trait.fir.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/trait.fir.kt deleted file mode 100644 index 347fd7a6074..00000000000 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/trait.fir.kt +++ /dev/null @@ -1,5 +0,0 @@ -interface T { - val x: Int - get() = 1 - fun getX() = 1 -} diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/trait.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/trait.kt index f2c8d1635f5..a6abac7ee07 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/trait.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/trait.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL interface T { val x: Int get() = 1 diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/traitImpl/traitFunctionOverriddenByPropertyInTrait.fir.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/traitImpl/traitFunctionOverriddenByPropertyInTrait.fir.kt deleted file mode 100644 index c3b1106038f..00000000000 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/traitImpl/traitFunctionOverriddenByPropertyInTrait.fir.kt +++ /dev/null @@ -1,8 +0,0 @@ -interface T { - fun getX() = 1 -} - -interface C : T { - val x: Int - get() = 1 -} diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/traitImpl/traitFunctionOverriddenByPropertyInTrait.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/traitImpl/traitFunctionOverriddenByPropertyInTrait.kt index 03e6458cbc2..4cd93a0e1cc 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/traitImpl/traitFunctionOverriddenByPropertyInTrait.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/traitImpl/traitFunctionOverriddenByPropertyInTrait.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL interface T { fun getX() = 1 } diff --git a/compiler/testData/ir/sourceRanges/comments.fir.txt b/compiler/testData/ir/sourceRanges/comments.fir.txt index 09edcca0fd0..98bb9b4b954 100644 --- a/compiler/testData/ir/sourceRanges/comments.fir.txt +++ b/compiler/testData/ir/sourceRanges/comments.fir.txt @@ -27,8 +27,8 @@ @25:4..27:25 FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final] @25:17..19 EXPRESSION_BODY @25:17..19 CONST Int type=kotlin.Int value=42 - @25:4..27:25 FUN name: visibility:public modality:FINAL <> ($this:.Foo) returnType:kotlin.Int - @25:4..27:25 VALUE_PARAMETER name: type:.Foo + @27:8..25 FUN name: visibility:public modality:FINAL <> ($this:.Foo) returnType:kotlin.Int + @27:8..25 VALUE_PARAMETER name: type:.Foo @27:16..25 BLOCK_BODY @27:25..25 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in .Foo' @27:22..25 CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS diff --git a/compiler/testData/ir/sourceRanges/declarations/classProperties.fir.txt b/compiler/testData/ir/sourceRanges/declarations/classProperties.fir.txt index 4a2dc6d8d68..75eaa0a07ea 100644 --- a/compiler/testData/ir/sourceRanges/declarations/classProperties.fir.txt +++ b/compiler/testData/ir/sourceRanges/declarations/classProperties.fir.txt @@ -49,30 +49,30 @@ @19:4..20:18 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null @19:4..20:18 GET_VAR ': test.Test declared in test.Test.' type=test.Test origin=null @23:4..24 PROPERTY name:test4 visibility:public modality:FINAL [val] - @23:4..24 FUN name: visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int - @23:4..24 VALUE_PARAMETER name: type:test.Test + @23:14..24 FUN name: visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int + @23:14..24 VALUE_PARAMETER name: type:test.Test @23:22..24 BLOCK_BODY @23:24..24 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test.Test' @23:22..24 CONST Int type=kotlin.Int value=42 @26:4..27:18 PROPERTY name:test5 visibility:public modality:FINAL [val] - @26:4..27:18 FUN name: visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int - @26:4..27:18 VALUE_PARAMETER name: type:test.Test + @27:8..18 FUN name: visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int + @27:8..18 VALUE_PARAMETER name: type:test.Test @27:16..18 BLOCK_BODY @27:18..18 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test.Test' @27:16..18 CONST Int type=kotlin.Int value=42 @30:4..34:18 PROPERTY name:test6 visibility:public modality:FINAL [val] - @30:4..34:18 FUN name: visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int - @30:4..34:18 VALUE_PARAMETER name: type:test.Test + @34:8..18 FUN name: visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int + @34:8..18 VALUE_PARAMETER name: type:test.Test @34:16..18 BLOCK_BODY @34:18..18 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test.Test' @34:16..18 CONST Int type=kotlin.Int value=42 @37:4..41:18 PROPERTY name:test7 visibility:public modality:FINAL [val] - @37:4..41:18 FUN name: visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int + @38:8..41:18 FUN name: visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int annotations: @38:8..40:9 CONSTRUCTOR_CALL 'public constructor (vararg names: kotlin.String) [primary] declared in kotlin.Suppress' type=kotlin.Suppress origin=null @39:12..29 VARARG type=kotlin.Array varargElementType=kotlin.String @39:12..29 CONST String type=kotlin.String value="UNUSED_VARIABLE" - @37:4..41:18 VALUE_PARAMETER name: type:test.Test + @38:8..41:18 VALUE_PARAMETER name: type:test.Test @41:16..18 BLOCK_BODY @41:18..18 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test.Test' @41:16..18 CONST Int type=kotlin.Int value=42 @@ -103,13 +103,13 @@ @47:4..31 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test.Test' @47:4..31 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Int visibility:private' type=kotlin.Int origin=null @47:4..31 GET_VAR ': test.Test declared in test.Test.' type=test.Test origin=null - @47:4..31 FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:private modality:FINAL <> ($this:test.Test, :kotlin.Int) returnType:kotlin.Unit - @47:4..31 VALUE_PARAMETER name: type:test.Test - @47:4..31 VALUE_PARAMETER name: index:0 type:kotlin.Int - @47:4..31 BLOCK_BODY - @47:4..31 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null - @47:4..31 GET_VAR ': test.Test declared in test.Test.' type=test.Test origin=null - @47:4..31 GET_VAR ': kotlin.Int declared in test.Test.' type=kotlin.Int origin=null + @47:20..31 FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:private modality:FINAL <> ($this:test.Test, :kotlin.Int) returnType:kotlin.Unit + @47:20..31 VALUE_PARAMETER name: type:test.Test + @47:20..31 VALUE_PARAMETER name: index:0 type:kotlin.Int + @47:20..31 BLOCK_BODY + @47:20..31 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null + @47:20..31 GET_VAR ': test.Test declared in test.Test.' type=test.Test origin=null + @47:20..31 GET_VAR ': kotlin.Int declared in test.Test.' type=kotlin.Int origin=null @50:4..51:19 PROPERTY name:test10 visibility:public modality:FINAL [var] @50:4..51:19 FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private @50:17..19 EXPRESSION_BODY @@ -120,13 +120,13 @@ @50:4..51:19 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test.Test' @50:4..51:19 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private' type=kotlin.Int origin=null @50:4..51:19 GET_VAR ': test.Test declared in test.Test.' type=test.Test origin=null - @50:4..51:19 FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:private modality:FINAL <> ($this:test.Test, :kotlin.Int) returnType:kotlin.Unit - @50:4..51:19 VALUE_PARAMETER name: type:test.Test - @50:4..51:19 VALUE_PARAMETER name: index:0 type:kotlin.Int - @50:4..51:19 BLOCK_BODY - @50:4..51:19 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null - @50:4..51:19 GET_VAR ': test.Test declared in test.Test.' type=test.Test origin=null - @50:4..51:19 GET_VAR ': kotlin.Int declared in test.Test.' type=kotlin.Int origin=null + @51:8..19 FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:private modality:FINAL <> ($this:test.Test, :kotlin.Int) returnType:kotlin.Unit + @51:8..19 VALUE_PARAMETER name: type:test.Test + @51:8..19 VALUE_PARAMETER name: index:0 type:kotlin.Int + @51:8..19 BLOCK_BODY + @51:8..19 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null + @51:8..19 GET_VAR ': test.Test declared in test.Test.' type=test.Test origin=null + @51:8..19 GET_VAR ': kotlin.Int declared in test.Test.' type=kotlin.Int origin=null @54:4..57:9 PROPERTY name:test11 visibility:public modality:FINAL [var] @54:4..57:9 FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Int visibility:private @54:17..19 EXPRESSION_BODY @@ -137,8 +137,8 @@ @54:4..57:9 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test.Test' @54:4..57:9 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Int visibility:private' type=kotlin.Int origin=null @54:4..57:9 GET_VAR ': test.Test declared in test.Test.' type=test.Test origin=null - @54:4..57:9 FUN name: visibility:public modality:FINAL <> ($this:test.Test, value:kotlin.Int) returnType:kotlin.Unit - @54:4..57:9 VALUE_PARAMETER name: type:test.Test + @55:8..57:9 FUN name: visibility:public modality:FINAL <> ($this:test.Test, value:kotlin.Int) returnType:kotlin.Unit + @55:8..57:9 VALUE_PARAMETER name: type:test.Test @55:12..17 VALUE_PARAMETER name:value index:0 type:kotlin.Int @55:19..57:9 BLOCK_BODY @56:12..25 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Int visibility:private' type=kotlin.Unit origin=EQ @@ -154,8 +154,8 @@ @60:4..66:9 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test.Test' @60:4..66:9 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test12 type:kotlin.Int visibility:private' type=kotlin.Int origin=null @60:4..66:9 GET_VAR ': test.Test declared in test.Test.' type=test.Test origin=null - @60:4..66:9 FUN name: visibility:public modality:FINAL <> ($this:test.Test, value:kotlin.Int) returnType:kotlin.Unit - @60:4..66:9 VALUE_PARAMETER name: type:test.Test + @64:8..66:9 FUN name: visibility:public modality:FINAL <> ($this:test.Test, value:kotlin.Int) returnType:kotlin.Unit + @64:8..66:9 VALUE_PARAMETER name: type:test.Test @64:12..17 VALUE_PARAMETER name:value index:0 type:kotlin.Int @64:19..66:9 BLOCK_BODY @65:12..25 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test12 type:kotlin.Int visibility:private' type=kotlin.Unit origin=EQ @@ -171,12 +171,12 @@ @69:4..75:9 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test.Test' @69:4..75:9 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test13 type:kotlin.Int visibility:private' type=kotlin.Int origin=null @69:4..75:9 GET_VAR ': test.Test declared in test.Test.' type=test.Test origin=null - @69:4..75:9 FUN name: visibility:public modality:FINAL <> ($this:test.Test, value:kotlin.Int) returnType:kotlin.Unit + @70:8..75:9 FUN name: visibility:public modality:FINAL <> ($this:test.Test, value:kotlin.Int) returnType:kotlin.Unit annotations: @70:8..72:9 CONSTRUCTOR_CALL 'public constructor (vararg names: kotlin.String) [primary] declared in kotlin.Suppress' type=kotlin.Suppress origin=null @71:12..29 VARARG type=kotlin.Array varargElementType=kotlin.String @71:12..29 CONST String type=kotlin.String value="UNUSED_VARIABLE" - @69:4..75:9 VALUE_PARAMETER name: type:test.Test + @70:8..75:9 VALUE_PARAMETER name: type:test.Test @73:12..17 VALUE_PARAMETER name:value index:0 type:kotlin.Int @73:19..75:9 BLOCK_BODY @74:12..25 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test13 type:kotlin.Int visibility:private' type=kotlin.Unit origin=EQ diff --git a/compiler/testData/ir/sourceRanges/declarations/topLevelProperties.fir.txt b/compiler/testData/ir/sourceRanges/declarations/topLevelProperties.fir.txt index bb1453998b5..949be31eef2 100644 --- a/compiler/testData/ir/sourceRanges/declarations/topLevelProperties.fir.txt +++ b/compiler/testData/ir/sourceRanges/declarations/topLevelProperties.fir.txt @@ -36,22 +36,22 @@ @18:0..19:14 RETURN type=kotlin.Nothing from='private final fun (): kotlin.Int declared in test' @18:0..19:14 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.Int visibility:private [final,static]' type=kotlin.Int origin=null @22:0..20 PROPERTY name:test4 visibility:public modality:FINAL [val] - @22:0..20 FUN name: visibility:public modality:FINAL <> () returnType:kotlin.Int + @22:10..20 FUN name: visibility:public modality:FINAL <> () returnType:kotlin.Int @22:18..20 BLOCK_BODY @22:20..20 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test' @22:18..20 CONST Int type=kotlin.Int value=42 @25:0..26:14 PROPERTY name:test5 visibility:public modality:FINAL [val] - @25:0..26:14 FUN name: visibility:public modality:FINAL <> () returnType:kotlin.Int + @26:4..14 FUN name: visibility:public modality:FINAL <> () returnType:kotlin.Int @26:12..14 BLOCK_BODY @26:14..14 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test' @26:12..14 CONST Int type=kotlin.Int value=42 @29:0..33:14 PROPERTY name:test6 visibility:public modality:FINAL [val] - @29:0..33:14 FUN name: visibility:public modality:FINAL <> () returnType:kotlin.Int + @33:4..14 FUN name: visibility:public modality:FINAL <> () returnType:kotlin.Int @33:12..14 BLOCK_BODY @33:14..14 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test' @33:12..14 CONST Int type=kotlin.Int value=42 @36:0..40:14 PROPERTY name:test7 visibility:public modality:FINAL [val] - @36:0..40:14 FUN name: visibility:public modality:FINAL <> () returnType:kotlin.Int + @37:4..40:14 FUN name: visibility:public modality:FINAL <> () returnType:kotlin.Int annotations: @37:4..39:5 CONSTRUCTOR_CALL 'public constructor (vararg names: kotlin.String) [primary] declared in kotlin.Suppress' type=kotlin.Suppress origin=null @38:8..25 VARARG type=kotlin.Array varargElementType=kotlin.String @@ -80,11 +80,11 @@ @46:0..27 BLOCK_BODY @46:0..27 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test' @46:0..27 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Int visibility:private [static]' type=kotlin.Int origin=null - @46:0..27 FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:private modality:FINAL <> (:kotlin.Int) returnType:kotlin.Unit - @46:0..27 VALUE_PARAMETER name: index:0 type:kotlin.Int - @46:0..27 BLOCK_BODY - @46:0..27 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null - @46:0..27 GET_VAR ': kotlin.Int declared in test.' type=kotlin.Int origin=null + @46:16..27 FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:private modality:FINAL <> (:kotlin.Int) returnType:kotlin.Unit + @46:16..27 VALUE_PARAMETER name: index:0 type:kotlin.Int + @46:16..27 BLOCK_BODY + @46:16..27 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null + @46:16..27 GET_VAR ': kotlin.Int declared in test.' type=kotlin.Int origin=null @49:0..50:15 PROPERTY name:test10 visibility:public modality:FINAL [var] @49:0..50:15 FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private [static] @49:13..15 EXPRESSION_BODY @@ -93,11 +93,11 @@ @49:0..50:15 BLOCK_BODY @49:0..50:15 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test' @49:0..50:15 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private [static]' type=kotlin.Int origin=null - @49:0..50:15 FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:private modality:FINAL <> (:kotlin.Int) returnType:kotlin.Unit - @49:0..50:15 VALUE_PARAMETER name: index:0 type:kotlin.Int - @49:0..50:15 BLOCK_BODY - @49:0..50:15 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null - @49:0..50:15 GET_VAR ': kotlin.Int declared in test.' type=kotlin.Int origin=null + @50:4..15 FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:private modality:FINAL <> (:kotlin.Int) returnType:kotlin.Unit + @50:4..15 VALUE_PARAMETER name: index:0 type:kotlin.Int + @50:4..15 BLOCK_BODY + @50:4..15 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null + @50:4..15 GET_VAR ': kotlin.Int declared in test.' type=kotlin.Int origin=null @53:0..54:32 PROPERTY name:test11 visibility:public modality:FINAL [var] @53:0..54:32 FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Int visibility:private [static] @53:13..15 EXPRESSION_BODY @@ -106,7 +106,7 @@ @53:0..54:32 BLOCK_BODY @53:0..54:32 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test' @53:0..54:32 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Int visibility:private [static]' type=kotlin.Int origin=null - @53:0..54:32 FUN name: visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit + @54:4..32 FUN name: visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit @54:8..13 VALUE_PARAMETER name:value index:0 type:kotlin.Int @54:15..32 BLOCK_BODY @54:17..30 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=EQ @@ -119,7 +119,7 @@ @57:0..61:32 BLOCK_BODY @57:0..61:32 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test' @57:0..61:32 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test12 type:kotlin.Int visibility:private [static]' type=kotlin.Int origin=null - @57:0..61:32 FUN name: visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit + @61:4..32 FUN name: visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit @61:8..13 VALUE_PARAMETER name:value index:0 type:kotlin.Int @61:15..32 BLOCK_BODY @61:17..30 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test12 type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=EQ @@ -132,7 +132,7 @@ @64:0..68:32 BLOCK_BODY @64:0..68:32 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in test' @64:0..68:32 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test13 type:kotlin.Int visibility:private [static]' type=kotlin.Int origin=null - @64:0..68:32 FUN name: visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit + @65:4..68:32 FUN name: visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit annotations: @65:4..67:5 CONSTRUCTOR_CALL 'public constructor (vararg names: kotlin.String) [primary] declared in kotlin.Suppress' type=kotlin.Suppress origin=null @66:8..25 VARARG type=kotlin.Array varargElementType=kotlin.String diff --git a/compiler/testData/ir/sourceRanges/operators.fir.txt b/compiler/testData/ir/sourceRanges/operators.fir.txt index 2a68bff8a45..1a99615ccf5 100644 --- a/compiler/testData/ir/sourceRanges/operators.fir.txt +++ b/compiler/testData/ir/sourceRanges/operators.fir.txt @@ -19,7 +19,7 @@ @3:0..28 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in ' @3:0..28 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:bangBangExpr type:kotlin.Int visibility:private [final,static]' type=kotlin.Int origin=null @5:0..6:13 PROPERTY name:x visibility:public modality:FINAL [val] - @5:0..6:13 FUN name: visibility:public modality:FINAL <> () returnType:kotlin.Int + @6:4..13 FUN name: visibility:public modality:FINAL <> () returnType:kotlin.Int @6:12..13 BLOCK_BODY @6:13..13 RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in ' @6:12..13 CONST Int type=kotlin.Int value=5