Allow null operators for result and using Result as return type with enabled InlineClasses
This commit is contained in:
+3
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.resolve.calls.checkers
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.diagnostics.Errors
|
||||
import org.jetbrains.kotlin.diagnostics.reportDiagnosticOnce
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
@@ -16,6 +17,8 @@ import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils
|
||||
|
||||
class ResultTypeWithNullableOperatorsChecker : CallChecker {
|
||||
override fun check(resolvedCall: ResolvedCall<*>, reportOn: PsiElement, context: CallCheckerContext) {
|
||||
if (context.languageVersionSettings.supportsFeature(LanguageFeature.AllowNullOperatorsForResult)) return
|
||||
|
||||
val name = resolvedCall.resultingDescriptor.name
|
||||
val operationNode = resolvedCall.call.callOperationNode
|
||||
|
||||
|
||||
+8
-1
@@ -6,6 +6,8 @@
|
||||
package org.jetbrains.kotlin.resolve.checkers
|
||||
|
||||
import org.jetbrains.kotlin.config.AnalysisFlags
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.config.LanguageVersion
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.diagnostics.Errors
|
||||
import org.jetbrains.kotlin.diagnostics.reportDiagnosticOnce
|
||||
@@ -17,7 +19,12 @@ import org.jetbrains.kotlin.types.KotlinType
|
||||
|
||||
class ResultClassInReturnTypeChecker : DeclarationChecker {
|
||||
override fun check(declaration: KtDeclaration, descriptor: DeclarationDescriptor, context: DeclarationCheckerContext) {
|
||||
if (context.languageVersionSettings.getFlag(AnalysisFlags.allowResultReturnType)) return
|
||||
val languageVersionSettings = context.languageVersionSettings
|
||||
if (
|
||||
languageVersionSettings.getFlag(AnalysisFlags.allowResultReturnType) ||
|
||||
languageVersionSettings.supportsFeature(LanguageFeature.InlineClasses) &&
|
||||
languageVersionSettings.supportsFeature(LanguageFeature.AllowResultInReturnType)
|
||||
) return
|
||||
|
||||
if (declaration !is KtCallableDeclaration || descriptor !is CallableMemberDescriptor) return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user