Migrate descriptor-related util from IR to FE1.0
so that FE1.0 UAST can avoid depending on backend IR
^KTIJ-23602
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/descriptors/descriptorPsiUtils.kt b/compiler/frontend/src/org/jetbrains/kotlin/descriptors/descriptorPsiUtils.kt
index 7f273f1..9629dd3 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/descriptors/descriptorPsiUtils.kt
+++ b/compiler/frontend/src/org/jetbrains/kotlin/descriptors/descriptorPsiUtils.kt
@@ -27,4 +27,24 @@
fun isBackingFieldReference(descriptor: DeclarationDescriptor?): Boolean {
return descriptor is SyntheticFieldDescriptor
-}
\ No newline at end of file
+}
+
+/**
+ * @return naturally-ordered list of the parameters that can have values specified at call site.
+ */
+val CallableDescriptor.explicitParameters: List<ParameterDescriptor>
+ get() {
+ val result = ArrayList<ParameterDescriptor>(valueParameters.size + 2)
+
+ this.dispatchReceiverParameter?.let {
+ result.add(it)
+ }
+
+ this.extensionReceiverParameter?.let {
+ result.add(it)
+ }
+
+ result.addAll(valueParameters)
+
+ return result
+ }
diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/descriptors/DescriptorUtils.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/descriptors/DescriptorUtils.kt
index e0277ba..9378d26 100644
--- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/descriptors/DescriptorUtils.kt
+++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/descriptors/DescriptorUtils.kt
@@ -16,10 +16,7 @@
package org.jetbrains.kotlin.backend.common.descriptors
-import org.jetbrains.kotlin.descriptors.CallableDescriptor
-import org.jetbrains.kotlin.descriptors.ConstructorDescriptor
-import org.jetbrains.kotlin.descriptors.FunctionDescriptor
-import org.jetbrains.kotlin.descriptors.ParameterDescriptor
+import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.name.Name
val String.synthesizedName: Name get() = Name.identifier(this.synthesizedString)
@@ -40,23 +37,3 @@
} else {
explicitParameters
}
-
-/**
- * @return naturally-ordered list of the parameters that can have values specified at call site.
- */
-val CallableDescriptor.explicitParameters: List<ParameterDescriptor>
- get() {
- val result = ArrayList<ParameterDescriptor>(valueParameters.size + 2)
-
- this.dispatchReceiverParameter?.let {
- result.add(it)
- }
-
- this.extensionReceiverParameter?.let {
- result.add(it)
- }
-
- result.addAll(valueParameters)
-
- return result
- }
diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CAdapterGenerator.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CAdapterGenerator.kt
index f159085..c90a38c 100644
--- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CAdapterGenerator.kt
+++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CAdapterGenerator.kt
@@ -9,7 +9,6 @@
import java.io.PrintWriter
import llvm.*
import org.jetbrains.kotlin.backend.common.descriptors.allParameters
-import org.jetbrains.kotlin.backend.common.descriptors.explicitParameters
import org.jetbrains.kotlin.backend.common.pop
import org.jetbrains.kotlin.backend.common.push
import org.jetbrains.kotlin.backend.konan.llvm.*
diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DevirtualizationAnalysis.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DevirtualizationAnalysis.kt
index e02e4ce..70e4116 100644
--- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DevirtualizationAnalysis.kt
+++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DevirtualizationAnalysis.kt
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.backend.konan.optimizations
import org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext
-import org.jetbrains.kotlin.backend.common.descriptors.explicitParameters
import org.jetbrains.kotlin.backend.common.pop
import org.jetbrains.kotlin.backend.common.push
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
@@ -17,6 +16,7 @@
import org.jetbrains.kotlin.backend.konan.util.LongArrayList
import org.jetbrains.kotlin.backend.konan.lower.getObjectClassInstanceFunction
import org.jetbrains.kotlin.descriptors.ClassKind
+import org.jetbrains.kotlin.descriptors.explicitParameters
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.declarations.*