Add 'operator' keyword

This commit is contained in:
Yan Zhulanow
2015-09-16 19:59:02 +03:00
parent 4a32993cc3
commit bc727a170b
58 changed files with 179 additions and 54 deletions
@@ -98,7 +98,13 @@ private class CallableClsStubBuilder(
val modalityModifiers = if (isModalityIrrelevant) listOf() else listOf(MODALITY)
val constModifiers = if (callableKind == CallableKind.VAL) listOf(CONST) else listOf()
val relevantModifiers = listOf(VISIBILITY) + constModifiers + modalityModifiers
val additionalModifiers = when (callableKind) {
CallableKind.FUN -> arrayOf(OPERATOR)
CallableKind.VAL, CallableKind.VAR -> arrayOf(LATEINIT)
else -> emptyArray<FlagsToModifiers>()
}
val relevantModifiers = listOf(VISIBILITY) + constModifiers + modalityModifiers + additionalModifiers
val modifierListStubImpl = createModifierListStubForDeclaration(
callableStub, callableProto.getFlags(), relevantModifiers
)
@@ -191,6 +191,18 @@ enum class FlagsToModifiers {
override fun getModifiers(flags: Int): JetModifierKeywordToken? {
return if (Flags.IS_CONST.get(flags)) JetTokens.CONST_KEYWORD else null
}
},
LATEINIT {
override fun getModifiers(flags: Int): JetModifierKeywordToken? {
return if (Flags.LATE_INIT.get(flags)) JetTokens.LATE_INIT_KEYWORD else null
}
},
OPERATOR {
override fun getModifiers(flags: Int): JetModifierKeywordToken? {
return if (Flags.IS_OPERATOR.get(flags)) JetTokens.OPERATOR_KEYWORD else null
}
};
abstract fun getModifiers(flags: Int): JetModifierKeywordToken?