diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index 5dca5579470..4e12c462ff6 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -323,6 +323,7 @@ class Fir2IrDeclarationStorage( function: FirFunction?, containingClass: IrClass?, isStatic: Boolean, + forSetter: Boolean, // Can be not-null only for property accessors parentPropertyReceiver: FirReceiverParameter? ) { @@ -332,7 +333,6 @@ class Fir2IrDeclarationStorage( setTypeParameters(function) } } - val forSetter = function is FirPropertyAccessor && function.isSetter val typeContext = ConversionTypeContext( origin = if (forSetter) ConversionTypeOrigin.SETTER else ConversionTypeOrigin.DEFAULT ) @@ -417,10 +417,11 @@ class Fir2IrDeclarationStorage( irParent: IrDeclarationParent?, thisReceiverOwner: IrClass? = irParent as? IrClass, isStatic: Boolean, + forSetter: Boolean, parentPropertyReceiver: FirReceiverParameter? = null ): T { setAndModifyParent(irParent) - declareParameters(function, thisReceiverOwner, isStatic, parentPropertyReceiver) + declareParameters(function, thisReceiverOwner, isStatic, forSetter, parentPropertyReceiver) return this } @@ -563,7 +564,8 @@ class Fir2IrDeclarationStorage( enterScope(this) bindAndDeclareParameters( function, irParent, - thisReceiverOwner, isStatic = simpleFunction?.isStatic == true + thisReceiverOwner, isStatic = simpleFunction?.isStatic == true, + forSetter = false, ) convertAnnotationsForNonDeclaredMembers(function, origin) leaveScope(this) @@ -645,7 +647,7 @@ class Fir2IrDeclarationStorage( ).apply { metadata = FirMetadataSource.Function(constructor) enterScope(this) - bindAndDeclareParameters(constructor, irParent, isStatic = false) + bindAndDeclareParameters(constructor, irParent, isStatic = false, forSetter = false) leaveScope(this) } } @@ -745,6 +747,7 @@ class Fir2IrDeclarationStorage( bindAndDeclareParameters( propertyAccessor, irParent, thisReceiverOwner, isStatic = irParent !is IrClass || propertyAccessor?.isStatic == true, + forSetter = isSetter, parentPropertyReceiver = property.receiverParameter, ) leaveScope(this) @@ -940,6 +943,8 @@ class Fir2IrDeclarationStorage( 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 is FirDefaultPropertyGetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR else -> origin }, @@ -953,6 +958,8 @@ class Fir2IrDeclarationStorage( setter, property, this, type, irParent, thisReceiverOwner, 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 }, diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt index 60c2d5f880c..e839453bcba 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyProperty.kt @@ -129,7 +129,7 @@ class Fir2IrLazyProperty( } } } - fir.initializer != null || fir.getter is FirDefaultPropertyGetter || fir.isVar && fir.setter is FirDefaultPropertySetter -> { + fir.hasBackingField && origin != IrDeclarationOrigin.FAKE_OVERRIDE -> { with(declarationStorage) { createBackingField( fir, IrDeclarationOrigin.PROPERTY_BACKING_FIELD, @@ -170,6 +170,8 @@ class Fir2IrLazyProperty( when { origin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB -> origin fir.delegate != null -> IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR + origin == IrDeclarationOrigin.FAKE_OVERRIDE -> origin + origin == IrDeclarationOrigin.DELEGATED_MEMBER -> origin fir.getter is FirDefaultPropertyGetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR else -> origin }, @@ -203,6 +205,8 @@ class Fir2IrLazyProperty( when { origin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB -> origin fir.delegate != null -> IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR + origin == IrDeclarationOrigin.FAKE_OVERRIDE -> origin + origin == IrDeclarationOrigin.DELEGATED_MEMBER -> origin fir.setter is FirDefaultPropertySetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR else -> origin }, diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldDiagnosticsTestWithJvmIrBackendGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldDiagnosticsTestWithJvmIrBackendGenerated.java index 86241a73a4e..84592adff8e 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldDiagnosticsTestWithJvmIrBackendGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldDiagnosticsTestWithJvmIrBackendGenerated.java @@ -48,6 +48,18 @@ public class FirPsiOldDiagnosticsTestWithJvmIrBackendGenerated extends AbstractF runTest("compiler/testData/diagnostics/testsWithJvmBackend/inlineCycle_ir.kt"); } + @Test + @TestMetadata("kt57104.kt") + public void testKt57104() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJvmBackend/kt57104.kt"); + } + + @Test + @TestMetadata("kt57104_2.kt") + public void testKt57104_2() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJvmBackend/kt57104_2.kt"); + } + @Test @TestMetadata("multipleBigArityFunsImplemented.kt") public void testMultipleBigArityFunsImplemented() throws Exception { diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt index 7152ff0a89e..eb0e3e84c00 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt @@ -10,10 +10,12 @@ import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.* +import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor +import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter +import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty -import org.jetbrains.kotlin.fir.declarations.utils.isExpect -import org.jetbrains.kotlin.fir.declarations.utils.isStatic +import org.jetbrains.kotlin.fir.declarations.utils.* import org.jetbrains.kotlin.fir.resolve.substitution.ChainedSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap @@ -374,11 +376,115 @@ object FirFakeOverrideGenerator { fakeOverrideSubstitution ) deprecationsProvider = baseProperty.deprecationsProvider + + getter = baseProperty.getter?.buildCopyIfNeeded( + moduleData = session.moduleData, + origin = origin, + propertyReturnTypeRef = this@buildProperty.returnTypeRef, + propertySymbol = newSymbol, + dispatchReceiverType = dispatchReceiverType, + derivedClassLookupTag = derivedClassLookupTag, + baseProperty = baseProperty, + ) + + setter = baseProperty.setter?.buildCopyIfNeeded( + moduleData = session.moduleData, + origin = origin, + propertyReturnTypeRef = this@buildProperty.returnTypeRef, + propertySymbol = newSymbol, + dispatchReceiverType = dispatchReceiverType, + derivedClassLookupTag = derivedClassLookupTag, + baseProperty = baseProperty, + ) }.apply { containingClassForStaticMemberAttr = derivedClassLookupTag.takeIf { shouldOverrideSetContainingClass(baseProperty) } } } + private fun FirPropertyAccessor.buildCopyIfNeeded( + moduleData: FirModuleData, + origin: FirDeclarationOrigin, + propertyReturnTypeRef: FirTypeRef, + propertySymbol: FirPropertySymbol, + dispatchReceiverType: ConeSimpleKotlinType?, + derivedClassLookupTag: ConeClassLikeLookupTag?, + baseProperty: FirProperty, + ) = when { + annotations.isNotEmpty() || visibility != baseProperty.visibility -> buildCopy( + moduleData, + origin, + propertyReturnTypeRef, + propertySymbol, + dispatchReceiverType, + derivedClassLookupTag, + baseProperty, + ) + else -> null + } + + private fun FirPropertyAccessor.buildCopy( + moduleData: FirModuleData, + origin: FirDeclarationOrigin, + propertyReturnTypeRef: FirTypeRef, + propertySymbol: FirPropertySymbol, + dispatchReceiverType: ConeSimpleKotlinType?, + derivedClassLookupTag: ConeClassLikeLookupTag?, + baseProperty: FirProperty, + ) = when (this) { + is FirDefaultPropertyGetter -> FirDefaultPropertyGetter( + source = source, + moduleData = moduleData, + origin = origin, + propertyTypeRef = propertyReturnTypeRef, + visibility = visibility, + propertySymbol = propertySymbol, + modality = modality ?: Modality.FINAL, + effectiveVisibility = effectiveVisibility, + ).apply { + replaceAnnotations(annotations) + } + is FirDefaultPropertySetter -> FirDefaultPropertySetter( + source = source, + moduleData = moduleData, + origin = origin, + propertyTypeRef = propertyReturnTypeRef, + visibility = visibility, + propertySymbol = propertySymbol, + modality = modality ?: Modality.FINAL, + effectiveVisibility = effectiveVisibility, + ).apply { + replaceAnnotations(annotations) + } + else -> buildPropertyAccessorCopy(this) { + this.symbol = FirPropertyAccessorSymbol() + this.moduleData = moduleData + this.origin = origin + this.propertySymbol = propertySymbol + this.dispatchReceiverType = dispatchReceiverType + this.body = null + }.also { + if (it.isSetter) { + val newParameter = buildValueParameterCopy(it.valueParameters.first()) { + this.symbol = FirValueParameterSymbol(symbol.name) + this.returnTypeRef = propertyReturnTypeRef + } + it.replaceValueParameters(listOf(newParameter)) + } else { + it.replaceReturnTypeRef(propertyReturnTypeRef) + } + } + }.also { accessor -> + when (accessor.origin) { + FirDeclarationOrigin.IntersectionOverride -> accessor.originalForIntersectionOverrideAttr = this + FirDeclarationOrigin.SubstitutionOverride -> accessor.originalForSubstitutionOverrideAttr = this + else -> {} + } + + accessor.containingClassForStaticMemberAttr = derivedClassLookupTag.takeIf { + accessor is FirDefaultPropertyAccessor || shouldOverrideSetContainingClass(baseProperty) + } + } + fun createCopyForFirField( newSymbol: FirFieldSymbol, baseField: FirField, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt index 2759894048e..3adf445519d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt @@ -257,6 +257,10 @@ private class ReturnTypeCalculatorWithJump( val coneType = substitutor.substituteOrSelf(baseReturnType) val returnType = declaration.returnTypeRef.resolvedTypeFromPrototype(coneType) declaration.replaceReturnTypeRef(returnType) + if (declaration is FirProperty) { + declaration.getter?.replaceReturnTypeRef(returnType) + declaration.setter?.valueParameters?.firstOrNull()?.replaceReturnTypeRef(returnType) + } return returnType } } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/declarationAttributes.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/declarationAttributes.kt index dd3b697d286..49cdfbdf666 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/declarationAttributes.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/declarationAttributes.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.fir.expressions.FirPropertyAccessExpression import org.jetbrains.kotlin.fir.references.impl.FirPropertyFromParameterResolvedNamedReference import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase import org.jetbrains.kotlin.fir.types.coneType @@ -88,6 +89,7 @@ val FirProperty.hasBackingField: Boolean if (isAbstract) return false if (delegate != null) return false if (hasExplicitBackingField) return true + if (symbol is FirSyntheticPropertySymbol) return false if (isStatic) return false // For Enum.entries when (origin) { FirDeclarationOrigin.SubstitutionOverride -> return false diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/kt57104.kt b/compiler/testData/diagnostics/testsWithJvmBackend/kt57104.kt new file mode 100644 index 00000000000..39bbc9529a5 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithJvmBackend/kt57104.kt @@ -0,0 +1,22 @@ +// FIR_IDENTICAL +// JVM_TARGET: 1.8 +// WITH_STDLIB + +// MODULE: lib +// FILE: tests.kt + +interface BaseTest { + fun getProject() = Any() +} + +open class GradleTestCase { + @get:JvmName("myProject") + val project = Any() +} + +open class GradleCodeInsightTestCase: GradleTestCase(), BaseTest + +// MODULE: main(lib) +// FILE: main.kt + +class GradleActionTest: GradleCodeInsightTestCase() // K1: ok, K2: CONFLICTING_INHERITED_JVM_DECLARATIONS diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/kt57104_2.kt b/compiler/testData/diagnostics/testsWithJvmBackend/kt57104_2.kt new file mode 100644 index 00000000000..196661fb9bf --- /dev/null +++ b/compiler/testData/diagnostics/testsWithJvmBackend/kt57104_2.kt @@ -0,0 +1,20 @@ +// FIR_IDENTICAL +// JVM_TARGET: 1.8 +// WITH_STDLIB + +// MODULE: lib +// FILE: tests.kt + +interface BaseTest { + fun getProject() = Any() +} + +open class GradleTestCase { + @get:JvmName("myProject") + val project = Any() +} + +// MODULE: main(lib) +// FILE: main.kt + +class GradleActionTest: GradleTestCase(), BaseTest // K1 & K2: ok \ No newline at end of file diff --git a/compiler/testData/ir/irText/classes/delegatedGenericImplementation.fir.ir.txt b/compiler/testData/ir/irText/classes/delegatedGenericImplementation.fir.ir.txt index 08435d86f20..53cc4a1111e 100644 --- a/compiler/testData/ir/irText/classes/delegatedGenericImplementation.fir.ir.txt +++ b/compiler/testData/ir/irText/classes/delegatedGenericImplementation.fir.ir.txt @@ -94,20 +94,20 @@ FILE fqName: fileName:/delegatedGenericImplementation.kt $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.IBase.Test1> visibility:private [final]' type=.IBase.Test1> origin=null receiver: GET_VAR ': .Test1.Test1> declared in .Test1.' type=.Test1.Test1> origin=null $receiver: GET_VAR ': kotlin.collections.List.Test1.> declared in .Test1.' type=kotlin.collections.List.Test1.> origin=null - FUN DELEGATED_MEMBER name: visibility:public modality:OPEN ($this:.Test1.Test1>, $receiver:kotlin.collections.List.Test1.>, :D of .Test1.?) returnType:kotlin.Unit + FUN DELEGATED_MEMBER name: visibility:public modality:OPEN ($this:.Test1.Test1>, $receiver:kotlin.collections.List.Test1.>, :D of .Test1.?) returnType:kotlin.Unit correspondingProperty: PROPERTY DELEGATED_MEMBER name:x visibility:public modality:OPEN [var] overridden: public abstract fun (: D of .IBase.?): kotlin.Unit declared in .IBase TYPE_PARAMETER name:D index:0 variance: superTypes:[kotlin.Any?] reified:false $this: VALUE_PARAMETER name: type:.Test1.Test1> - $receiver: VALUE_PARAMETER name: type:kotlin.collections.List.Test1.> + $receiver: VALUE_PARAMETER name: type:kotlin.collections.List.Test1.> VALUE_PARAMETER name: index:0 type:D of .Test1.? BLOCK_BODY CALL 'public abstract fun (: D of .IBase.?): kotlin.Unit declared in .IBase' type=kotlin.Unit origin=null : D of .Test1. $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.IBase.Test1> visibility:private [final]' type=.IBase.Test1> origin=null receiver: GET_VAR ': .Test1.Test1> declared in .Test1.' type=.Test1.Test1> origin=null - $receiver: GET_VAR ': kotlin.collections.List.Test1.> declared in .Test1.' type=kotlin.collections.List.Test1.> origin=null + $receiver: GET_VAR ': kotlin.collections.List.Test1.> declared in .Test1.' type=kotlin.collections.List.Test1.> origin=null : GET_VAR ': D of .Test1.? declared in .Test1.' type=D of .Test1.? origin=null FIELD DELEGATE name:$$delegate_0 type:.IBase.Test1> visibility:private [final] EXPRESSION_BODY @@ -180,20 +180,20 @@ FILE fqName: fileName:/delegatedGenericImplementation.kt $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j type:.IBase visibility:private' type=.IBase origin=null receiver: GET_VAR ': .Test2 declared in .Test2.' type=.Test2 origin=null $receiver: GET_VAR ': kotlin.collections.List.Test2.> declared in .Test2.' type=kotlin.collections.List.Test2.> origin=null - FUN DELEGATED_MEMBER name: visibility:public modality:OPEN ($this:.Test2, $receiver:kotlin.collections.List.Test2.>, :D of .Test2.?) returnType:kotlin.Unit + FUN DELEGATED_MEMBER name: visibility:public modality:OPEN ($this:.Test2, $receiver:kotlin.collections.List.Test2.>, :D of .Test2.?) returnType:kotlin.Unit correspondingProperty: PROPERTY DELEGATED_MEMBER name:x visibility:public modality:OPEN [var] overridden: public abstract fun (: D of .IBase.?): kotlin.Unit declared in .IBase TYPE_PARAMETER name:D index:0 variance: superTypes:[kotlin.Any?] reified:false $this: VALUE_PARAMETER name: type:.Test2 - $receiver: VALUE_PARAMETER name: type:kotlin.collections.List.Test2.> + $receiver: VALUE_PARAMETER name: type:kotlin.collections.List.Test2.> VALUE_PARAMETER name: index:0 type:D of .Test2.? BLOCK_BODY CALL 'public abstract fun (: D of .IBase.?): kotlin.Unit declared in .IBase' type=kotlin.Unit origin=null : D of .Test2. $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j type:.IBase visibility:private' type=.IBase origin=null receiver: GET_VAR ': .Test2 declared in .Test2.' type=.Test2 origin=null - $receiver: GET_VAR ': kotlin.collections.List.Test2.> declared in .Test2.' type=kotlin.collections.List.Test2.> origin=null + $receiver: GET_VAR ': kotlin.collections.List.Test2.> declared in .Test2.' type=kotlin.collections.List.Test2.> origin=null : GET_VAR ': D of .Test2.? declared in .Test2.' type=D of .Test2.? origin=null PROPERTY name:j visibility:public modality:FINAL [var] FIELD PROPERTY_BACKING_FIELD name:j type:.IBase visibility:private diff --git a/compiler/testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt b/compiler/testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt index ae3156cd9aa..d4ff57cafb1 100644 --- a/compiler/testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt +++ b/compiler/testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt @@ -7,7 +7,6 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB ENUM_CLASS name:JEnum modality:FINAL vis FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.JEnum VALUE_PARAMETER name:value index:0 type:kotlin.String PROPERTY IR_EXTERNAL_JAVA_DECLARATION_STUB name:entries visibility:public modality:FINAL [val] - FIELD PROPERTY_BACKING_FIELD name:entries type:kotlin.enums.EnumEntries<.JEnum> visibility:public [final,static] FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:kotlin.enums.EnumEntries<.JEnum> correspondingProperty: PROPERTY IR_EXTERNAL_JAVA_DECLARATION_STUB name:entries visibility:public modality:FINAL [val] FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:.JEnum) returnType:kotlin.Any [fake_override] diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java index 6bf084c62ae..92e49746abf 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java @@ -37,6 +37,18 @@ public class DiagnosticsTestWithJvmIrBackendGenerated extends AbstractDiagnostic runTest("compiler/testData/diagnostics/testsWithJvmBackend/inlineCycle_ir.kt"); } + @Test + @TestMetadata("kt57104.kt") + public void testKt57104() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJvmBackend/kt57104.kt"); + } + + @Test + @TestMetadata("kt57104_2.kt") + public void testKt57104_2() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJvmBackend/kt57104_2.kt"); + } + @Test @TestMetadata("multipleBigArityFunsImplemented_ir.kt") public void testMultipleBigArityFunsImplemented_ir() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithOldJvmBackendGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithOldJvmBackendGenerated.java index 103d977dc85..45f774699ab 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithOldJvmBackendGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithOldJvmBackendGenerated.java @@ -37,6 +37,18 @@ public class DiagnosticsTestWithOldJvmBackendGenerated extends AbstractDiagnosti runTest("compiler/testData/diagnostics/testsWithJvmBackend/inlineCycle.kt"); } + @Test + @TestMetadata("kt57104.kt") + public void testKt57104() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJvmBackend/kt57104.kt"); + } + + @Test + @TestMetadata("kt57104_2.kt") + public void testKt57104_2() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJvmBackend/kt57104_2.kt"); + } + @Test @TestMetadata("multipleBigArityFunsImplemented.kt") public void testMultipleBigArityFunsImplemented() throws Exception {