All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlin.backend.common.serialization.mangle.MangleConstant.kt Maven / Gradle / Ivy

There is a newer version: 2.0.0
Show newest version
/*
 * Copyright 2010-2020 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 org.jetbrains.kotlin.backend.common.serialization.mangle

enum class MangleConstant(val prefix: Char, val separator: Char, val suffix: Char) {
    VALUE_PARAMETERS('(', ';', ')'),
    TYPE_PARAMETERS('{', ';', '}'),
    UPPER_BOUNDS('<', '&', '>'),
    TYPE_ARGUMENTS('<', ',', '>'),
    FLEXIBLE_TYPE('[', '~', ']');

    companion object {
        const val VAR_ARG_MARK = "..."
        const val STAR_MARK = '*'
        const val Q_MARK = '?'
        const val ENHANCED_NULLABILITY_MARK = "{EnhancedNullability}"
        const val EXPECT_MARK = "#expect"
        const val UNKNOWN_MARK = ""
        const val DYNAMIC_MARK = ""
        const val ERROR_MARK = ""
        const val ERROR_DECLARATION = ""
        const val STATIC_MEMBER_MARK = "#static"

        const val VARIANCE_SEPARATOR = '|'
        const val UPPER_BOUND_SEPARATOR = '§'
        const val PREFIX_SEPARATOR = ':'
        const val MODULE_SEPARATOR = '$'
        const val FQN_SEPARATOR = '.'
        const val INDEX_SEPARATOR = ':'

        const val PLATFORM_FUNCTION_MARKER = '%'

        const val EXTENSION_RECEIVER_PREFIX = '@'
        const val FUNCTION_NAME_PREFIX = '#'
        const val TYPE_PARAM_INDEX_PREFIX = '@'

        const val JAVA_FIELD_SUFFIX = "#jf"

        const val EMPTY_PREFIX = ""

        const val FUN_PREFIX = "kfun"
        const val CLASS_PREFIX = "kclass"
        const val PROPERTY_PREFIX = "kprop"
        const val FIELD_PREFIX = "kfield"
        const val ENUM_ENTRY_PREFIX = "kenumentry"
        const val TYPE_ALIAS_PREFIX = "ktypealias"
        const val TYPE_PARAM_PREFIX = "ktypeparam"
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy