From 14fb495ab6aa2304f3afed74f0353c715f08d92d Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 1 Mar 2019 14:17:58 +0300 Subject: [PATCH] Support Java constructors in FIR (related to KT-29218) --- .../kotlin/fir/java/JavaSymbolProvider.kt | 60 ++++++++++++------- .../jetbrains/kotlin/fir/java/JavaUtils.kt | 12 ++++ .../java/declarations/FirJavaConstructor.kt | 36 +++++++++++ .../java/scopes/JavaClassEnhancementScope.kt | 29 ++++++--- .../java/AbstractFirTypeEnhancementTest.kt | 10 ++++ .../loadJava/compiledJava/MyException.fir.txt | 2 + .../PackageLocalVisibility.fir.txt | 2 + .../compiledJava/PrivateMembers.fir.txt | 2 + .../loadJava/compiledJava/Simple.fir.txt | 2 + .../annotations/AnnotatedConstructor.fir.txt | 2 + .../EnumConstructorParameter.fir.txt | 4 ++ .../ConstructorGenericDeep.fir.txt | 2 + .../ConstructorGenericSimple.fir.txt | 2 + .../ConstructorGenericUpperBound.fir.txt | 2 + .../compiledJava/enum/EnumMembers.fir.txt | 2 + .../ConstructorWithNewTypeParams.fir.txt | 2 + .../ConstructorWithParentTypeParams.fir.txt | 2 + .../ConstructorWithSeveralParams.fir.txt | 2 + .../ConstructorWithoutParams.fir.txt | 2 + .../sam/adapters/Constructor.fir.txt | 2 + .../ConstructorWithAnnotations.fir.txt | 2 + 21 files changed, 152 insertions(+), 29 deletions(-) create mode 100644 compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt index c15ccdcc646..8d185fe2550 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt @@ -9,24 +9,24 @@ import com.intellij.openapi.project.Project import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirCallableMember +import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.impl.FirModifiableClass -import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass -import org.jetbrains.kotlin.fir.java.declarations.FirJavaField -import org.jetbrains.kotlin.fir.java.declarations.FirJavaMethod -import org.jetbrains.kotlin.fir.java.declarations.FirJavaValueParameter +import org.jetbrains.kotlin.fir.expressions.FirCall +import org.jetbrains.kotlin.fir.java.declarations.* import org.jetbrains.kotlin.fir.resolve.AbstractFirSymbolProvider +import org.jetbrains.kotlin.fir.resolve.constructType import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.ConeCallableSymbol import org.jetbrains.kotlin.fir.symbols.ConeClassLikeSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol +import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.load.java.JavaClassFinder import org.jetbrains.kotlin.load.java.structure.JavaClass import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade class JavaSymbolProvider( @@ -44,17 +44,21 @@ class JavaSymbolProvider( val classId = callableId.classId ?: return@lookupCacheOrCalculate emptyList() val classSymbol = getClassLikeSymbolByFqName(classId) as? FirClassSymbol ?: return@lookupCacheOrCalculate emptyList() - val firClass = classSymbol.fir as FirModifiableClass + val firClass = classSymbol.fir val callableSymbols = mutableListOf() for (declaration in firClass.declarations) { - when (declaration) { - is FirCallableMember -> { - val declarationId = CallableId(callableId.packageName, callableId.className, declaration.name) - if (declarationId == callableId) { - val symbol = declaration.symbol as ConeCallableSymbol - callableSymbols += symbol - } + val declarationId = when (declaration) { + is FirConstructor -> { + CallableId(callableId.packageName, callableId.className, firClass.name) } + is FirCallableMember -> { + CallableId(callableId.packageName, callableId.className, declaration.name) + } + else -> null + } + if (declarationId == callableId) { + val symbol = (declaration as FirCallableMember).symbol as ConeCallableSymbol + callableSymbols += symbol } } callableSymbols @@ -118,18 +122,32 @@ class JavaSymbolProvider( } addAnnotationsFrom(javaMethod) for (valueParameter in javaMethod.valueParameters) { - val parameterType = valueParameter.type - valueParameters += FirJavaValueParameter( - session, valueParameter.name ?: Name.special(""), - returnTypeRef = parameterType.toFirJavaTypeRef(session), - isVararg = valueParameter.isVararg - ).apply { - addAnnotationsFrom(valueParameter) - } + valueParameters += valueParameter.toFirValueParameters(session) } } declarations += firJavaMethod } + for (javaConstructor in javaClass.constructors) { + val constructorId = CallableId(classId.packageFqName, classId.relativeClassName, classId.shortClassName) + val constructorSymbol = FirFunctionSymbol(constructorId) + val firJavaConstructor = FirJavaConstructor( + session, constructorSymbol, javaConstructor.visibility, + FirResolvedTypeRefImpl( + session, null, + firSymbol.constructType(emptyArray(), false), + false, emptyList() + ) + ).apply { + for (typeParameter in javaConstructor.typeParameters) { + typeParameters += createTypeParameterSymbol(session, typeParameter.name).fir + } + addAnnotationsFrom(javaConstructor) + for (valueParameter in javaConstructor.valueParameters) { + valueParameters += valueParameter.toFirValueParameters(session) + } + } + declarations += firJavaConstructor + } } } } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt index 8109cecc0d7..26ac1d0ed70 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt @@ -9,11 +9,13 @@ import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirTypeParameter +import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.impl.FirTypeParameterImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.impl.* +import org.jetbrains.kotlin.fir.java.declarations.FirJavaValueParameter import org.jetbrains.kotlin.fir.java.types.FirJavaTypeRef import org.jetbrains.kotlin.fir.references.FirErrorNamedReference import org.jetbrains.kotlin.fir.references.FirResolvedCallableReferenceImpl @@ -176,6 +178,16 @@ internal fun FirAbstractAnnotatedElement.addAnnotationsFrom(javaAnnotationOwner: } } +internal fun JavaValueParameter.toFirValueParameters(session: FirSession): FirValueParameter { + return FirJavaValueParameter( + session, name ?: Name.special(""), + returnTypeRef = type.toFirJavaTypeRef(session), + isVararg = isVararg + ).apply { + addAnnotationsFrom(this@toFirValueParameters) + } +} + internal fun JavaType?.toConeProjection(session: FirSession, boundTypeParameter: FirTypeParameter?): ConeKotlinTypeProjection { return when (this) { null -> ConeStarProjection diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt new file mode 100644 index 00000000000..a25a78546ca --- /dev/null +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt @@ -0,0 +1,36 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.java.declarations + +import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.descriptors.Visibility +import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.declarations.FirConstructor +import org.jetbrains.kotlin.fir.declarations.FirValueParameter +import org.jetbrains.kotlin.fir.declarations.impl.FirAbstractCallableMember +import org.jetbrains.kotlin.fir.declarations.impl.FirConstructorImpl.Companion.NAME +import org.jetbrains.kotlin.fir.expressions.FirBlock +import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall +import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol +import org.jetbrains.kotlin.fir.types.FirTypeRef + +class FirJavaConstructor( + session: FirSession, + symbol: FirFunctionSymbol, + visibility: Visibility, + delegatedSelfTypeRef: FirTypeRef +) : FirAbstractCallableMember( + session, psi = null, symbol = symbol, name = NAME, visibility = visibility, modality = Modality.FINAL, + isExpect = false, isActual = false, isOverride = false, receiverTypeRef = null, returnTypeRef = delegatedSelfTypeRef +), FirConstructor { + override val delegatedConstructor: FirDelegatedConstructorCall? + get() = null + + override val body: FirBlock? + get() = null + + override val valueParameters = mutableListOf() +} \ No newline at end of file diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassEnhancementScope.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassEnhancementScope.kt index 4eff5e4eb6d..06d29838e59 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassEnhancementScope.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassEnhancementScope.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.* import org.jetbrains.kotlin.fir.expressions.FirAnnotationContainer +import org.jetbrains.kotlin.fir.java.declarations.FirJavaConstructor import org.jetbrains.kotlin.fir.java.declarations.FirJavaField import org.jetbrains.kotlin.fir.java.declarations.FirJavaMethod import org.jetbrains.kotlin.fir.java.declarations.FirJavaValueParameter @@ -102,7 +103,9 @@ class JavaClassEnhancementScope( original: ConeFunctionSymbol, name: Name ): FirFunctionSymbol { - val firMethod = (original as FirFunctionSymbol).fir as? FirJavaMethod ?: return original + val firMethod = (original as FirFunctionSymbol).fir as? FirFunction + + if (firMethod !is FirJavaMethod && firMethod !is FirJavaConstructor || firMethod !is FirCallableMember) return original val memberContext = context.copyWithNewDefaultTypeQualifiers(typeQualifierResolver, jsr305State, firMethod.annotations) @@ -117,8 +120,14 @@ class JavaClassEnhancementScope( } } - val newReceiverTypeRef = if (firMethod.receiverTypeRef != null) enhanceReceiverType(firMethod, memberContext) else null - val newReturnTypeRef = enhanceReturnType(firMethod, memberContext, predefinedEnhancementInfo) + val newReceiverTypeRef = if (firMethod is FirJavaMethod && firMethod.receiverTypeRef != null) { + enhanceReceiverType(firMethod, memberContext) + } else null + val newReturnTypeRef = if (firMethod is FirJavaConstructor) { + firMethod.returnTypeRef + } else { + enhanceReturnType(firMethod, memberContext, predefinedEnhancementInfo) + } val newValueParameterTypeRefs = mutableListOf() @@ -134,7 +143,7 @@ class JavaClassEnhancementScope( session, null, symbol, name, newReceiverTypeRef, newReturnTypeRef ).apply { - status = firMethod.status + status = firMethod.status as FirDeclarationStatusImpl annotations += firMethod.annotations valueParameters += firMethod.valueParameters.zip(newValueParameterTypeRefs) { valueParameter, newTypeRef -> with(valueParameter) { @@ -152,8 +161,12 @@ class JavaClassEnhancementScope( return symbol } - private fun FirJavaMethod.computeJvmDescriptor(): String = buildString { - append(name.asString()) // TODO: Java constructors + private fun FirFunction.computeJvmDescriptor(): String = buildString { + if (this@computeJvmDescriptor is FirJavaMethod) { + append(name.asString()) + } else { + append("") + } append("(") for (parameter in valueParameters) { @@ -161,7 +174,7 @@ class JavaClassEnhancementScope( } append(")") - if ((returnTypeRef as FirJavaTypeRef).isVoid()) { + if (this@computeJvmDescriptor !is FirJavaMethod || (returnTypeRef as FirJavaTypeRef).isVoid()) { append("V") } else { // TODO: appendErasedType(returnTypeRef) @@ -189,7 +202,7 @@ class JavaClassEnhancementScope( } private fun enhanceValueParameterType( - ownerFunction: FirJavaMethod, + ownerFunction: FirCallableMember, memberContext: FirJavaEnhancementContext, predefinedEnhancementInfo: PredefinedFunctionEnhancementInfo?, ownerParameter: FirJavaValueParameter, diff --git a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/java/AbstractFirTypeEnhancementTest.kt b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/java/AbstractFirTypeEnhancementTest.kt index 21c8f289d13..385ce38d369 100644 --- a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/java/AbstractFirTypeEnhancementTest.kt +++ b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/java/AbstractFirTypeEnhancementTest.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.fir.FirRenderer import org.jetbrains.kotlin.fir.createSession import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass +import org.jetbrains.kotlin.fir.java.declarations.FirJavaConstructor import org.jetbrains.kotlin.fir.java.declarations.FirJavaField import org.jetbrains.kotlin.fir.java.declarations.FirJavaMethod import org.jetbrains.kotlin.fir.java.scopes.JavaClassEnhancementScope @@ -187,6 +188,15 @@ abstract class AbstractFirTypeEnhancementTest : KtUsefulTestCase() { for (declaration in javaClass.declarations) { if (declaration in renderedDeclarations) continue when (declaration) { + is FirJavaConstructor -> enhancementScope.processFunctionsByName(javaClass.name) { symbol -> + val enhanced = (symbol as? FirFunctionSymbol)?.fir + if (enhanced != null && enhanced !in renderedDeclarations) { + enhanced.accept(renderer, null) + renderer.newLine() + renderedDeclarations += enhanced + } + ProcessorAction.NEXT + } is FirJavaMethod -> enhancementScope.processFunctionsByName(declaration.name) { symbol -> val enhanced = (symbol as? FirFunctionSymbol)?.fir if (enhanced != null && enhanced !in renderedDeclarations) { diff --git a/compiler/testData/loadJava/compiledJava/MyException.fir.txt b/compiler/testData/loadJava/compiledJava/MyException.fir.txt index 1965f9bfacf..86bd6633c4e 100644 --- a/compiler/testData/loadJava/compiledJava/MyException.fir.txt +++ b/compiler/testData/loadJava/compiledJava/MyException.fir.txt @@ -1,2 +1,4 @@ public open class MyException : R|java/lang/Object| { + public final function MyException(message: R|ft|!, cause: R|ft|!): R|test/MyException| + } diff --git a/compiler/testData/loadJava/compiledJava/PackageLocalVisibility.fir.txt b/compiler/testData/loadJava/compiledJava/PackageLocalVisibility.fir.txt index 8e4e0db5688..e05600b74ca 100644 --- a/compiler/testData/loadJava/compiledJava/PackageLocalVisibility.fir.txt +++ b/compiler/testData/loadJava/compiledJava/PackageLocalVisibility.fir.txt @@ -9,4 +9,6 @@ public open class JFrame : R|awt/Frame| { protected/*protected and package*/ get(): R|ft|! protected/*protected and package*/ set(value: R|ft|!): kotlin/Unit + public final function JFrame(): R|test/JFrame| + } diff --git a/compiler/testData/loadJava/compiledJava/PrivateMembers.fir.txt b/compiler/testData/loadJava/compiledJava/PrivateMembers.fir.txt index 46acfe8ba72..931bc31d136 100644 --- a/compiler/testData/loadJava/compiledJava/PrivateMembers.fir.txt +++ b/compiler/testData/loadJava/compiledJava/PrivateMembers.fir.txt @@ -5,4 +5,6 @@ public open class PrivateMembers : R|java/lang/Object| { private open operator function method(): R|kotlin/Unit| + private final function PrivateMembers(): R|test/PrivateMembers| + } diff --git a/compiler/testData/loadJava/compiledJava/Simple.fir.txt b/compiler/testData/loadJava/compiledJava/Simple.fir.txt index 7393ecfcc1a..ad642fd2ec3 100644 --- a/compiler/testData/loadJava/compiledJava/Simple.fir.txt +++ b/compiler/testData/loadJava/compiledJava/Simple.fir.txt @@ -1,2 +1,4 @@ public final class Simple : R|java/lang/Object| { + public final function Simple(): R|test/Simple| + } diff --git a/compiler/testData/loadJava/compiledJava/annotations/AnnotatedConstructor.fir.txt b/compiler/testData/loadJava/compiledJava/annotations/AnnotatedConstructor.fir.txt index 54b9cc6596d..207cdf12e35 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/AnnotatedConstructor.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/AnnotatedConstructor.fir.txt @@ -1,2 +1,4 @@ public open class AnnotatedConstructor : R|java/lang/Object| { + @R|test/AnnotatedConstructor.Anno|(String(constructor)) public final function AnnotatedConstructor(): R|test/AnnotatedConstructor| + } diff --git a/compiler/testData/loadJava/compiledJava/annotations/EnumConstructorParameter.fir.txt b/compiler/testData/loadJava/compiledJava/annotations/EnumConstructorParameter.fir.txt index eeac732ff7d..7c700b99d34 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/EnumConstructorParameter.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/EnumConstructorParameter.fir.txt @@ -1,2 +1,6 @@ public final enum class EnumConstructorParameter : R|java/lang/Enum| { + private final function EnumConstructorParameter(@R|test/EnumConstructorParameter.Anno|(String(string)) s: R|ft|!): R|test/EnumConstructorParameter| + + private final function EnumConstructorParameter(x: R|kotlin/Int|): R|test/EnumConstructorParameter| + } diff --git a/compiler/testData/loadJava/compiledJava/constructor/ConstructorGenericDeep.fir.txt b/compiler/testData/loadJava/compiledJava/constructor/ConstructorGenericDeep.fir.txt index fe839a84173..35aca64b919 100644 --- a/compiler/testData/loadJava/compiledJava/constructor/ConstructorGenericDeep.fir.txt +++ b/compiler/testData/loadJava/compiledJava/constructor/ConstructorGenericDeep.fir.txt @@ -1,2 +1,4 @@ public open class ConstructorGenericDeep : R|java/lang/Object| { + public final function ConstructorGenericDeep(cl: R|ft>, java/lang/Class>?>|!): R|test/ConstructorGenericDeep| + } diff --git a/compiler/testData/loadJava/compiledJava/constructor/ConstructorGenericSimple.fir.txt b/compiler/testData/loadJava/compiledJava/constructor/ConstructorGenericSimple.fir.txt index 1ad58206389..9cb492cd422 100644 --- a/compiler/testData/loadJava/compiledJava/constructor/ConstructorGenericSimple.fir.txt +++ b/compiler/testData/loadJava/compiledJava/constructor/ConstructorGenericSimple.fir.txt @@ -1,2 +1,4 @@ public open class ConstructorGenericSimple : R|java/lang/Object| { + public final function ConstructorGenericSimple(p: R|ft|!): R|test/ConstructorGenericSimple| + } diff --git a/compiler/testData/loadJava/compiledJava/constructor/ConstructorGenericUpperBound.fir.txt b/compiler/testData/loadJava/compiledJava/constructor/ConstructorGenericUpperBound.fir.txt index e567ce9a37d..311cf389ac7 100644 --- a/compiler/testData/loadJava/compiledJava/constructor/ConstructorGenericUpperBound.fir.txt +++ b/compiler/testData/loadJava/compiledJava/constructor/ConstructorGenericUpperBound.fir.txt @@ -1,2 +1,4 @@ public open class ConstructorGenericUpperBound : R|java/lang/Object| { + public final function ConstructorGenericUpperBound(p: R|ft|!): R|test/ConstructorGenericUpperBound| + } diff --git a/compiler/testData/loadJava/compiledJava/enum/EnumMembers.fir.txt b/compiler/testData/loadJava/compiledJava/enum/EnumMembers.fir.txt index 90b6d4326b4..0272b05bca5 100644 --- a/compiler/testData/loadJava/compiledJava/enum/EnumMembers.fir.txt +++ b/compiler/testData/loadJava/compiledJava/enum/EnumMembers.fir.txt @@ -4,4 +4,6 @@ public final enum class EnumMembers : R|java/lang/Enum| { public open operator function first(): R|kotlin/Boolean| + private final function EnumMembers(isFirst: R|kotlin/Boolean|): R|test/EnumMembers| + } diff --git a/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithNewTypeParams.fir.txt b/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithNewTypeParams.fir.txt index bc8256081fa..cf343621db0 100644 --- a/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithNewTypeParams.fir.txt +++ b/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithNewTypeParams.fir.txt @@ -1,2 +1,4 @@ public open class ConstructorWithNewTypeParams : R|java/lang/Object| { + public final function ConstructorWithNewTypeParams(first: R|ft|!): R|test/ConstructorWithNewTypeParams| + } diff --git a/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithParentTypeParams.fir.txt b/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithParentTypeParams.fir.txt index 6698c7fcb27..5e4dae958cb 100644 --- a/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithParentTypeParams.fir.txt +++ b/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithParentTypeParams.fir.txt @@ -1,2 +1,4 @@ public open class ConstructorWithParentTypeParams : R|java/lang/Object| { + public final function ConstructorWithParentTypeParams(first: R|ft|!): R|test/ConstructorWithParentTypeParams| + } diff --git a/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithSeveralParams.fir.txt b/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithSeveralParams.fir.txt index 06039d270c3..0c5478c8abd 100644 --- a/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithSeveralParams.fir.txt +++ b/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithSeveralParams.fir.txt @@ -1,2 +1,4 @@ public open class ConstructorWithSeveralParams : R|java/lang/Object| { + public final function ConstructorWithSeveralParams(integer: R|ft|!, intBasic: R|kotlin/Int|, collection: R|ft>, java/util/ArrayList>?>|!): R|test/ConstructorWithSeveralParams| + } diff --git a/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithoutParams.fir.txt b/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithoutParams.fir.txt index 15f80d062ff..28683b57d7a 100644 --- a/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithoutParams.fir.txt +++ b/compiler/testData/loadJava/compiledJava/kotlinSignature/ConstructorWithoutParams.fir.txt @@ -1,2 +1,4 @@ public open class ConstructorWithoutParams : R|java/lang/Object| { + public final function ConstructorWithoutParams(): R|test/ConstructorWithoutParams| + } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/Constructor.fir.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/Constructor.fir.txt index cf214ee5e6d..df442abb42e 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/Constructor.fir.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/Constructor.fir.txt @@ -1,2 +1,4 @@ public open class Constructor : R|java/lang/Object| { + public final function Constructor(r: R|ft|!): R|test/Constructor| + } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/ConstructorWithAnnotations.fir.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/ConstructorWithAnnotations.fir.txt index 957ff4e5829..29b4cc1b39e 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/ConstructorWithAnnotations.fir.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/ConstructorWithAnnotations.fir.txt @@ -1,2 +1,4 @@ public open class ConstructorWithAnnotations : R|java/lang/Object| { + public final function ConstructorWithAnnotations(r: R|ft|!, @R|org/jetbrains/annotations/NotNull|() s: R|ft|): R|test/ConstructorWithAnnotations| + }