Refactoring: inline single-used method, move checker closer to the usage
This commit is contained in:
committed by
Space Team
parent
ab7ae75f66
commit
c613b312f9
@@ -23,12 +23,12 @@ import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
|
||||
import org.jetbrains.kotlin.diagnostics.Errors
|
||||
import org.jetbrains.kotlin.diagnostics.WhenMissingCase
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.checkReservedPrefixWord
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.BindingContext.SMARTCAST
|
||||
import org.jetbrains.kotlin.resolve.BindingContext.VARIABLE
|
||||
@@ -44,7 +44,6 @@ import org.jetbrains.kotlin.types.KotlinType
|
||||
import org.jetbrains.kotlin.types.TypeUtils
|
||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.runIf
|
||||
import java.util.*
|
||||
|
||||
|
||||
val List<WhenMissingCase>.hasUnknown: Boolean
|
||||
@@ -479,7 +478,9 @@ object WhenChecker {
|
||||
}
|
||||
}
|
||||
|
||||
fun checkReservedPrefix(trace: BindingTrace, expression: KtWhenExpression) {
|
||||
checkReservedPrefixWord(trace, expression.whenKeyword, "sealed", "sealed when")
|
||||
fun checkSealedWhenIsReserved(sink: DiagnosticSink, element: PsiElement) {
|
||||
KtPsiUtil.getPreviousWord(element, "sealed")?.let {
|
||||
sink.report(Errors.UNSUPPORTED.on(it, "sealed when"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,12 +12,6 @@ import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.KtPsiUtil
|
||||
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
|
||||
|
||||
fun checkReservedPrefixWord(sink: DiagnosticSink, element: PsiElement, word: String, message: String) {
|
||||
KtPsiUtil.getPreviousWord(element, word)?.let {
|
||||
sink.report(Errors.UNSUPPORTED.on(it, message))
|
||||
}
|
||||
}
|
||||
|
||||
fun checkReservedYield(expression: KtSimpleNameExpression?, sink: DiagnosticSink) {
|
||||
// do not force identifier calculation for elements from stubs.
|
||||
if (expression?.getReferencedName() != "yield") return
|
||||
|
||||
+1
-1
@@ -177,7 +177,7 @@ class PatternMatchingTypingVisitor internal constructor(facade: ExpressionTyping
|
||||
): KotlinTypeInfo {
|
||||
val trace = contextWithExpectedType.trace
|
||||
WhenChecker.checkDeprecatedWhenSyntax(trace, expression)
|
||||
WhenChecker.checkReservedPrefix(trace, expression)
|
||||
WhenChecker.checkSealedWhenIsReserved(trace, expression.whenKeyword)
|
||||
|
||||
components.dataFlowAnalyzer.recordExpectedType(trace, expression, contextWithExpectedType.expectedType)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user