From 8b1a63b54da7c49fe05d419d648a7d3d1df8dd20 Mon Sep 17 00:00:00 2001 From: Ivan Cilcic Date: Mon, 8 Jul 2019 11:58:50 +0300 Subject: [PATCH] Move modifiers enum set to separate file --- .../fir/lightTree/fir/modifier/Modifier.kt | 93 ------------- .../fir/modifier/ModifiersEnumSet.kt | 127 ++++++++++++++++++ .../lightTree/fir/modifier/TypeModifier.kt | 14 +- .../fir/modifier/TypeParameterModifier.kt | 24 ---- 4 files changed, 130 insertions(+), 128 deletions(-) create mode 100644 compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/ModifiersEnumSet.kt diff --git a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt index 1a7c4c57b1e..ffc1e9359ef 100644 --- a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt +++ b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.lightTree.fir.modifier import com.intellij.lang.LighterASTNode import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.expressions.impl.FirAbstractAnnotatedElement @@ -134,95 +133,3 @@ class Modifier( return platformModifier == PlatformModifier.ACTUAL } } - -enum class ClassModifier { - ENUM, - ANNOTATION, - DATA, - INNER, - COMPANION -} - -enum class MemberModifier { - OVERRIDE, - LATEINIT -} - -enum class VisibilityModifier { - PUBLIC { - override fun toVisibility(): Visibility { - return Visibilities.PUBLIC - } - }, - PRIVATE { - override fun toVisibility(): Visibility { - return Visibilities.PRIVATE - } - }, - INTERNAL { - override fun toVisibility(): Visibility { - return Visibilities.INTERNAL - } - }, - PROTECTED { - override fun toVisibility(): Visibility { - return Visibilities.PROTECTED - } - }, - UNKNOWN { - override fun toVisibility(): Visibility { - return Visibilities.UNKNOWN - } - }; - - abstract fun toVisibility(): Visibility -} - -enum class FunctionModifier { - TAILREC, - OPERATOR, - INFIX, - INLINE, - EXTERNAL, - SUSPEND -} - -enum class PropertyModifier { - CONST -} - -enum class InheritanceModifier { - ABSTRACT { - override fun toModality(): Modality { - return Modality.ABSTRACT - } - }, - FINAL { - override fun toModality(): Modality { - return Modality.FINAL - } - }, - OPEN { - override fun toModality(): Modality { - return Modality.OPEN - } - }, - SEALED { - override fun toModality(): Modality { - return Modality.SEALED - } - }; - - abstract fun toModality(): Modality -} - -enum class ParameterModifier { - VARARG, - NOINLINE, - CROSSINLINE -} - -enum class PlatformModifier { - EXPECT, - ACTUAL -} diff --git a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/ModifiersEnumSet.kt b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/ModifiersEnumSet.kt new file mode 100644 index 00000000000..b3d54443826 --- /dev/null +++ b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/ModifiersEnumSet.kt @@ -0,0 +1,127 @@ +/* + * Copyright 2010-2019 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.fir.lightTree.fir.modifier + +import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.descriptors.Visibilities +import org.jetbrains.kotlin.descriptors.Visibility +import org.jetbrains.kotlin.types.Variance + +enum class ClassModifier { + ENUM, + ANNOTATION, + DATA, + INNER, + COMPANION +} + +enum class MemberModifier { + OVERRIDE, + LATEINIT +} + +enum class VisibilityModifier { + PUBLIC { + override fun toVisibility(): Visibility { + return Visibilities.PUBLIC + } + }, + PRIVATE { + override fun toVisibility(): Visibility { + return Visibilities.PRIVATE + } + }, + INTERNAL { + override fun toVisibility(): Visibility { + return Visibilities.INTERNAL + } + }, + PROTECTED { + override fun toVisibility(): Visibility { + return Visibilities.PROTECTED + } + }, + UNKNOWN { + override fun toVisibility(): Visibility { + return Visibilities.UNKNOWN + } + }; + + abstract fun toVisibility(): Visibility +} + +enum class FunctionModifier { + TAILREC, + OPERATOR, + INFIX, + INLINE, + EXTERNAL, + SUSPEND +} + +enum class PropertyModifier { + CONST +} + +enum class InheritanceModifier { + ABSTRACT { + override fun toModality(): Modality { + return Modality.ABSTRACT + } + }, + FINAL { + override fun toModality(): Modality { + return Modality.FINAL + } + }, + OPEN { + override fun toModality(): Modality { + return Modality.OPEN + } + }, + SEALED { + override fun toModality(): Modality { + return Modality.SEALED + } + }; + + abstract fun toModality(): Modality +} + +enum class ParameterModifier { + VARARG, + NOINLINE, + CROSSINLINE +} + +enum class PlatformModifier { + EXPECT, + ACTUAL +} + +enum class VarianceModifier { + IN { + override fun toVariance(): Variance { + return Variance.IN_VARIANCE + } + }, + OUT { + override fun toVariance(): Variance { + return Variance.OUT_VARIANCE + } + }, + INVARIANT { + override fun toVariance(): Variance { + return Variance.INVARIANT + } + }; + + abstract fun toVariance(): Variance +} + +enum class ReificationModifier { + REIFIED +} \ No newline at end of file diff --git a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeModifier.kt b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeModifier.kt index 9199785f3d8..dc693169e08 100644 --- a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeModifier.kt +++ b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeModifier.kt @@ -15,19 +15,11 @@ class TypeModifier( session: FirSession, psi: PsiElement? = null, - private var suspendModifier: SuspendModifier? = null + var hasSuspend: Boolean = false ) : FirAbstractAnnotatedElement(session, psi) { fun addModifier(modifier: LighterASTNode) { - if (modifier.toString() == KtTokens.SUSPEND_KEYWORD.value) { - this.suspendModifier = SuspendModifier.SUSPEND + when (modifier.tokenType) { + KtTokens.SUSPEND_KEYWORD -> this.hasSuspend = true } } - - fun hasSuspend(): Boolean { - return suspendModifier == SuspendModifier.SUSPEND - } } - -enum class SuspendModifier { - SUSPEND -} \ No newline at end of file diff --git a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeParameterModifier.kt b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeParameterModifier.kt index ce8e802bbd9..c988ba12148 100644 --- a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeParameterModifier.kt +++ b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeParameterModifier.kt @@ -36,27 +36,3 @@ class TypeParameterModifier( return reificationModifier == ReificationModifier.REIFIED } } - -enum class VarianceModifier { - IN { - override fun toVariance(): Variance { - return Variance.IN_VARIANCE - } - }, - OUT { - override fun toVariance(): Variance { - return Variance.OUT_VARIANCE - } - }, - INVARIANT { - override fun toVariance(): Variance { - return Variance.INVARIANT - } - }; - - abstract fun toVariance(): Variance -} - -enum class ReificationModifier { - REIFIED -} \ No newline at end of file