Introduce const into decompiler and stub builder
This commit is contained in:
+7
-6
@@ -18,9 +18,7 @@ package org.jetbrains.kotlin.idea.decompiler.stubBuilder
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.stubs.StubElement
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.idea.decompiler.stubBuilder.FlagsToModifiers.MODALITY
|
||||
import org.jetbrains.kotlin.idea.decompiler.stubBuilder.FlagsToModifiers.VISIBILITY
|
||||
import org.jetbrains.kotlin.idea.decompiler.stubBuilder.FlagsToModifiers.*
|
||||
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes
|
||||
import org.jetbrains.kotlin.psi.stubs.impl.KotlinClassStubImpl
|
||||
import org.jetbrains.kotlin.psi.stubs.impl.KotlinFunctionStubImpl
|
||||
@@ -32,7 +30,6 @@ import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||
import org.jetbrains.kotlin.serialization.ProtoBuf.Callable.CallableKind
|
||||
import org.jetbrains.kotlin.serialization.ProtoBuf.Callable.MemberKind
|
||||
import org.jetbrains.kotlin.serialization.ProtoBuf.Modality
|
||||
import org.jetbrains.kotlin.serialization.deserialization.AnnotatedCallableKind
|
||||
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
|
||||
import org.jetbrains.kotlin.serialization.deserialization.ProtoContainer
|
||||
|
||||
@@ -98,9 +95,13 @@ private class CallableClsStubBuilder(
|
||||
|
||||
private fun createModifierListStub() {
|
||||
val isModalityIrrelevant = isTopLevel || isConstructor
|
||||
val relevantModifiers = if (isModalityIrrelevant) listOf(VISIBILITY) else listOf(VISIBILITY, MODALITY)
|
||||
val modalityModifiers = if (isModalityIrrelevant) listOf() else listOf(MODALITY)
|
||||
val constModifiers = if (callableKind == CallableKind.VAL) listOf(CONST) else listOf()
|
||||
|
||||
val modifierListStubImpl = createModifierListStubForDeclaration(callableStub, callableProto.getFlags(), relevantModifiers)
|
||||
val relevantModifiers = listOf(VISIBILITY) + constModifiers + modalityModifiers
|
||||
val modifierListStubImpl = createModifierListStubForDeclaration(
|
||||
callableStub, callableProto.getFlags(), relevantModifiers
|
||||
)
|
||||
|
||||
val kind = callableProto.annotatedCallableKind
|
||||
val annotationIds = c.components.annotationLoader.loadCallableAnnotations(protoContainer, callableProto, c.nameResolver, kind)
|
||||
|
||||
+6
@@ -185,6 +185,12 @@ enum class FlagsToModifiers {
|
||||
override fun getModifiers(flags: Int): JetModifierKeywordToken? {
|
||||
return if (Flags.INNER.get(flags)) JetTokens.INNER_KEYWORD else null
|
||||
}
|
||||
},
|
||||
|
||||
CONST {
|
||||
override fun getModifiers(flags: Int): JetModifierKeywordToken? {
|
||||
return if (Flags.IS_CONST.get(flags)) JetTokens.CONST_KEYWORD else null
|
||||
}
|
||||
};
|
||||
|
||||
abstract fun getModifiers(flags: Int): JetModifierKeywordToken?
|
||||
|
||||
Reference in New Issue
Block a user