[decompiler stubs] fix missing expect modifier on declarations

This commit is contained in:
Ilya Kirillov
2022-09-23 20:08:35 +02:00
parent dffdc26208
commit cd5f6d1207
3 changed files with 7 additions and 2 deletions
@@ -155,7 +155,7 @@ private class FunctionClsStubBuilder(
val modalityModifier = if (isTopLevel) listOf() else listOf(MODALITY)
val modifierListStubImpl = createModifierListStubForDeclaration(
callableStub, functionProto.flags,
listOf(VISIBILITY, OPERATOR, INFIX, EXTERNAL_FUN, INLINE, TAILREC, SUSPEND) + modalityModifier
listOf(VISIBILITY, OPERATOR, INFIX, EXTERNAL_FUN, INLINE, TAILREC, SUSPEND, EXPECT_FUNCTION) + modalityModifier
)
// If function is marked as having no annotations, we don't create stubs for it
@@ -215,7 +215,7 @@ private class PropertyClsStubBuilder(
val modifierListStubImpl = createModifierListStubForDeclaration(
callableStub, propertyProto.flags,
listOf(VISIBILITY, LATEINIT, EXTERNAL_PROPERTY) + constModifier + modalityModifier
listOf(VISIBILITY, LATEINIT, EXTERNAL_PROPERTY, EXPECT_PROPERTY) + constModifier + modalityModifier
)
// If field is marked as having no annotations, we don't create stubs for it
@@ -94,6 +94,7 @@ private class ClassClsStubBuilder(
private fun createModifierListForClass(parent: StubElement<out PsiElement>): KotlinModifierListStubImpl {
val relevantFlags = arrayListOf(VISIBILITY)
relevantFlags.add(EXTERNAL_CLASS)
relevantFlags.add(EXPECT_CLASS)
if (isClass()) {
relevantFlags.add(INNER)
relevantFlags.add(DATA)
@@ -52,6 +52,10 @@ val FUN_INTERFACE = createBooleanFlagToModifier(Flags.IS_FUN_INTERFACE, KtTokens
val TAILREC = createBooleanFlagToModifier(Flags.IS_TAILREC, KtTokens.TAILREC_KEYWORD)
val SUSPEND = createBooleanFlagToModifier(Flags.IS_SUSPEND, KtTokens.SUSPEND_KEYWORD)
val EXPECT_CLASS = createBooleanFlagToModifier(Flags.IS_EXPECT_CLASS, KtTokens.EXPECT_KEYWORD)
val EXPECT_FUNCTION = createBooleanFlagToModifier(Flags.IS_EXPECT_FUNCTION, KtTokens.EXPECT_KEYWORD)
val EXPECT_PROPERTY = createBooleanFlagToModifier(Flags.IS_EXPECT_PROPERTY, KtTokens.EXPECT_KEYWORD)
private fun createBooleanFlagToModifier(
flagField: Flags.BooleanFlagField, ktModifierKeywordToken: KtModifierKeywordToken
): FlagsToModifiers = BooleanFlagToModifier(flagField, ktModifierKeywordToken)