diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowBuilderAdapter.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowBuilderAdapter.kt index f9a5ceef975..b821ffd245b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowBuilderAdapter.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowBuilderAdapter.kt @@ -14,298 +14,218 @@ * limitations under the License. */ -package org.jetbrains.kotlin.cfg; +package org.jetbrains.kotlin.cfg -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue; -import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode; -import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.*; -import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor; -import org.jetbrains.kotlin.psi.*; -import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall; -import org.jetbrains.kotlin.resolve.constants.CompileTimeConstant; -import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue; +import org.jetbrains.kotlin.cfg.pseudocode.PseudoValue +import org.jetbrains.kotlin.cfg.pseudocode.Pseudocode +import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.* +import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor +import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall +import org.jetbrains.kotlin.resolve.constants.CompileTimeConstant +import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue -import java.util.List; -import java.util.Map; +abstract class ControlFlowBuilderAdapter : ControlFlowBuilder { -public abstract class ControlFlowBuilderAdapter implements ControlFlowBuilder { + protected abstract val delegateBuilder: ControlFlowBuilder - @NotNull - protected abstract ControlFlowBuilder getDelegateBuilder(); - - @Override - public void loadUnit(@NotNull KtExpression expression) { - getDelegateBuilder().loadUnit(expression); + override fun loadUnit(expression: KtExpression) { + delegateBuilder.loadUnit(expression) } - @NotNull - @Override - public InstructionWithValue loadConstant(@NotNull KtExpression expression, @Nullable CompileTimeConstant constant) { - return getDelegateBuilder().loadConstant(expression, constant); + override fun loadConstant(expression: KtExpression, constant: CompileTimeConstant<*>?): InstructionWithValue { + return delegateBuilder.loadConstant(expression, constant) } - @NotNull - @Override - public InstructionWithValue createAnonymousObject(@NotNull KtObjectLiteralExpression expression) { - return getDelegateBuilder().createAnonymousObject(expression); + override fun createAnonymousObject(expression: KtObjectLiteralExpression): InstructionWithValue { + return delegateBuilder.createAnonymousObject(expression) } - @NotNull - @Override - public InstructionWithValue createLambda(@NotNull KtFunction expression) { - return getDelegateBuilder().createLambda(expression); + override fun createLambda(expression: KtFunction): InstructionWithValue { + return delegateBuilder.createLambda(expression) } - @NotNull - @Override - public InstructionWithValue loadStringTemplate(@NotNull KtStringTemplateExpression expression, @NotNull List inputValues) { - return getDelegateBuilder().loadStringTemplate(expression, inputValues); + override fun loadStringTemplate(expression: KtStringTemplateExpression, inputValues: List): InstructionWithValue { + return delegateBuilder.loadStringTemplate(expression, inputValues) } - @NotNull - @Override - public MagicInstruction magic( - @NotNull KtElement instructionElement, - @Nullable KtElement valueElement, - @NotNull List inputValues, - @NotNull MagicKind kind - ) { - return getDelegateBuilder().magic(instructionElement, valueElement, inputValues, kind); + override fun magic( + instructionElement: KtElement, + valueElement: KtElement?, + inputValues: List, + kind: MagicKind): MagicInstruction { + return delegateBuilder.magic(instructionElement, valueElement, inputValues, kind) } - @NotNull - @Override - public MergeInstruction merge(@NotNull KtExpression expression, @NotNull List inputValues) { - return getDelegateBuilder().merge(expression, inputValues); + override fun merge(expression: KtExpression, inputValues: List): MergeInstruction { + return delegateBuilder.merge(expression, inputValues) } - @NotNull - @Override - public ReadValueInstruction readVariable( - @NotNull KtExpression expression, - @NotNull ResolvedCall resolvedCall, - @NotNull Map receiverValues - ) { - return getDelegateBuilder().readVariable(expression, resolvedCall, receiverValues); + override fun readVariable( + expression: KtExpression, + resolvedCall: ResolvedCall<*>, + receiverValues: Map): ReadValueInstruction { + return delegateBuilder.readVariable(expression, resolvedCall, receiverValues) } - @NotNull - @Override - public CallInstruction call( - @NotNull KtElement valueElement, - @NotNull ResolvedCall resolvedCall, - @NotNull Map receiverValues, - @NotNull Map arguments - ) { - return getDelegateBuilder().call(valueElement, resolvedCall, receiverValues, arguments); + override fun call( + valueElement: KtElement, + resolvedCall: ResolvedCall<*>, + receiverValues: Map, + arguments: Map): CallInstruction { + return delegateBuilder.call(valueElement, resolvedCall, receiverValues, arguments) } - @NotNull - @Override - public OperationInstruction predefinedOperation( - @NotNull KtExpression expression, - @NotNull PredefinedOperation operation, - @NotNull List inputValues - ) { - return getDelegateBuilder().predefinedOperation(expression, operation, inputValues); + override fun predefinedOperation( + expression: KtExpression, + operation: ControlFlowBuilder.PredefinedOperation, + inputValues: List): OperationInstruction { + return delegateBuilder.predefinedOperation(expression, operation, inputValues) } - @Override - @NotNull - public Label createUnboundLabel() { - return getDelegateBuilder().createUnboundLabel(); + override fun createUnboundLabel(): Label { + return delegateBuilder.createUnboundLabel() } - @NotNull - @Override - public Label createUnboundLabel(@NotNull String name) { - return getDelegateBuilder().createUnboundLabel(name); + override fun createUnboundLabel(name: String): Label { + return delegateBuilder.createUnboundLabel(name) } - @Override - public void bindLabel(@NotNull Label label) { - getDelegateBuilder().bindLabel(label); + override fun bindLabel(label: Label) { + delegateBuilder.bindLabel(label) } - @Override - public void jump(@NotNull Label label, @NotNull KtElement element) { - getDelegateBuilder().jump(label, element); + override fun jump(label: Label, element: KtElement) { + delegateBuilder.jump(label, element) } - @Override - public void jumpOnFalse(@NotNull Label label, @NotNull KtElement element, @Nullable PseudoValue conditionValue) { - getDelegateBuilder().jumpOnFalse(label, element, conditionValue); + override fun jumpOnFalse(label: Label, element: KtElement, conditionValue: PseudoValue?) { + delegateBuilder.jumpOnFalse(label, element, conditionValue) } - @Override - public void jumpOnTrue(@NotNull Label label, @NotNull KtElement element, @Nullable PseudoValue conditionValue) { - getDelegateBuilder().jumpOnTrue(label, element, conditionValue); + override fun jumpOnTrue(label: Label, element: KtElement, conditionValue: PseudoValue?) { + delegateBuilder.jumpOnTrue(label, element, conditionValue) } - @Override - public void nondeterministicJump(@NotNull Label label, @NotNull KtElement element, @Nullable PseudoValue inputValue) { - getDelegateBuilder().nondeterministicJump(label, element, inputValue); + override fun nondeterministicJump(label: Label, element: KtElement, inputValue: PseudoValue?) { + delegateBuilder.nondeterministicJump(label, element, inputValue) } - @Override - public void nondeterministicJump(@NotNull List labels, @NotNull KtElement element) { - getDelegateBuilder().nondeterministicJump(labels, element); + override fun nondeterministicJump(label: List