diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirCastOperatorsChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirCastOperatorsChecker.kt index b029061c954..5330ba89d6c 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirCastOperatorsChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirCastOperatorsChecker.kt @@ -48,7 +48,7 @@ object FirCastOperatorsChecker : FirTypeOperatorCallChecker() { reporter.reportOn(expression.source, FirErrors.UNCHECKED_CAST, actualType, targetType, context) } } else if (expression.operation == FirOperation.IS) { - if (!context.isContractBody && isCastErased(actualType, targetType, context)) { + if (isCastErased(actualType, targetType, context)) { reporter.reportOn(conversionTypeRef.source, FirErrors.CANNOT_CHECK_FOR_ERASED, targetType, context) } } diff --git a/compiler/testData/diagnostics/testsWithStdLib/contracts/dsl/errors/typeReferences.1.3.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/contracts/dsl/errors/typeReferences.1.3.fir.kt index f12aef6c73e..15138152edd 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/contracts/dsl/errors/typeReferences.1.3.fir.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/contracts/dsl/errors/typeReferences.1.3.fir.kt @@ -13,14 +13,14 @@ inline fun referToReifiedGeneric(x: Any?) { class Generic { fun referToCaptured(x: Any?) { contract { - returns() implies (x is T) + returns() implies (x is T) } } } fun referToSubstituted(x: Any?) { contract { - returns() implies (x is Generic) + returns() implies (x is Generic) } } @@ -36,13 +36,13 @@ typealias SimpleType = Int fun referToAliasedGeneric(x: Any?) { contract { - returns() implies (x is GenericString) + returns() implies (x is GenericString) } } fun referToAliasedFunctionType(x: Any?) { contract { - returns() implies (x is FunctionalType) + returns() implies (x is FunctionalType) } } diff --git a/compiler/testData/diagnostics/testsWithStdLib/contracts/dsl/errors/typeReferences.1.4.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/contracts/dsl/errors/typeReferences.1.4.fir.kt index 1ebbccf7666..e5db2da5e72 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/contracts/dsl/errors/typeReferences.1.4.fir.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/contracts/dsl/errors/typeReferences.1.4.fir.kt @@ -13,14 +13,14 @@ inline fun referToReifiedGeneric(x: Any?) { class Generic { fun referToCaptured(x: Any?) { contract { - returns() implies (x is T) + returns() implies (x is T) } } } fun referToSubstituted(x: Any?) { contract { - returns() implies (x is Generic) + returns() implies (x is Generic) } } @@ -36,13 +36,13 @@ typealias SimpleType = Int fun referToAliasedGeneric(x: Any?) { contract { - returns() implies (x is GenericString) + returns() implies (x is GenericString) } } fun referToAliasedFunctionType(x: Any?) { contract { - returns() implies (x is FunctionalType) + returns() implies (x is FunctionalType) } } diff --git a/compiler/testData/diagnostics/testsWithStdLib/contracts/fromStdlib/contractWithSubstitution.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/contracts/fromStdlib/contractWithSubstitution.fir.kt index 2b256a21e45..ac79493972f 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/contracts/fromStdlib/contractWithSubstitution.fir.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/contracts/fromStdlib/contractWithSubstitution.fir.kt @@ -12,13 +12,13 @@ abstract class Base { @OptIn(ExperimentalContracts::class) fun checkIsT(s: Any?): Boolean { - contract { returns(true) implies (s is T) } + contract { returns(true) implies (s is T) } return false } @OptIn(ExperimentalContracts::class) fun checkIsOwnerR(s: Any?): Boolean { - contract { returns(true) implies (s is R) } + contract { returns(true) implies (s is R) } return false }