Moved a couple more Konan specific annotations to "konan" package
This commit is contained in:
committed by
alexander-gorshenev
parent
b2983850b6
commit
95433e8a82
+2
-2
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.types.KotlinType
|
|||||||
import org.jetbrains.kotlin.types.TypeUtils
|
import org.jetbrains.kotlin.types.TypeUtils
|
||||||
|
|
||||||
|
|
||||||
private val symbolNameAnnotation = FqName("kotlin.SymbolName")
|
private val symbolNameAnnotation = FqName("konan.SymbolName")
|
||||||
|
|
||||||
fun typeToHashString(type: KotlinType): String {
|
fun typeToHashString(type: KotlinType): String {
|
||||||
if (TypeUtils.isTypeParameter(type)) return "GENERIC"
|
if (TypeUtils.isTypeParameter(type)) return "GENERIC"
|
||||||
@@ -76,4 +76,4 @@ internal val ClassDescriptor.typeInfoSymbolName: String
|
|||||||
get() = "ktype:" + this.fqNameSafe.toString()
|
get() = "ktype:" + this.fqNameSafe.toString()
|
||||||
|
|
||||||
internal val PropertyDescriptor.symbolName:String
|
internal val PropertyDescriptor.symbolName:String
|
||||||
get() = "kvar:${this.containingDeclaration.name.asString()}.${this.name.asString()}"
|
get() = "kvar:${this.containingDeclaration.name.asString()}.${this.name.asString()}"
|
||||||
|
|||||||
+1
-1
@@ -111,7 +111,7 @@ internal class RTTIGenerator(override val context: Context) : ContextUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun exportTypeInfoIfRequired(classDesc: ClassDescriptor, typeInfoGlobal: LLVMValueRef?) {
|
private fun exportTypeInfoIfRequired(classDesc: ClassDescriptor, typeInfoGlobal: LLVMValueRef?) {
|
||||||
val annot = classDesc.annotations.findAnnotation(FqName("kotlin.ExportTypeInfo"))
|
val annot = classDesc.annotations.findAnnotation(FqName("konan.ExportTypeInfo"))
|
||||||
if (annot != null) {
|
if (annot != null) {
|
||||||
val nameValue = annot.allValueArguments.values.single() as StringValue
|
val nameValue = annot.allValueArguments.values.single() as StringValue
|
||||||
// TODO: use LLVMAddAlias?
|
// TODO: use LLVMAddAlias?
|
||||||
|
|||||||
@@ -1,5 +1,23 @@
|
|||||||
package konan
|
package konan
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Forces the compiler to use specified symbol name for the target `external` function.
|
||||||
|
*
|
||||||
|
* TODO: changing symbol name breaks the binary compatibility,
|
||||||
|
* so it should probably be allowed on `internal` and `private` functions only.
|
||||||
|
*/
|
||||||
|
//@Target(AnnotationTarget.FUNCTION)
|
||||||
|
//@Retention(AnnotationRetention.SOURCE)
|
||||||
|
annotation class SymbolName(val name: String)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exports the TypeInfo of this class by given name to use it from runtime.
|
||||||
|
*/
|
||||||
|
//@Target(AnnotationTarget.CLASS)
|
||||||
|
//@Retention(AnnotationRetention.SOURCE)
|
||||||
|
annotation class ExportTypeInfo(val name: String)
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Preserve the function entry point during global optimizations
|
* Preserve the function entry point during global optimizations
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2,23 +2,6 @@ package kotlin
|
|||||||
|
|
||||||
// TODO: shouldn't these annotation be located in 'kotlin_native.internal' package?
|
// TODO: shouldn't these annotation be located in 'kotlin_native.internal' package?
|
||||||
|
|
||||||
/**
|
|
||||||
* Forces the compiler to use specified symbol name for the target `external` function.
|
|
||||||
*
|
|
||||||
* TODO: changing symbol name breaks the binary compatibility,
|
|
||||||
* so it should probably be allowed on `internal` and `private` functions only.
|
|
||||||
*/
|
|
||||||
//@Target(AnnotationTarget.FUNCTION)
|
|
||||||
//@Retention(AnnotationRetention.SOURCE)
|
|
||||||
annotation class SymbolName(val name: String)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Exports the TypeInfo of this class by given name to use it from runtime.
|
|
||||||
*/
|
|
||||||
//@Target(AnnotationTarget.CLASS)
|
|
||||||
//@Retention(AnnotationRetention.SOURCE)
|
|
||||||
annotation class ExportTypeInfo(val name: String)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Suppresses the given compilation warnings in the annotated element.
|
* Suppresses the given compilation warnings in the annotated element.
|
||||||
* @property names names of the compiler diagnostics to suppress.
|
* @property names names of the compiler diagnostics to suppress.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package kotlin.io
|
package kotlin.io
|
||||||
|
|
||||||
@kotlin.SymbolName("Kotlin_io_Console_print")
|
@SymbolName("Kotlin_io_Console_print")
|
||||||
external public fun print(message: String)
|
external public fun print(message: String)
|
||||||
|
|
||||||
/* TODO: use something like that.
|
/* TODO: use something like that.
|
||||||
@@ -39,7 +39,7 @@ public fun print(message: Boolean) {
|
|||||||
print(message.toString())
|
print(message.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
@kotlin.SymbolName("Kotlin_io_Console_println")
|
@SymbolName("Kotlin_io_Console_println")
|
||||||
external public fun println(message: String)
|
external public fun println(message: String)
|
||||||
|
|
||||||
// TODO: enable, once override by name is implemented.
|
// TODO: enable, once override by name is implemented.
|
||||||
@@ -79,8 +79,8 @@ public fun<T> println(message: T) {
|
|||||||
print(message.toString())
|
print(message.toString())
|
||||||
} */
|
} */
|
||||||
|
|
||||||
@kotlin.SymbolName("Kotlin_io_Console_println0")
|
@SymbolName("Kotlin_io_Console_println0")
|
||||||
external public fun println()
|
external public fun println()
|
||||||
|
|
||||||
@kotlin.SymbolName("Kotlin_io_Console_readLine")
|
@SymbolName("Kotlin_io_Console_readLine")
|
||||||
external public fun readLine(): String
|
external public fun readLine(): String
|
||||||
|
|||||||
Reference in New Issue
Block a user