Write a copy of SMAP to a new annotation

To make it available for dynamically attached JVMTI agents.

`@SourceDebugExtension` annotation value is equal to the
SourceDebugExtension attribute value, which is checked now for all box
tests. The difference is that the annotation stored in the constant
pool, which is available for dynamically attached JVMTI agents.

 #KT-53438 Fixed
This commit is contained in:
Alexander Udalov
2022-07-13 14:10:08 +02:00
parent 1e6f7f6d58
commit 87d3ce6ded
7 changed files with 109 additions and 13 deletions
@@ -0,0 +1,18 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package kotlin.jvm.internal
/**
* Provides a copy of the JVM attribute SourceDebugExtension on the class file.
* This annotation exists if and only if there is a SourceDebugExtension attribute on the class.
* To obtain the stored source mapping information, concatenate the strings in [value].
* This annotation is needed for tools which inspect the Kotlin bytecode via JVMTI,
* which does not always provide access to the SourceDebugExtension attribute.
*/
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.BINARY)
@SinceKotlin("1.8")
annotation class SourceDebugExtension(val value: Array<String>)