[FIR] Move jvm specific checkers to checkers.jvm module
This commit is contained in:
committed by
teamcityserver
parent
f3c58a1df7
commit
a9838131ad
+2
-3
@@ -3,12 +3,11 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.checkers
|
package org.jetbrains.kotlin.fir.analysis.jvm.checkers
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.*
|
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.*
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.jvm.FirJvmExternalDeclarationChecker
|
import org.jetbrains.kotlin.fir.analysis.jvm.checkers.declaration.FirJvmExternalDeclarationChecker
|
||||||
|
|
||||||
// TODO: Move this to different, JVM-specific module?
|
|
||||||
object JvmDeclarationCheckers : DeclarationCheckers() {
|
object JvmDeclarationCheckers : DeclarationCheckers() {
|
||||||
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker>
|
override val memberDeclarationCheckers: Set<FirMemberDeclarationChecker>
|
||||||
get() = setOf(
|
get() = setOf(
|
||||||
+1
-2
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* 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.analysis.checkers.declaration.jvm
|
package org.jetbrains.kotlin.fir.analysis.jvm.checkers.declaration
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirFakeSourceElementKind
|
import org.jetbrains.kotlin.fir.FirFakeSourceElementKind
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||||
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
|||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
|
|
||||||
// TODO: Move this to different, JVM-specific module?
|
|
||||||
object FirJvmExternalDeclarationChecker : FirMemberDeclarationChecker() {
|
object FirJvmExternalDeclarationChecker : FirMemberDeclarationChecker() {
|
||||||
override fun check(declaration: FirMemberDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirMemberDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (!declaration.isExternal) return
|
if (!declaration.isExternal) return
|
||||||
+6
-6
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.psi.KtModifierListOwner
|
|||||||
// - use this to retrieve modifiers on the source and confirm a certain modifier indeed appears
|
// - use this to retrieve modifiers on the source and confirm a certain modifier indeed appears
|
||||||
// DON'T
|
// DON'T
|
||||||
// - don't use this to report an error or warning *on* that specific modifier. Use positioning strategies instead.
|
// - don't use this to report an error or warning *on* that specific modifier. Use positioning strategies instead.
|
||||||
internal sealed class FirModifierList {
|
sealed class FirModifierList {
|
||||||
abstract val modifiers: List<FirModifier<*>>
|
abstract val modifiers: List<FirModifier<*>>
|
||||||
|
|
||||||
class FirPsiModifierList(val modifierList: KtModifierList) : FirModifierList() {
|
class FirPsiModifierList(val modifierList: KtModifierList) : FirModifierList() {
|
||||||
@@ -51,7 +51,7 @@ internal sealed class FirModifierList {
|
|||||||
|
|
||||||
private val MODIFIER_KEYWORD_SET = TokenSet.orSet(KtTokens.SOFT_KEYWORDS, TokenSet.create(KtTokens.IN_KEYWORD, KtTokens.FUN_KEYWORD))
|
private val MODIFIER_KEYWORD_SET = TokenSet.orSet(KtTokens.SOFT_KEYWORDS, TokenSet.create(KtTokens.IN_KEYWORD, KtTokens.FUN_KEYWORD))
|
||||||
|
|
||||||
internal sealed class FirModifier<Node : Any>(val node: Node, val token: KtModifierKeywordToken) {
|
sealed class FirModifier<Node : Any>(val node: Node, val token: KtModifierKeywordToken) {
|
||||||
|
|
||||||
class FirPsiModifier(
|
class FirPsiModifier(
|
||||||
node: ASTNode,
|
node: ASTNode,
|
||||||
@@ -78,7 +78,7 @@ internal sealed class FirModifier<Node : Any>(val node: Node, val token: KtModif
|
|||||||
abstract val source: FirSourceElement
|
abstract val source: FirSourceElement
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun FirSourceElement?.getModifierList(): FirModifierList? {
|
fun FirSourceElement?.getModifierList(): FirModifierList? {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
null -> null
|
null -> null
|
||||||
is FirPsiSourceElement<*> -> (psi as? KtModifierListOwner)?.modifierList?.let { FirModifierList.FirPsiModifierList(it) }
|
is FirPsiSourceElement<*> -> (psi as? KtModifierListOwner)?.modifierList?.let { FirModifierList.FirPsiModifierList(it) }
|
||||||
@@ -91,8 +91,8 @@ internal fun FirSourceElement?.getModifierList(): FirModifierList? {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal operator fun FirModifierList?.contains(token: KtModifierKeywordToken): Boolean = this?.contains(token) == true
|
operator fun FirModifierList?.contains(token: KtModifierKeywordToken): Boolean = this?.contains(token) == true
|
||||||
|
|
||||||
internal fun FirElement.getModifier(token: KtModifierKeywordToken): FirModifier<*>? = source.getModifierList()?.get(token)
|
fun FirElement.getModifier(token: KtModifierKeywordToken): FirModifier<*>? = source.getModifierList()?.get(token)
|
||||||
|
|
||||||
internal fun FirElement.hasModifier(token: KtModifierKeywordToken): Boolean = token in source.getModifierList()
|
fun FirElement.hasModifier(token: KtModifierKeywordToken): Boolean = token in source.getModifierList()
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ fun FirSessionFactory.FirSessionConfigurator.registerExtendedCommonCheckers() {
|
|||||||
useCheckers(ExtendedDeclarationCheckers)
|
useCheckers(ExtendedDeclarationCheckers)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Move this to different, JVM-specific module?
|
|
||||||
fun FirSessionFactory.FirSessionConfigurator.registerJvmCheckers() {
|
fun FirSessionFactory.FirSessionConfigurator.registerJvmCheckers() {
|
||||||
useCheckers(JvmDeclarationCheckers)
|
useCheckers(JvmDeclarationCheckers)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.diagnostics
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.analysis.CheckersComponentInternal
|
import org.jetbrains.kotlin.fir.analysis.CheckersComponentInternal
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.checkers.*
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.ComposedDeclarationCheckers
|
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.ComposedDeclarationCheckers
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.DeclarationCheckers
|
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.DeclarationCheckers
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.ExpressionCheckers
|
import org.jetbrains.kotlin.fir.analysis.checkers.expression.ExpressionCheckers
|
||||||
@@ -14,6 +15,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.type.TypeCheckers
|
|||||||
import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector
|
import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector
|
||||||
import org.jetbrains.kotlin.fir.analysis.collectors.components.*
|
import org.jetbrains.kotlin.fir.analysis.collectors.components.*
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.jvm.checkers.JvmDeclarationCheckers
|
||||||
import org.jetbrains.kotlin.fir.checkers.*
|
import org.jetbrains.kotlin.fir.checkers.*
|
||||||
import org.jetbrains.kotlin.fir.moduleData
|
import org.jetbrains.kotlin.fir.moduleData
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.moduleSourceInfo
|
import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.moduleSourceInfo
|
||||||
|
|||||||
Reference in New Issue
Block a user