From f91e1fa7fd09ecd18767ea13d620a397b48e708b Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Sat, 4 Mar 2023 00:43:04 +0100 Subject: [PATCH] Psi2Ir: make most declarations internal, remove unused The main motivation is to avoid pollution in autocompletion in IDE, and avoid clashes for some common names. A lot of stuff was declared public seemingly by accident. It is only used, and can only be meaningfully used, from within the psi2ir module. --- .../jetbrains/kotlin/psi2ir/KotlinUtils.kt | 20 ++++----- .../psi2ir/generators/AnnotationGenerator.kt | 2 +- .../AnonymousInitializerGenerator.kt | 2 +- .../generators/ArgumentsGenerationUtils.kt | 42 +++++++++---------- .../psi2ir/generators/AssignmentGenerator.kt | 2 +- .../kotlin/psi2ir/generators/BodyGenerator.kt | 4 +- .../BranchingExpressionGenerator.kt | 2 +- .../kotlin/psi2ir/generators/CallGenerator.kt | 13 +++--- .../psi2ir/generators/ClassGenerator.kt | 2 +- .../generators/ConstantValueGeneratorImpl.kt | 2 +- .../generators/DataClassMembersGenerator.kt | 2 +- .../psi2ir/generators/DeclarationGenerator.kt | 2 +- .../generators/DelegatedPropertyGenerator.kt | 4 +- .../DescriptorStorageForContextReceivers.kt | 2 +- .../generators/ErrorExpressionGenerator.kt | 2 +- .../psi2ir/generators/FunctionGenerator.kt | 2 +- .../kotlin/psi2ir/generators/Generator.kt | 25 +++++------ .../psi2ir/generators/GeneratorContext.kt | 2 +- .../IrSyntheticDeclarationGenerator.kt | 2 +- .../psi2ir/generators/LocalClassGenerator.kt | 2 +- .../generators/LocalFunctionGenerator.kt | 4 +- .../generators/LoopExpressionGenerator.kt | 4 +- .../psi2ir/generators/OperatorConventions.kt | 28 ++++++------- .../generators/OperatorExpressionGenerator.kt | 3 +- .../psi2ir/generators/PropertyGenerator.kt | 4 +- .../ReflectionReferencesGenerator.kt | 4 +- .../psi2ir/generators/ScriptGenerator.kt | 2 +- .../StandaloneDeclarationGenerator.kt | 2 +- .../psi2ir/generators/StatementGenerator.kt | 4 +- .../SyntheticDeclarationsGenerator.kt | 2 +- .../generators/TryCatchExpressionGenerator.kt | 2 +- .../psi2ir/generators/samConversions.kt | 8 ++-- .../ArrayAccessAssignmentReceiver.kt | 2 +- .../psi2ir/intermediate/BackingFieldLValue.kt | 3 +- .../kotlin/psi2ir/intermediate/CallBuilder.kt | 37 ++++++---------- .../DelegatedLocalPropertyLValue.kt | 2 +- .../intermediate/DynamicMemberLValue.kt | 4 +- .../ExtensionInvokeCallReceiver.kt | 4 +- .../kotlin/psi2ir/intermediate/IrUtils.kt | 8 ++-- .../LValueWithGetterAndSetterCalls.kt | 3 +- .../intermediate/OnceExpressionValue.kt | 9 ++-- .../psi2ir/intermediate/PropertyLValue.kt | 8 ++-- .../intermediate/RematerializableValue.kt | 12 +----- .../psi2ir/intermediate/SafeCallReceiver.kt | 8 ++-- .../SafeExtensionInvokeCallReceiver.kt | 9 ++-- .../psi2ir/intermediate/SimpleCallReceiver.kt | 2 +- .../SpecialExpressionAssignmentReceiver.kt | 4 +- .../intermediate/TransientReceiverValue.kt | 3 +- .../kotlin/psi2ir/intermediate/Values.kt | 10 ++--- .../psi2ir/intermediate/VariableLValue.kt | 4 +- .../transformations/InsertImplicitCasts.kt | 2 +- 51 files changed, 151 insertions(+), 186 deletions(-) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/KotlinUtils.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/KotlinUtils.kt index ea42b3a0af1..5c3cad3f3ff 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/KotlinUtils.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/KotlinUtils.kt @@ -33,13 +33,13 @@ import org.jetbrains.kotlin.resolve.scopes.MemberScope import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.TypeUtils -fun KotlinType.containsNull() = +internal fun KotlinType.containsNull(): Boolean = TypeUtils.isNullableType(this) fun KtElement.deparenthesize(): KtElement = if (this is KtExpression) KtPsiUtil.safeDeparenthesize(this) else this -fun ResolvedCall<*>.isValueArgumentReorderingRequired(): Boolean { +internal fun ResolvedCall<*>.isValueArgumentReorderingRequired(): Boolean { var lastValueParameterIndex = -1 for (valueArgument in call.valueArguments) { val argumentMapping = @@ -53,7 +53,7 @@ fun ResolvedCall<*>.isValueArgumentReorderingRequired(): Boolean { return false } -fun KtSecondaryConstructor.isConstructorDelegatingToSuper(bindingContext: BindingContext): Boolean { +internal fun KtSecondaryConstructor.isConstructorDelegatingToSuper(bindingContext: BindingContext): Boolean { val constructorDescriptor = bindingContext.get(BindingContext.CONSTRUCTOR, this) ?: return false val delegatingResolvedCall = getDelegationCall().getResolvedCall(bindingContext) return if (delegatingResolvedCall != null) { @@ -68,13 +68,13 @@ fun KtSecondaryConstructor.isConstructorDelegatingToSuper(bindingContext: Bindin fun MemberScope.findSingleFunction(name: Name): FunctionDescriptor = getContributedFunctions(name, NoLookupLocation.FROM_BACKEND).single() -val PsiElement?.startOffsetOrUndefined get() = this?.startOffsetSkippingComments ?: UNDEFINED_OFFSET -val PsiElement?.endOffsetOrUndefined get() = this?.endOffset ?: UNDEFINED_OFFSET +internal val PsiElement?.startOffsetOrUndefined get() = this?.startOffsetSkippingComments ?: UNDEFINED_OFFSET +internal val PsiElement?.endOffsetOrUndefined get() = this?.endOffset ?: UNDEFINED_OFFSET -val PropertyDescriptor.unwrappedGetMethod: FunctionDescriptor? +internal val PropertyDescriptor.unwrappedGetMethod: FunctionDescriptor? get() = if (this is SyntheticPropertyDescriptor) this.getMethod else getter -val PropertyDescriptor.unwrappedSetMethod: FunctionDescriptor? +internal val PropertyDescriptor.unwrappedSetMethod: FunctionDescriptor? get() = if (this is SyntheticPropertyDescriptor) this.setMethod else setter // Only works for descriptors of Java fields. @@ -90,7 +90,7 @@ internal fun PropertyDescriptor.resolveFakeOverride(): PropertyDescriptor { return current } -val KtPureElement?.pureStartOffsetOrUndefined get() = this?.psiOrParent?.startOffsetSkippingComments ?: UNDEFINED_OFFSET -val KtPureElement?.pureEndOffsetOrUndefined get() = this?.psiOrParent?.endOffset ?: UNDEFINED_OFFSET +internal val KtPureElement?.pureStartOffsetOrUndefined get() = this?.psiOrParent?.startOffsetSkippingComments ?: UNDEFINED_OFFSET +internal val KtPureElement?.pureEndOffsetOrUndefined get() = this?.psiOrParent?.endOffset ?: UNDEFINED_OFFSET -fun KtElement.getChildTokenStartOffsetOrNull(tokenSet: TokenSet) = node.findChildByType(tokenSet)?.startOffset +internal fun KtElement.getChildTokenStartOffsetOrNull(tokenSet: TokenSet) = node.findChildByType(tokenSet)?.startOffset diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AnnotationGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AnnotationGenerator.kt index 81c01709553..78d4944627b 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AnnotationGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AnnotationGenerator.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.ir.expressions.IrCall import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid -class AnnotationGenerator(context: GeneratorContext) : IrElementVisitorVoid { +internal class AnnotationGenerator(context: GeneratorContext) : IrElementVisitorVoid { private val typeTranslator = context.typeTranslator private val constantValueGenerator = context.constantValueGenerator diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AnonymousInitializerGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AnonymousInitializerGenerator.kt index 33d6ba97b3e..a50c9e87477 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AnonymousInitializerGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AnonymousInitializerGenerator.kt @@ -24,7 +24,7 @@ import org.jetbrains.kotlin.psi.KtBlockExpression import org.jetbrains.kotlin.psi.psiUtil.endOffset import org.jetbrains.kotlin.psi.psiUtil.startOffsetSkippingComments -class AnonymousInitializerGenerator( +internal class AnonymousInitializerGenerator( declarationGenerator: DeclarationGenerator ) : DeclarationGeneratorExtension(declarationGenerator) { diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ArgumentsGenerationUtils.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ArgumentsGenerationUtils.kt index e05c092b881..caa25e8536b 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ArgumentsGenerationUtils.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ArgumentsGenerationUtils.kt @@ -54,10 +54,10 @@ import org.jetbrains.kotlin.util.OperatorNameConventions import kotlin.math.max import kotlin.math.min -fun StatementGenerator.generateReceiverOrNull(ktDefaultElement: KtElement, receiver: ReceiverValue?): IntermediateValue? = +internal fun StatementGenerator.generateReceiverOrNull(ktDefaultElement: KtElement, receiver: ReceiverValue?): IntermediateValue? = receiver?.let { generateReceiver(ktDefaultElement, receiver) } -fun StatementGenerator.generateContextReceiverForDelegatingConstructorCall( +private fun StatementGenerator.generateContextReceiverForDelegatingConstructorCall( ktDefaultElement: KtElement, receiver: ContextClassReceiver? ): IntermediateValue? = @@ -69,7 +69,7 @@ fun StatementGenerator.generateContextReceiverForDelegatingConstructorCall( ) } -fun StatementGenerator.generateContextReceiverForDelegatingConstructorCall( +private fun StatementGenerator.generateContextReceiverForDelegatingConstructorCall( defaultStartOffset: Int, defaultEndOffset: Int, receiver: ContextClassReceiver @@ -85,10 +85,10 @@ fun StatementGenerator.generateContextReceiverForDelegatingConstructorCall( } } -fun StatementGenerator.generateReceiver(ktDefaultElement: KtElement, receiver: ReceiverValue): IntermediateValue = +private fun StatementGenerator.generateReceiver(ktDefaultElement: KtElement, receiver: ReceiverValue): IntermediateValue = generateReceiver(ktDefaultElement.startOffsetSkippingComments, ktDefaultElement.endOffset, receiver) -fun StatementGenerator.generateReceiver(defaultStartOffset: Int, defaultEndOffset: Int, receiver: ReceiverValue): IntermediateValue { +private fun StatementGenerator.generateReceiver(defaultStartOffset: Int, defaultEndOffset: Int, receiver: ReceiverValue): IntermediateValue { val irReceiverType = when (receiver) { is ExtensionReceiver -> @@ -145,7 +145,7 @@ fun StatementGenerator.generateReceiver(defaultStartOffset: Int, defaultEndOffse } } -fun StatementGenerator.loadContextReceiver( +internal fun StatementGenerator.loadContextReceiver( receiver: ContextClassReceiver, defaultStartOffset: Int, defaultEndOffset: Int, ): IrGetFieldImpl { @@ -165,7 +165,7 @@ fun StatementGenerator.loadContextReceiver( } -fun StatementGenerator.generateSingletonReference( +internal fun StatementGenerator.generateSingletonReference( descriptor: ClassDescriptor, startOffset: Int, endOffset: Int, @@ -216,7 +216,7 @@ fun IrExpression.implicitCastTo(expectedType: IrType?): IrExpression { return IrTypeOperatorCallImpl(startOffset, endOffset, expectedType, IrTypeOperator.IMPLICIT_CAST, expectedType, this) } -fun StatementGenerator.generateBackingFieldReceiver( +internal fun StatementGenerator.generateBackingFieldReceiver( startOffset: Int, endOffset: Int, resolvedCall: ResolvedCall<*>?, @@ -226,7 +226,7 @@ fun StatementGenerator.generateBackingFieldReceiver( return this.generateReceiver(startOffset, endOffset, receiver) } -fun StatementGenerator.generateCallReceiver( +internal fun StatementGenerator.generateCallReceiver( ktDefaultElement: KtElement, calleeDescriptor: CallableDescriptor, dispatchReceiver: ReceiverValue?, @@ -355,11 +355,11 @@ private fun StatementGenerator.generateVarargExpressionUsing( return irVararg } -fun StatementGenerator.generateValueArgument( +private fun StatementGenerator.generateValueArgument( valueArgument: ResolvedValueArgument, valueParameter: ValueParameterDescriptor, resolvedCall: ResolvedCall<*> -) = generateValueArgumentUsing(valueArgument, valueParameter, resolvedCall) { generateExpression(it) } +): IrExpression? = generateValueArgumentUsing(valueArgument, valueParameter, resolvedCall) { generateExpression(it) } private fun StatementGenerator.generateValueArgumentUsing( valueArgument: ResolvedValueArgument, @@ -500,21 +500,21 @@ private fun StatementGenerator.createFunctionForSuspendConversion( return irAdapterFun } -fun StatementGenerator.castArgumentToFunctionalInterfaceForSamType(irExpression: IrExpression, samType: KotlinType): IrExpression { +internal fun StatementGenerator.castArgumentToFunctionalInterfaceForSamType(irExpression: IrExpression, samType: KotlinType): IrExpression { val kotlinFunctionType = samType.getSubstitutedFunctionTypeForSamType() val irFunctionType = context.typeTranslator.translateType(kotlinFunctionType) return irExpression.implicitCastTo(irFunctionType) } -fun Generator.getSuperQualifier(resolvedCall: ResolvedCall<*>): ClassDescriptor? { +internal fun Generator.getSuperQualifier(resolvedCall: ResolvedCall<*>): ClassDescriptor? { val superCallExpression = getSuperCallExpression(resolvedCall.call) ?: return null return getOrFail(BindingContext.REFERENCE_TARGET, superCallExpression.instanceReference) as ClassDescriptor } -fun StatementGenerator.pregenerateCall(resolvedCall: ResolvedCall<*>): CallBuilder = +internal fun StatementGenerator.pregenerateCall(resolvedCall: ResolvedCall<*>): CallBuilder = pregenerateCallUsing(resolvedCall) { generateExpression(it) } -fun StatementGenerator.pregenerateCallUsing( +internal fun StatementGenerator.pregenerateCallUsing( resolvedCall: ResolvedCall<*>, generateArgumentExpression: (KtExpression) -> IrExpression? ): CallBuilder { @@ -527,7 +527,7 @@ fun StatementGenerator.pregenerateCallUsing( return call } -fun getTypeArguments(resolvedCall: ResolvedCall<*>?): Map? { +internal fun getTypeArguments(resolvedCall: ResolvedCall<*>?): Map? { if (resolvedCall == null) return null val descriptor = resolvedCall.resultingDescriptor @@ -537,7 +537,7 @@ fun getTypeArguments(resolvedCall: ResolvedCall<*>?): Map): CallBuilder { +private fun StatementGenerator.pregenerateExtensionInvokeCall(resolvedCall: ResolvedCall<*>): CallBuilder { val extensionInvoke = resolvedCall.resultingDescriptor val functionNClass = extensionInvoke.containingDeclaration as? ClassDescriptor ?: throw AssertionError("'invoke' should be a class member: $extensionInvoke") @@ -606,7 +606,7 @@ private fun ResolvedCall<*>.isExtensionInvokeCall(): Boolean { return extensionReceiver != null } -fun StatementGenerator.generateSamConversionForValueArgumentsIfRequired(call: CallBuilder, resolvedCall: ResolvedCall<*>) { +internal fun StatementGenerator.generateSamConversionForValueArgumentsIfRequired(call: CallBuilder, resolvedCall: ResolvedCall<*>) { val samConversion = context.extensions.samConversion val originalDescriptor = resolvedCall.resultingDescriptor @@ -751,7 +751,7 @@ private fun StatementGenerator.getSamTypeForValueParameter(valueParameter: Value ) } -fun StatementGenerator.pregenerateValueArgumentsUsing( +internal fun StatementGenerator.pregenerateValueArgumentsUsing( call: CallBuilder, resolvedCall: ResolvedCall<*>, generateArgumentExpression: (KtExpression) -> IrExpression? @@ -763,7 +763,7 @@ fun StatementGenerator.pregenerateValueArgumentsUsing( } } -fun StatementGenerator.pregenerateCallReceivers(resolvedCall: ResolvedCall<*>): CallBuilder { +internal fun StatementGenerator.pregenerateCallReceivers(resolvedCall: ResolvedCall<*>): CallBuilder { val call = unwrapCallableDescriptorAndTypeArguments(resolvedCall) call.callReceiver = generateCallReceiver( @@ -790,7 +790,7 @@ private fun unwrapSpecialDescriptor(descriptor: CallableDescriptor): CallableDes descriptor.getOriginalForFunctionInterfaceAdapter()?.let { unwrapSpecialDescriptor(it) } ?: descriptor } -fun unwrapCallableDescriptorAndTypeArguments(resolvedCall: ResolvedCall<*>): CallBuilder { +internal fun unwrapCallableDescriptorAndTypeArguments(resolvedCall: ResolvedCall<*>): CallBuilder { val originalDescriptor = resolvedCall.resultingDescriptor val candidateDescriptor = resolvedCall.candidateDescriptor diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AssignmentGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AssignmentGenerator.kt index db957b5410e..b9e6969e662 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AssignmentGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AssignmentGenerator.kt @@ -41,7 +41,7 @@ import org.jetbrains.kotlin.resolve.calls.tasks.isDynamic import org.jetbrains.kotlin.resolve.calls.util.FakeCallableDescriptorForObject import org.jetbrains.kotlin.types.KotlinType -class AssignmentGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { +internal class AssignmentGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { fun generateAssignment(ktExpression: KtBinaryExpression, origin: IrStatementOrigin): IrExpression { return if (getResolvedCall(ktExpression) != null) { diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BodyGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BodyGenerator.kt index 4b747989e3b..ca4293efd4f 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BodyGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BodyGenerator.kt @@ -39,11 +39,11 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassOrAny import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.typeUtil.isUnit -interface LoopResolver { +internal interface LoopResolver { fun getLoop(expression: KtExpression): IrLoop? } -class BodyGenerator( +internal class BodyGenerator( val scopeOwnerSymbol: IrSymbol, override val context: GeneratorContext, private val parentLoopResolver: LoopResolver? diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BranchingExpressionGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BranchingExpressionGenerator.kt index c21910aabf7..7ef130de461 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BranchingExpressionGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/BranchingExpressionGenerator.kt @@ -35,7 +35,7 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression import org.jetbrains.kotlin.utils.SmartList -class BranchingExpressionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { +internal class BranchingExpressionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { fun generateIfExpression(expression: KtIfExpression): IrExpression { var ktLastIf: KtIfExpression = expression diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/CallGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/CallGenerator.kt index 2343a8b5752..89dd53ba54e 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/CallGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/CallGenerator.kt @@ -38,7 +38,7 @@ import org.jetbrains.kotlin.resolve.calls.util.FakeCallableDescriptorForObject import org.jetbrains.kotlin.resolve.descriptorUtil.classValueType import org.jetbrains.kotlin.types.KotlinType -class CallGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { +internal class CallGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { fun generateCall(startOffset: Int, endOffset: Int, call: CallBuilder, origin: IrStatementOrigin? = null): IrExpression { val descriptor = call.descriptor @@ -454,23 +454,24 @@ class CallGenerator(statementGenerator: StatementGenerator) : StatementGenerator } } -fun IrExpression.isUnchanging() = +fun IrExpression.isUnchanging(): Boolean = this is IrFunctionExpression || (this is IrCallableReference<*> && dispatchReceiver == null && extensionReceiver == null) || this is IrClassReference || this is IrConst<*> || (this is IrGetValue && !symbol.owner.let { it is IrVariable && it.isVar }) -fun IrExpression.hasNoSideEffects() = isUnchanging() || this is IrGetValue +fun IrExpression.hasNoSideEffects(): Boolean = + isUnchanging() || this is IrGetValue -fun CallGenerator.generateCall( +internal fun CallGenerator.generateCall( ktElement: KtElement, call: CallBuilder, origin: IrStatementOrigin? = null, startOffset: Int = ktElement.startOffsetSkippingComments, endOffset: Int = ktElement.endOffset, -) = +): IrExpression = generateCall(startOffset, endOffset, call, origin) -fun CallGenerator.generateCall(irExpression: IrExpression, call: CallBuilder, origin: IrStatementOrigin? = null) = +internal fun CallGenerator.generateCall(irExpression: IrExpression, call: CallBuilder, origin: IrStatementOrigin? = null): IrExpression = generateCall(irExpression.startOffset, irExpression.endOffset, call, origin) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt index 85bf184e9c1..275d14974c8 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt @@ -57,7 +57,7 @@ import org.jetbrains.kotlin.types.TypeSubstitutor import org.jetbrains.kotlin.utils.newHashMapWithExpectedSize @ObsoleteDescriptorBasedAPI -class ClassGenerator( +internal class ClassGenerator( declarationGenerator: DeclarationGenerator ) : DeclarationGeneratorExtension(declarationGenerator) { fun generateClass(ktClassOrObject: KtPureClassOrObject, visibility_: DescriptorVisibility? = null): IrClass { diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ConstantValueGeneratorImpl.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ConstantValueGeneratorImpl.kt index ecfedc6d69b..8f5cb4a0988 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ConstantValueGeneratorImpl.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ConstantValueGeneratorImpl.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.psi.psiUtil.startOffset import org.jetbrains.kotlin.resolve.lazy.descriptors.getSourceForArgument import org.jetbrains.kotlin.resolve.source.getPsi -class ConstantValueGeneratorImpl( +internal class ConstantValueGeneratorImpl( moduleDescriptor: ModuleDescriptor, symbolTable: ReferenceSymbolTable, typeTranslator: TypeTranslator, diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DataClassMembersGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DataClassMembersGenerator.kt index 813c51665ab..0b33f181d5b 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DataClassMembersGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DataClassMembersGenerator.kt @@ -41,7 +41,7 @@ import org.jetbrains.kotlin.types.typeUtil.representativeUpperBound * This one uses [DataClassMethodGenerator] to determine which members are needed to generate; uses [DataClassMembersGenerator] to generate * function bodies; and provides ways to declare functions or parameters based on descriptors and binding context. */ -class DataClassMembersGenerator( +internal class DataClassMembersGenerator( declarationGenerator: DeclarationGenerator, private val generateBodies: Boolean ) : DeclarationGeneratorExtension(declarationGenerator) { diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DeclarationGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DeclarationGenerator.kt index a04713a05f5..d65ce867569 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DeclarationGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DeclarationGenerator.kt @@ -207,5 +207,5 @@ abstract class DeclarationGeneratorExtension(val declarationGenerator: Declarati fun KotlinType.toIrType() = with(declarationGenerator) { toIrType() } } -fun Generator.createBodyGenerator(scopeOwnerSymbol: IrSymbol, parentLoopResolver: LoopResolver? = null) = +internal fun Generator.createBodyGenerator(scopeOwnerSymbol: IrSymbol, parentLoopResolver: LoopResolver? = null) = BodyGenerator(scopeOwnerSymbol, context, parentLoopResolver) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DelegatedPropertyGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DelegatedPropertyGenerator.kt index 15d8d517332..4c2e3cb0736 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DelegatedPropertyGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DelegatedPropertyGenerator.kt @@ -45,7 +45,9 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.typeUtil.replaceArgumentsWithStarProjections -class DelegatedPropertyGenerator(declarationGenerator: DeclarationGenerator) : DeclarationGeneratorExtension(declarationGenerator) { +internal class DelegatedPropertyGenerator( + declarationGenerator: DeclarationGenerator +) : DeclarationGeneratorExtension(declarationGenerator) { constructor(context: GeneratorContext) : this(DeclarationGenerator(context)) fun generateDelegatedProperty( diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DescriptorStorageForContextReceivers.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DescriptorStorageForContextReceivers.kt index bc67aa0d5ab..d96459d2975 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DescriptorStorageForContextReceivers.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DescriptorStorageForContextReceivers.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.psi2ir.generators import org.jetbrains.kotlin.ir.declarations.IrField import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue -class DescriptorStorageForContextReceivers { +internal class DescriptorStorageForContextReceivers { private val syntheticFieldStorage: MutableMap = mutableMapOf() fun put(receiverValue: ReceiverValue, irField: IrField) { diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ErrorExpressionGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ErrorExpressionGenerator.kt index e31e2170d58..72fc3dc3cef 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ErrorExpressionGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ErrorExpressionGenerator.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.psi.psiUtil.startOffsetSkippingComments import org.jetbrains.kotlin.types.error.ErrorTypeKind import org.jetbrains.kotlin.types.error.ErrorUtils -class ErrorExpressionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { +internal class ErrorExpressionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { private val ignoreErrors: Boolean get() = context.configuration.ignoreErrors private inline fun generateErrorExpression(ktElement: KtElement, e: Throwable? = null, body: () -> IrExpression): IrExpression = diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt index 02dac5f7390..94f2b5479e4 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt @@ -32,7 +32,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyExternal import org.jetbrains.kotlin.resolve.descriptorUtil.propertyIfAccessor @ObsoleteDescriptorBasedAPI -class FunctionGenerator(declarationGenerator: DeclarationGenerator) : DeclarationGeneratorExtension(declarationGenerator) { +internal class FunctionGenerator(declarationGenerator: DeclarationGenerator) : DeclarationGeneratorExtension(declarationGenerator) { constructor(context: GeneratorContext) : this(DeclarationGenerator(context)) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/Generator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/Generator.kt index 5a07815f3c4..b9a02a925d1 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/Generator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/Generator.kt @@ -23,43 +23,40 @@ import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtExpression import org.jetbrains.kotlin.psi2ir.descriptors.IrBuiltInsOverDescriptors import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression -import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall +import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.util.slicedMap.ReadOnlySlice - -interface Generator : IrGenerator { +internal interface Generator : IrGenerator { override val context: GeneratorContext } -interface GeneratorWithScope : Generator, IrGeneratorWithScope +internal interface GeneratorWithScope : Generator, IrGeneratorWithScope - -fun Generator.get(slice: ReadOnlySlice, key: K): V? = +internal fun Generator.get(slice: ReadOnlySlice, key: K): V? = context.bindingContext[slice, key] -fun Generator.getOrFail(slice: ReadOnlySlice, key: K): V = +internal fun Generator.getOrFail(slice: ReadOnlySlice, key: K): V = context.bindingContext[slice, key] ?: throw RuntimeException("No $slice for $key") -inline fun Generator.getOrFail(slice: ReadOnlySlice, key: K, message: (K) -> String): V = +internal inline fun Generator.getOrFail(slice: ReadOnlySlice, key: K, message: (K) -> String): V = context.bindingContext[slice, key] ?: throw RuntimeException(message(key)) -fun Generator.getTypeInferredByFrontend(key: KtExpression): KotlinType? = +internal fun Generator.getTypeInferredByFrontend(key: KtExpression): KotlinType? = context.bindingContext.getType(key) -fun Generator.getTypeInferredByFrontendOrFail(key: KtExpression): KotlinType = +internal fun Generator.getTypeInferredByFrontendOrFail(key: KtExpression): KotlinType = getTypeInferredByFrontend(key) ?: throw RuntimeException("No type for expression: ${key.text}") -fun Generator.getExpressionTypeWithCoercionToUnit(key: KtExpression): KotlinType? = +internal fun Generator.getExpressionTypeWithCoercionToUnit(key: KtExpression): KotlinType? = if (key.isUsedAsExpression(context.bindingContext)) getTypeInferredByFrontend(key) else (context.irBuiltIns as IrBuiltInsOverDescriptors).unit -fun Generator.getExpressionTypeWithCoercionToUnitOrFail(key: KtExpression): KotlinType = +internal fun Generator.getExpressionTypeWithCoercionToUnitOrFail(key: KtExpression): KotlinType = getExpressionTypeWithCoercionToUnit(key) ?: throw RuntimeException("No type for expression: ${key.text}") -fun Generator.getResolvedCall(key: KtElement): ResolvedCall? = +internal fun Generator.getResolvedCall(key: KtElement): ResolvedCall? = key.getResolvedCall(context.bindingContext) - diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/GeneratorContext.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/GeneratorContext.kt index be54f54971d..3d53d1bd9b5 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/GeneratorContext.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/GeneratorContext.kt @@ -67,7 +67,7 @@ class GeneratorContext private constructor( // TODO: inject a correct StorageManager instance, or store NotFoundClasses inside ModuleDescriptor val reflectionTypes = ReflectionTypes(moduleDescriptor, NotFoundClasses(LockBasedStorageManager.NO_LOCKS, moduleDescriptor)) - val additionalDescriptorStorage: DescriptorStorageForContextReceivers = DescriptorStorageForContextReceivers() + internal val additionalDescriptorStorage: DescriptorStorageForContextReceivers = DescriptorStorageForContextReceivers() val samTypeApproximator = SamTypeApproximator(moduleDescriptor.builtIns, languageVersionSettings) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/IrSyntheticDeclarationGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/IrSyntheticDeclarationGenerator.kt index 220604f551a..466c18dfb78 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/IrSyntheticDeclarationGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/IrSyntheticDeclarationGenerator.kt @@ -19,7 +19,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.resolve.DescriptorUtils -class IrSyntheticDeclarationGenerator(context: GeneratorContext) : IrElementVisitorVoid { +internal class IrSyntheticDeclarationGenerator(context: GeneratorContext) : IrElementVisitorVoid { fun generateSyntheticDeclarations(file: IrFile) { try { file.acceptChildrenVoid(this) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/LocalClassGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/LocalClassGenerator.kt index 0782ad3e755..14133ddff17 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/LocalClassGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/LocalClassGenerator.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.psi.KtObjectLiteralExpression import org.jetbrains.kotlin.psi.psiUtil.endOffset import org.jetbrains.kotlin.psi.psiUtil.startOffsetSkippingComments -class LocalClassGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { +internal class LocalClassGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { fun generateObjectLiteral(ktObjectLiteral: KtObjectLiteralExpression): IrStatement { val startOffset = ktObjectLiteral.startOffsetSkippingComments val endOffset = ktObjectLiteral.endOffset diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/LocalFunctionGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/LocalFunctionGenerator.kt index c1534e47e22..004d6957728 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/LocalFunctionGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/LocalFunctionGenerator.kt @@ -27,7 +27,7 @@ import org.jetbrains.kotlin.psi.psiUtil.endOffset import org.jetbrains.kotlin.psi.psiUtil.startOffset import org.jetbrains.kotlin.resolve.bindingContextUtil.isInlineableFunctionLiteral -class LocalFunctionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { +internal class LocalFunctionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { fun generateLambda(ktLambda: KtLambdaExpression): IrStatement { val ktFun = ktLambda.functionLiteral @@ -69,4 +69,4 @@ class LocalFunctionGenerator(statementGenerator: StatementGenerator) : Statement else null, IrDeclarationOrigin.LOCAL_FUNCTION ) -} \ No newline at end of file +} diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/LoopExpressionGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/LoopExpressionGenerator.kt index a3d9c5565ac..fb1f386cec0 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/LoopExpressionGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/LoopExpressionGenerator.kt @@ -30,7 +30,7 @@ import org.jetbrains.kotlin.psi2ir.intermediate.VariableLValue import org.jetbrains.kotlin.psi2ir.intermediate.setExplicitReceiverValue import org.jetbrains.kotlin.resolve.BindingContext -class LoopExpressionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { +internal class LoopExpressionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { fun generateWhileLoop(ktWhile: KtWhileExpression): IrExpression { val irLoop = IrWhileLoopImpl( ktWhile.startOffsetSkippingComments, ktWhile.endOffset, @@ -222,4 +222,4 @@ class LoopExpressionGenerator(statementGenerator: StatementGenerator) : Statemen return irForBlock } -} \ No newline at end of file +} diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/OperatorConventions.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/OperatorConventions.kt index fb64ef5e2d6..885311bbe60 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/OperatorConventions.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/OperatorConventions.kt @@ -21,8 +21,7 @@ import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.expressions.IrTypeOperator import org.jetbrains.kotlin.lexer.KtTokens - -fun getInfixOperator(ktOperator: IElementType): IrStatementOrigin? = +internal fun getInfixOperator(ktOperator: IElementType): IrStatementOrigin? = when (ktOperator) { KtTokens.EQ -> IrStatementOrigin.EQ KtTokens.PLUSEQ -> IrStatementOrigin.PLUSEQ @@ -53,7 +52,7 @@ fun getInfixOperator(ktOperator: IElementType): IrStatementOrigin? = else -> null } -fun getPrefixOperator(ktOperator: IElementType): IrStatementOrigin? = +internal fun getPrefixOperator(ktOperator: IElementType): IrStatementOrigin? = when (ktOperator) { KtTokens.PLUSPLUS -> IrStatementOrigin.PREFIX_INCR KtTokens.MINUSMINUS -> IrStatementOrigin.PREFIX_DECR @@ -63,7 +62,7 @@ fun getPrefixOperator(ktOperator: IElementType): IrStatementOrigin? = else -> null } -fun getPostfixOperator(ktOperator: IElementType): IrStatementOrigin? = +internal fun getPostfixOperator(ktOperator: IElementType): IrStatementOrigin? = when (ktOperator) { KtTokens.PLUSPLUS -> IrStatementOrigin.POSTFIX_INCR KtTokens.MINUSMINUS -> IrStatementOrigin.POSTFIX_DECR @@ -71,7 +70,7 @@ fun getPostfixOperator(ktOperator: IElementType): IrStatementOrigin? = else -> null } -fun getIrTypeOperator(ktOperator: IElementType): IrTypeOperator? = +internal fun getIrTypeOperator(ktOperator: IElementType): IrTypeOperator? = when (ktOperator) { KtTokens.IS_KEYWORD -> IrTypeOperator.INSTANCEOF KtTokens.NOT_IS -> IrTypeOperator.NOT_INSTANCEOF @@ -80,10 +79,10 @@ fun getIrTypeOperator(ktOperator: IElementType): IrTypeOperator? = else -> null } -val AUGMENTED_ASSIGNMENTS = +internal val AUGMENTED_ASSIGNMENTS = setOf(IrStatementOrigin.PLUSEQ, IrStatementOrigin.MINUSEQ, IrStatementOrigin.MULTEQ, IrStatementOrigin.DIVEQ, IrStatementOrigin.PERCEQ) -val OPERATORS_DESUGARED_TO_CALLS = +internal val OPERATORS_DESUGARED_TO_CALLS = setOf( IrStatementOrigin.PLUS, IrStatementOrigin.MINUS, @@ -97,23 +96,20 @@ val OPERATORS_DESUGARED_TO_CALLS = IrStatementOrigin.UPLUS ) -val COMPARISON_OPERATORS = +internal val COMPARISON_OPERATORS = setOf(IrStatementOrigin.LT, IrStatementOrigin.LTEQ, IrStatementOrigin.GT, IrStatementOrigin.GTEQ) -val EQUALITY_OPERATORS = +internal val EQUALITY_OPERATORS = setOf(IrStatementOrigin.EQEQ, IrStatementOrigin.EXCLEQ) -val IDENTITY_OPERATORS = +internal val IDENTITY_OPERATORS = setOf(IrStatementOrigin.EQEQEQ, IrStatementOrigin.EXCLEQEQ) -val IN_OPERATORS = +internal val IN_OPERATORS = setOf(IrStatementOrigin.IN, IrStatementOrigin.NOT_IN) -val BINARY_BOOLEAN_OPERATORS = +internal val BINARY_BOOLEAN_OPERATORS = setOf(IrStatementOrigin.ANDAND, IrStatementOrigin.OROR) -val INCREMENT_DECREMENT_OPERATORS = +internal val INCREMENT_DECREMENT_OPERATORS = setOf(IrStatementOrigin.PREFIX_INCR, IrStatementOrigin.PREFIX_DECR, IrStatementOrigin.POSTFIX_INCR, IrStatementOrigin.POSTFIX_DECR) - -val POSTFIX_INCREMENT_DECREMENT_OPERATORS = - setOf(IrStatementOrigin.POSTFIX_INCR, IrStatementOrigin.POSTFIX_DECR) \ No newline at end of file diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/OperatorExpressionGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/OperatorExpressionGenerator.kt index 1d535b64d0e..72f1d005d65 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/OperatorExpressionGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/OperatorExpressionGenerator.kt @@ -51,8 +51,7 @@ import org.jetbrains.kotlin.types.typeUtil.makeNullable import kotlin.collections.contains import kotlin.collections.set - -class OperatorExpressionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { +internal class OperatorExpressionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { private fun createErrorExpression(ktExpression: KtExpression, text: String) = IrErrorExpressionImpl( diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/PropertyGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/PropertyGenerator.kt index 4e363161318..0031fb36aa0 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/PropertyGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/PropertyGenerator.kt @@ -36,7 +36,7 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.hasBackingField -class PropertyGenerator(declarationGenerator: DeclarationGenerator) : DeclarationGeneratorExtension(declarationGenerator) { +internal class PropertyGenerator(declarationGenerator: DeclarationGenerator) : DeclarationGeneratorExtension(declarationGenerator) { fun generatePropertyDeclaration(ktProperty: KtProperty): IrProperty { val propertyDescriptor = getPropertyDescriptor(ktProperty) val ktDelegate = ktProperty.delegate @@ -277,5 +277,3 @@ internal fun IrProperty.linkCorrespondingPropertySymbol() { getter?.correspondingPropertySymbol = symbol setter?.correspondingPropertySymbol = symbol } - - diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ReflectionReferencesGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ReflectionReferencesGenerator.kt index 73828413fcd..b91c0e78048 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ReflectionReferencesGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ReflectionReferencesGenerator.kt @@ -48,7 +48,7 @@ import org.jetbrains.kotlin.types.TypeProjectionImpl import org.jetbrains.kotlin.types.TypeSubstitutor import org.jetbrains.kotlin.types.expressions.DoubleColonLHS -class ReflectionReferencesGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { +internal class ReflectionReferencesGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { fun generateClassLiteral(ktClassLiteral: KtClassLiteralExpression): IrExpression { val ktArgument = ktClassLiteral.receiverExpression!! @@ -669,4 +669,4 @@ class ReflectionReferencesGenerator(statementGenerator: StatementGenerator) : St arguments.last().type, suspendFunction ) -} \ No newline at end of file +} diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ScriptGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ScriptGenerator.kt index b94b4f64464..e9a76fbcaea 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ScriptGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ScriptGenerator.kt @@ -41,7 +41,7 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.calls.util.isSingleUnderscore import org.jetbrains.kotlin.utils.addIfNotNull -class ScriptGenerator(declarationGenerator: DeclarationGenerator) : DeclarationGeneratorExtension(declarationGenerator) { +internal class ScriptGenerator(declarationGenerator: DeclarationGenerator) : DeclarationGeneratorExtension(declarationGenerator) { @OptIn(ExperimentalStdlibApi::class) fun generateScriptDeclaration(ktScript: KtScript): IrDeclaration? { val descriptor = getOrFail(BindingContext.DECLARATION_TO_DESCRIPTOR, ktScript) as ScriptDescriptor diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StandaloneDeclarationGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StandaloneDeclarationGenerator.kt index 90ee82ae087..476a3dc814f 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StandaloneDeclarationGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StandaloneDeclarationGenerator.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyExternal import org.jetbrains.kotlin.resolve.descriptorUtil.propertyIfAccessor import org.jetbrains.kotlin.types.KotlinType -class StandaloneDeclarationGenerator(private val context: GeneratorContext) { +internal class StandaloneDeclarationGenerator(private val context: GeneratorContext) { private val typeTranslator = context.typeTranslator private val symbolTable = context.symbolTable private val irFactory = context.irFactory diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StatementGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StatementGenerator.kt index c6c997d4908..fa217d0cb03 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StatementGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StatementGenerator.kt @@ -51,7 +51,7 @@ import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils import org.jetbrains.kotlin.util.OperatorNameConventions -class StatementGenerator( +internal class StatementGenerator( val bodyGenerator: BodyGenerator, override val scope: Scope ) : KtVisitor(), @@ -553,7 +553,7 @@ class StatementGenerator( ReflectionReferencesGenerator(this).generateCallableReference(expression) } -abstract class StatementGeneratorExtension(val statementGenerator: StatementGenerator) : GeneratorWithScope { +internal abstract class StatementGeneratorExtension(val statementGenerator: StatementGenerator) : GeneratorWithScope { override val scope: Scope get() = statementGenerator.scope override val context: GeneratorContext get() = statementGenerator.context diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/SyntheticDeclarationsGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/SyntheticDeclarationsGenerator.kt index 3a0de96b15a..859701bd3d8 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/SyntheticDeclarationsGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/SyntheticDeclarationsGenerator.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.ir.symbols.* import org.jetbrains.kotlin.ir.util.SYNTHETIC_OFFSET import org.jetbrains.kotlin.resolve.DescriptorUtils -class SyntheticDeclarationsGenerator(context: GeneratorContext) : DeclarationDescriptorVisitor { +internal class SyntheticDeclarationsGenerator(context: GeneratorContext) : DeclarationDescriptorVisitor { private val generator = StandaloneDeclarationGenerator(context) private val symbolTable = context.symbolTable diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/TryCatchExpressionGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/TryCatchExpressionGenerator.kt index cb97262d385..e780543debd 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/TryCatchExpressionGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/TryCatchExpressionGenerator.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.psi.psiUtil.endOffset import org.jetbrains.kotlin.psi.psiUtil.startOffsetSkippingComments import org.jetbrains.kotlin.resolve.BindingContext -class TryCatchExpressionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { +internal class TryCatchExpressionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) { fun generateTryCatch(ktTry: KtTryExpression): IrExpression { val resultType = getExpressionTypeWithCoercionToUnitOrFail(ktTry).toIrType() val irTryCatch = IrTryImpl(ktTry.startOffsetSkippingComments, ktTry.endOffset, resultType) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/samConversions.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/samConversions.kt index 657b5349fc0..2a67c05fa61 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/samConversions.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/samConversions.kt @@ -15,15 +15,15 @@ import org.jetbrains.kotlin.resolve.sam.getFunctionTypeForAbstractMethod import org.jetbrains.kotlin.resolve.sam.getSingleAbstractMethodOrNull import org.jetbrains.kotlin.types.* -fun GeneratorExtensions.SamConversion.isSamType(kotlinType: KotlinType): Boolean { +internal fun GeneratorExtensions.SamConversion.isSamType(kotlinType: KotlinType): Boolean { val descriptor = kotlinType.constructor.declarationDescriptor return descriptor is ClassDescriptor && descriptor.isFun || isPlatformSamType(kotlinType) } -fun DeclarationDescriptor.isSamConstructor() = this is FunctionInterfaceConstructorDescriptor +internal fun DeclarationDescriptor.isSamConstructor() = this is FunctionInterfaceConstructorDescriptor -fun CallableDescriptor.getOriginalForFunctionInterfaceAdapter() = +internal fun CallableDescriptor.getOriginalForFunctionInterfaceAdapter() = when (this) { is FunctionInterfaceAdapterDescriptor<*> -> baseDescriptorForSynthetic @@ -33,7 +33,7 @@ fun CallableDescriptor.getOriginalForFunctionInterfaceAdapter() = null } -fun KotlinType.getSubstitutedFunctionTypeForSamType(): KotlinType = +internal fun KotlinType.getSubstitutedFunctionTypeForSamType(): KotlinType = when (val unwrapped = this.unwrap()) { is SimpleType -> unwrapped.getSubstitutedFunctionTypeForSamType() is FlexibleType -> KotlinTypeFactory.flexibleType( diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ArrayAccessAssignmentReceiver.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ArrayAccessAssignmentReceiver.kt index d718ecd7085..5dd682993d5 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ArrayAccessAssignmentReceiver.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ArrayAccessAssignmentReceiver.kt @@ -39,7 +39,7 @@ import org.jetbrains.kotlin.resolve.calls.tasks.isDynamic import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.checker.KotlinTypeChecker -class ArrayAccessAssignmentReceiver( +internal class ArrayAccessAssignmentReceiver( private val irArray: IrExpression, private val ktIndexExpressions: List, private val irIndexExpressions: List, diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/BackingFieldLValue.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/BackingFieldLValue.kt index 52bdb359352..af082b58d7e 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/BackingFieldLValue.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/BackingFieldLValue.kt @@ -23,9 +23,8 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrGetFieldImpl import org.jetbrains.kotlin.ir.expressions.impl.IrSetFieldImpl import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.types.KotlinType -class BackingFieldLValue( +internal class BackingFieldLValue( private val context: IrGeneratorContext, private val startOffset: Int, private val endOffset: Int, diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/CallBuilder.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/CallBuilder.kt index 16a5b947041..a8bdd7fb381 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/CallBuilder.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/CallBuilder.kt @@ -16,14 +16,17 @@ package org.jetbrains.kotlin.psi2ir.intermediate -import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.descriptors.CallableDescriptor +import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor +import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.psi2ir.generators.hasNoSideEffects import org.jetbrains.kotlin.psi2ir.isValueArgumentReorderingRequired import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall import org.jetbrains.kotlin.types.KotlinType -class CallBuilder( +internal class CallBuilder( val original: ResolvedCall<*>, // TODO get rid of "original", sometimes we want to generate a call without ResolvedCall val descriptor: CallableDescriptor, val typeArguments: Map?, @@ -41,47 +44,31 @@ class CallBuilder( irValueArgumentsByIndex[valueParameterDescriptor.index + parametersOffset] } -val CallBuilder.argumentsCount: Int +internal val CallBuilder.argumentsCount: Int get() = irValueArgumentsByIndex.size -var CallBuilder.lastArgument: IrExpression? +internal var CallBuilder.lastArgument: IrExpression? get() = irValueArgumentsByIndex.last() set(value) { irValueArgumentsByIndex[argumentsCount - 1] = value } -fun CallBuilder.getValueArgumentsInParameterOrder(): List = +internal fun CallBuilder.getValueArgumentsInParameterOrder(): List = descriptor.valueParameters.map { irValueArgumentsByIndex[it.index] } -fun CallBuilder.isValueArgumentReorderingRequired() = +internal fun CallBuilder.isValueArgumentReorderingRequired() = original.isValueArgumentReorderingRequired() && irValueArgumentsByIndex.any { it != null && !it.hasNoSideEffects() } -val CallBuilder.hasExtensionReceiver: Boolean +internal val CallBuilder.hasExtensionReceiver: Boolean get() = descriptor.extensionReceiverParameter != null -val CallBuilder.hasDispatchReceiver: Boolean - get() = - descriptor.dispatchReceiverParameter != null - -val CallBuilder.extensionReceiverType: KotlinType? - get() = - descriptor.extensionReceiverParameter?.type - -val CallBuilder.dispatchReceiverType: KotlinType? +internal val CallBuilder.dispatchReceiverType: KotlinType? get() = descriptor.dispatchReceiverParameter?.type -val CallBuilder.explicitReceiverParameter: ReceiverParameterDescriptor? - get() = - descriptor.extensionReceiverParameter ?: descriptor.dispatchReceiverParameter - -val CallBuilder.explicitReceiverType: KotlinType? - get() = - explicitReceiverParameter?.type - -fun CallBuilder.setExplicitReceiverValue(explicitReceiverValue: IntermediateValue) { +internal fun CallBuilder.setExplicitReceiverValue(explicitReceiverValue: IntermediateValue) { val previousCallReceiver = callReceiver callReceiver = object : CallReceiver { override fun call(builder: CallExpressionBuilder): IrExpression { diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/DelegatedLocalPropertyLValue.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/DelegatedLocalPropertyLValue.kt index a4d64ee4a4d..73b62324c84 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/DelegatedLocalPropertyLValue.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/DelegatedLocalPropertyLValue.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType -class DelegatedLocalPropertyLValue( +internal class DelegatedLocalPropertyLValue( private val context: IrGeneratorContext, val startOffset: Int, val endOffset: Int, diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/DynamicMemberLValue.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/DynamicMemberLValue.kt index 048ce987033..a0512a55045 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/DynamicMemberLValue.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/DynamicMemberLValue.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.ir.expressions.left import org.jetbrains.kotlin.ir.expressions.right import org.jetbrains.kotlin.ir.types.IrType -class DynamicMemberLValue( +internal class DynamicMemberLValue( private val context: IrGeneratorContext, private val startOffset: Int, private val endOffset: Int, @@ -69,4 +69,4 @@ class DynamicMemberLValue( if (extensionReceiverValue != null) throw AssertionError("Dynamic call $memberName should have no extension receiver") return dispatchReceiverValue.load() } -} \ No newline at end of file +} diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ExtensionInvokeCallReceiver.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ExtensionInvokeCallReceiver.kt index 78cc95ac9bd..79861eb8c6a 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ExtensionInvokeCallReceiver.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ExtensionInvokeCallReceiver.kt @@ -18,7 +18,7 @@ package org.jetbrains.kotlin.psi2ir.intermediate import org.jetbrains.kotlin.ir.expressions.IrExpression -class ExtensionInvokeCallReceiver( +internal class ExtensionInvokeCallReceiver( private val callBuilder: CallBuilder, private val functionReceiver: IntermediateValue, private val extensionInvokeReceiver: IntermediateValue @@ -35,4 +35,4 @@ class ExtensionInvokeCallReceiver( callBuilder.irValueArgumentsByIndex[0] = extensionInvokeReceiver.load() return builder.withReceivers(functionReceiver, null, emptyList()) } -} \ No newline at end of file +} diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/IrUtils.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/IrUtils.kt index 7dac82195f1..7dd19415ff6 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/IrUtils.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/IrUtils.kt @@ -22,10 +22,10 @@ import org.jetbrains.kotlin.ir.declarations.IrVariable import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl -fun IrVariable.loadAt(startOffset: Int, endOffset: Int): IrExpression = +internal fun IrVariable.loadAt(startOffset: Int, endOffset: Int): IrExpression = IrGetValueImpl(startOffset, endOffset, type, symbol) -fun CallReceiver.adjustForCallee(callee: CallableMemberDescriptor): CallReceiver = +internal fun CallReceiver.adjustForCallee(callee: CallableMemberDescriptor): CallReceiver = object : CallReceiver { override fun call(builder: CallExpressionBuilder): IrExpression = this@adjustForCallee.call { dispatchReceiverValue, extensionReceiverValue, contextReceiverValues -> @@ -51,7 +51,7 @@ fun CallReceiver.adjustForCallee(callee: CallableMemberDescriptor): CallReceiver } -fun computeSubstitutedSyntheticAccessor( +internal fun computeSubstitutedSyntheticAccessor( propertyDescriptor: PropertyDescriptor, accessorFunctionDescriptor: FunctionDescriptor, substitutedExtensionAccessorDescriptor: PropertyAccessorDescriptor @@ -94,4 +94,4 @@ private fun copyTypesFromExtensionAccessor( accessorFunctionDescriptor.modality, accessorFunctionDescriptor.visibility ) - } \ No newline at end of file + } diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/LValueWithGetterAndSetterCalls.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/LValueWithGetterAndSetterCalls.kt index de94df35b28..3bb3b458be0 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/LValueWithGetterAndSetterCalls.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/LValueWithGetterAndSetterCalls.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.psi2ir.generators.CallGenerator -class LValueWithGetterAndSetterCalls( +internal class LValueWithGetterAndSetterCalls( private val callGenerator: CallGenerator, private val descriptor: CallableDescriptor, private val getterCall: () -> CallBuilder?, @@ -42,5 +42,4 @@ class LValueWithGetterAndSetterCalls( val call = setterCall(irExpression) ?: throw AssertionError("No setter call for $descriptor") return callGenerator.generateCall(startOffset, endOffset, call, origin) } - } diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/OnceExpressionValue.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/OnceExpressionValue.kt index 60b4babc6c4..09cc3fce352 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/OnceExpressionValue.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/OnceExpressionValue.kt @@ -19,16 +19,15 @@ package org.jetbrains.kotlin.psi2ir.intermediate import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.render -import org.jetbrains.kotlin.types.KotlinType -abstract class ExpressionValue(override val type: IrType) : IntermediateValue +internal abstract class ExpressionValue(override val type: IrType) : IntermediateValue -inline fun generateExpressionValue(type: IrType, crossinline generate: () -> IrExpression) = +internal inline fun generateExpressionValue(type: IrType, crossinline generate: () -> IrExpression) = object : ExpressionValue(type) { override fun load(): IrExpression = generate() } -class OnceExpressionValue(val irExpression: IrExpression) : LValue, AssignmentReceiver { +internal class OnceExpressionValue(val irExpression: IrExpression) : LValue, AssignmentReceiver { private var instantiated = false override fun load(): IrExpression { @@ -45,4 +44,4 @@ class OnceExpressionValue(val irExpression: IrExpression) : LValue, AssignmentRe override fun assign(withLValue: (LValue) -> IrExpression): IrExpression = withLValue(this) -} \ No newline at end of file +} diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/PropertyLValue.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/PropertyLValue.kt index b784bef3198..a00ef877924 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/PropertyLValue.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/PropertyLValue.kt @@ -29,7 +29,7 @@ import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.psi2ir.generators.GeneratorContext -abstract class PropertyLValueBase( +internal abstract class PropertyLValueBase( protected val context: GeneratorContext, val scope: Scope, val startOffset: Int, @@ -72,7 +72,7 @@ abstract class PropertyLValueBase( protected abstract fun withReceiver(dispatchReceiver: VariableLValue?, extensionReceiver: VariableLValue?, contextReceivers: List): PropertyLValueBase } -class FieldPropertyLValue( +internal class FieldPropertyLValue( context: GeneratorContext, scope: Scope, startOffset: Int, @@ -127,7 +127,7 @@ class FieldPropertyLValue( ) } -class AccessorPropertyLValue( +internal class AccessorPropertyLValue( context: GeneratorContext, scope: Scope, startOffset: Int, @@ -207,4 +207,4 @@ class AccessorPropertyLValue( SimpleCallReceiver(dispatchReceiver, extensionReceiver, contextReceivers), superQualifier ) -} \ No newline at end of file +} diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/RematerializableValue.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/RematerializableValue.kt index 419a55b1119..877525a114c 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/RematerializableValue.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/RematerializableValue.kt @@ -21,14 +21,8 @@ import org.jetbrains.kotlin.ir.builders.Scope import org.jetbrains.kotlin.ir.declarations.IrVariable import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrStatementContainer -import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.util.shallowCopy -class RematerializableValue(override val type: IrType, val irExpression: IrExpression) : IntermediateValue { - override fun load(): IrExpression = irExpression.shallowCopy() -} - -fun Scope.createTemporaryVariableInBlock( +internal fun Scope.createTemporaryVariableInBlock( context: IrGeneratorContext, irExpression: IrExpression, block: IrStatementContainer, @@ -42,7 +36,7 @@ fun Scope.createTemporaryVariableInBlock( ) } -fun Scope.declareTemporaryVariableInBlock( +internal fun Scope.declareTemporaryVariableInBlock( irExpression: IrExpression, block: IrStatementContainer, nameHint: String? = null, @@ -53,5 +47,3 @@ fun Scope.declareTemporaryVariableInBlock( block.statements.add(temporaryVariable) return temporaryVariable } - - diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SafeCallReceiver.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SafeCallReceiver.kt index aa4ac83b91a..22b1481f53c 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SafeCallReceiver.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SafeCallReceiver.kt @@ -25,8 +25,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrBlockImpl import org.jetbrains.kotlin.ir.types.makeNullable import org.jetbrains.kotlin.psi2ir.generators.GeneratorWithScope - -class SafeCallReceiver( +internal class SafeCallReceiver( val generator: GeneratorWithScope, val startOffset: Int, val endOffset: Int, @@ -67,8 +66,7 @@ class SafeCallReceiver( } } - -fun IrExpression.safeCallOnDispatchReceiver( +internal fun IrExpression.safeCallOnDispatchReceiver( generator: GeneratorWithScope, startOffset: Int, endOffset: Int, @@ -83,4 +81,4 @@ fun IrExpression.safeCallOnDispatchReceiver( ).call { dispatchReceiverValue, _, contextReceiverValues -> assert(contextReceiverValues.isEmpty()) { "Context receivers in numeric promotion" } ifNotNull(dispatchReceiverValue!!.load()) - } \ No newline at end of file + } diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SafeExtensionInvokeCallReceiver.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SafeExtensionInvokeCallReceiver.kt index 15aa028455f..c4dbc24e2ee 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SafeExtensionInvokeCallReceiver.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SafeExtensionInvokeCallReceiver.kt @@ -24,13 +24,13 @@ import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.types.makeNullable import org.jetbrains.kotlin.psi2ir.generators.GeneratorWithScope -class SafeExtensionInvokeCallReceiver( +internal class SafeExtensionInvokeCallReceiver( val generator: GeneratorWithScope, val startOffset: Int, val endOffset: Int, - val callBuilder: CallBuilder, - val functionReceiver: IntermediateValue, - val extensionInvokeReceiver: IntermediateValue + private val callBuilder: CallBuilder, + private val functionReceiver: IntermediateValue, + private val extensionInvokeReceiver: IntermediateValue ) : CallReceiver { override fun call(builder: CallExpressionBuilder): IrExpression { // extensionInvokeReceiver is actually a first argument: @@ -62,4 +62,3 @@ class SafeExtensionInvokeCallReceiver( } } } - diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SimpleCallReceiver.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SimpleCallReceiver.kt index 0daa24ef06e..0b448bb5336 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SimpleCallReceiver.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SimpleCallReceiver.kt @@ -18,7 +18,7 @@ package org.jetbrains.kotlin.psi2ir.intermediate import org.jetbrains.kotlin.ir.expressions.IrExpression -class SimpleCallReceiver( +internal class SimpleCallReceiver( val dispatchReceiverValue: IntermediateValue?, val extensionReceiverValue: IntermediateValue?, val contextReceiverValues: List diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SpecialExpressionAssignmentReceiver.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SpecialExpressionAssignmentReceiver.kt index 02fc0945058..20167f6b036 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SpecialExpressionAssignmentReceiver.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/SpecialExpressionAssignmentReceiver.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.psi.KtExpression import org.jetbrains.kotlin.psi2ir.generators.StatementGenerator -class SpecialExpressionAssignmentReceiver( +internal class SpecialExpressionAssignmentReceiver( private val statementGenerator: StatementGenerator, private val ktExpression: KtExpression, private val origin: IrStatementOrigin, @@ -31,4 +31,4 @@ class SpecialExpressionAssignmentReceiver( override fun assign(withLValue: (LValue) -> IrExpression): IrExpression = withLValue(this) -} \ No newline at end of file +} diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/TransientReceiverValue.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/TransientReceiverValue.kt index b1a20402a37..2dadd4a7b2f 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/TransientReceiverValue.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/TransientReceiverValue.kt @@ -18,9 +18,8 @@ package org.jetbrains.kotlin.psi2ir.intermediate import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.types.KotlinType -class TransientReceiverValue(override val type: IrType) : IntermediateValue { +internal class TransientReceiverValue(override val type: IrType) : IntermediateValue { override fun load(): IrExpression { throw AssertionError("Transient receiver should not be instantiated") diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/Values.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/Values.kt index 99eae96d3cc..7c5df1ed66e 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/Values.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/Values.kt @@ -19,22 +19,22 @@ package org.jetbrains.kotlin.psi2ir.intermediate import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.types.IrType -interface IntermediateValue { +internal interface IntermediateValue { fun load(): IrExpression fun loadIfExists(): IrExpression? = load() val type: IrType } -interface LValue : IntermediateValue { +internal interface LValue : IntermediateValue { fun store(irExpression: IrExpression): IrExpression } -interface AssignmentReceiver { +internal interface AssignmentReceiver { fun assign(withLValue: (LValue) -> IrExpression): IrExpression fun assign(value: IrExpression): IrExpression = assign { it.store(value) } } -fun interface CallExpressionBuilder { +internal fun interface CallExpressionBuilder { fun withReceivers( dispatchReceiver: IntermediateValue?, extensionReceiver: IntermediateValue?, @@ -42,6 +42,6 @@ fun interface CallExpressionBuilder { ): IrExpression } -interface CallReceiver { +internal interface CallReceiver { fun call(builder: CallExpressionBuilder): IrExpression } diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/VariableLValue.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/VariableLValue.kt index 117ffed0778..62ae2d3fae8 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/VariableLValue.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/VariableLValue.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrSetValueImpl import org.jetbrains.kotlin.ir.symbols.IrValueSymbol import org.jetbrains.kotlin.ir.types.IrType -class VariableLValue( +internal class VariableLValue( private val context: IrGeneratorContext, val startOffset: Int, val endOffset: Int, @@ -58,4 +58,4 @@ class VariableLValue( override fun assign(withLValue: (LValue) -> IrExpression): IrExpression = withLValue(this) -} \ No newline at end of file +} diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/transformations/InsertImplicitCasts.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/transformations/InsertImplicitCasts.kt index c88b0bd3a05..5e1e49b5800 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/transformations/InsertImplicitCasts.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/transformations/InsertImplicitCasts.kt @@ -57,7 +57,7 @@ import org.jetbrains.kotlin.types.checker.KotlinTypeChecker import org.jetbrains.kotlin.types.typeUtil.* import org.jetbrains.kotlin.util.OperatorNameConventions -fun insertImplicitCasts(file: IrFile, context: GeneratorContext) { +internal fun insertImplicitCasts(file: IrFile, context: GeneratorContext) { InsertImplicitCasts( context.irBuiltIns, context.typeTranslator,