From 655b737a1ea4ebcf80c34c857092e830e91c7e40 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Tue, 24 Apr 2018 15:12:05 +0200 Subject: [PATCH] Don't use descriptors for static check --- .../kotlin/backend/jvm/codegen/FunctionCodegen.kt | 2 +- .../kotlin/backend/jvm/codegen/irCodegenUtils.kt | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/irCodegenUtils.kt diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt index f7d463aed40..adc9de5565b 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt @@ -54,7 +54,7 @@ open class FunctionCodegen(private val irFunction: IrFunction, private val class private fun doGenerate() { val signature = classCodegen.typeMapper.mapSignatureWithGeneric(descriptor, OwnerKind.IMPLEMENTATION) - val isStatic = DescriptorUtils.isStaticDeclaration(descriptor) + val isStatic = irFunction.isStatic val frameMap = createFrameMapWithReceivers(classCodegen.state, descriptor, signature, isStatic) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/irCodegenUtils.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/irCodegenUtils.kt new file mode 100644 index 00000000000..77af54a1118 --- /dev/null +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/irCodegenUtils.kt @@ -0,0 +1,12 @@ +/* + * Copyright 2010-2018 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.backend.jvm.codegen + +import org.jetbrains.kotlin.ir.declarations.IrConstructor +import org.jetbrains.kotlin.ir.declarations.IrFunction + +internal val IrFunction.isStatic + get() = this.dispatchReceiverParameter == null && this !is IrConstructor \ No newline at end of file