JVM_IR. Generate SMAP information for anonymous classes
#KT-28092 Fixed
This commit is contained in:
+7
-3
@@ -41,7 +41,8 @@ import java.io.File
|
||||
open class ClassCodegen protected constructor(
|
||||
internal val irClass: IrClass,
|
||||
val context: JvmBackendContext,
|
||||
private val parentClassCodegen: ClassCodegen? = null
|
||||
private val parentClassCodegen: ClassCodegen? = null,
|
||||
private val withinInline: Boolean = false
|
||||
) : InnerClassConsumer {
|
||||
private val innerClasses = mutableListOf<IrClass>()
|
||||
|
||||
@@ -74,6 +75,9 @@ open class ClassCodegen protected constructor(
|
||||
}
|
||||
|
||||
fun generate(): ReifiedTypeParametersUsages {
|
||||
if (withinInline) {
|
||||
getOrCreateSourceMapper() //initialize default mapping that would be later written in class file
|
||||
}
|
||||
val superClassInfo = irClass.getSuperClassInfo(typeMapper)
|
||||
val signature = getSignature(irClass, type, superClassInfo, typeMapper)
|
||||
|
||||
@@ -232,8 +236,8 @@ open class ClassCodegen protected constructor(
|
||||
}
|
||||
}
|
||||
|
||||
fun generateLocalClass(klass: IrClass): ReifiedTypeParametersUsages {
|
||||
return ClassCodegen(klass, context, this).generate()
|
||||
fun generateLocalClass(klass: IrClass, withinInline: Boolean): ReifiedTypeParametersUsages {
|
||||
return ClassCodegen(klass, context, this, withinInline = withinInline || this.withinInline).generate()
|
||||
}
|
||||
|
||||
private fun generateField(field: IrField) {
|
||||
|
||||
+1
-2
@@ -576,9 +576,8 @@ class ExpressionCodegen(
|
||||
"is not implemented, or it should have been lowered: ${element.render()}"
|
||||
)
|
||||
|
||||
// TODO maybe remove?
|
||||
override fun visitClass(declaration: IrClass, data: BlockInfo): PromisedValue {
|
||||
classCodegen.generateLocalClass(declaration).also {
|
||||
classCodegen.generateLocalClass(declaration, irFunction.isInline).also {
|
||||
closureReifiedMarkers[declaration] = it
|
||||
}
|
||||
return immaterialUnitValue
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
fun returnNullable(): String? = null
|
||||
|
||||
inline fun Array<String>.matchAll(fn: (String) -> Unit) {
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
|
||||
package test
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
package test
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
package test
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
|
||||
package test
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
|
||||
package test
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
// FULL_JDK
|
||||
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
|
||||
package test
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// TARGET_BACKEND: JVM
|
||||
// FILE: inline.kt
|
||||
// KOTLIN_CONFIGURATION_FLAGS: ASSERTIONS_MODE=jvm
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// TARGET_BACKEND: JVM
|
||||
// FILE: inline.kt
|
||||
// KOTLIN_CONFIGURATION_FLAGS: ASSERTIONS_MODE=jvm
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// TARGET_BACKEND: JVM
|
||||
// FILE: inline.kt
|
||||
// KOTLIN_CONFIGURATION_FLAGS: ASSERTIONS_MODE=jvm
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
// WITH_RUNTIME
|
||||
package test
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
// SKIP_INLINE_CHECK_IN: inlineFun$default
|
||||
package test
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
|
||||
package zzz
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
|
||||
package test
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
|
||||
package test
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// FILE: 1.kt
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
package builders
|
||||
|
||||
inline fun call(crossinline init: () -> Unit) {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
// FILE: 1.kt
|
||||
// SKIP_INLINE_CHECK_IN: lParams$default
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
package test
|
||||
//A lot of blank lines [Don't delete]
|
||||
//A lot of blank lines [Don't delete]
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
// FILE: 1.kt
|
||||
// SKIP_INLINE_CHECK_IN: lParams$default
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
package test
|
||||
//A lot of blank lines [Don't delete]
|
||||
//A lot of blank lines [Don't delete]
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
// FILE: 1.kt
|
||||
// SKIP_INLINE_CHECK_IN: lParams$default
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
package test
|
||||
//A lot of blank lines [Don't delete]
|
||||
//A lot of blank lines [Don't delete]
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: 1.kt
|
||||
inline fun cycle(p: String): String {
|
||||
var z = p
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
interface Introspector {
|
||||
fun test() {
|
||||
class SchemaRetriever(val transaction: String) {
|
||||
|
||||
Reference in New Issue
Block a user