[FE] Prohibit explicit @ContextFunctionTypeParams usage

This commit is contained in:
Anastasiya Shadrina
2021-09-19 18:12:06 +07:00
committed by TeamCityServer
parent a091b345a0
commit b3591e77be
10 changed files with 78 additions and 1 deletions
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.descriptors.annotations.KotlinRetention
import org.jetbrains.kotlin.descriptors.annotations.KotlinTarget
import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.diagnostics.reportDiagnosticOnce
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getAnnotationEntries
@@ -224,6 +225,12 @@ class AnnotationChecker(
*/
descriptor.forceResolveAllContents()
}
val contextReceiversSupported = languageVersionSettings.supportsFeature(ContextReceivers)
if (descriptor.fqName == FqName("kotlin.ContextFunctionTypeParams") && !contextReceiversSupported) {
trace.report(Errors.UNSUPPORTED_FEATURE.on(entry, ContextReceivers to languageVersionSettings))
}
val classDescriptor = descriptor.annotationClass ?: continue
val useSiteTarget = entry.useSiteTarget?.getAnnotationUseSiteTarget() ?: annotated.getDefaultUseSiteTarget(descriptor)