Instantiation of annotations for JVM IR with the corresponding feature flag

Seperate checker for platforms that do not support this language feature yet

Synthetic implementations of annotations are generated on-demand with proper 
equals, hashCode, and annotationType methods

#KT-47699 Fixed
This commit is contained in:
Leonid Startsev
2021-07-21 10:23:51 +00:00
committed by Space
parent 4bc521249b
commit ce0a3a57df
59 changed files with 1589 additions and 64 deletions
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.js.analyze.JsNativeDiagnosticSuppressor
import org.jetbrains.kotlin.js.naming.NameSuggestion
import org.jetbrains.kotlin.js.resolve.diagnostics.*
import org.jetbrains.kotlin.resolve.PlatformConfiguratorBase
import org.jetbrains.kotlin.resolve.calls.checkers.InstantiationOfAnnotationClassesCallChecker
import org.jetbrains.kotlin.resolve.checkers.ExpectedActualDeclarationChecker
import org.jetbrains.kotlin.resolve.deprecation.CoroutineCompatibilitySupport
import org.jetbrains.kotlin.types.DynamicTypesAllowed
@@ -29,9 +30,10 @@ object JsPlatformConfigurator : PlatformConfiguratorBase(
JsExportDeclarationChecker
),
additionalCallCheckers = listOf(
JsModuleCallChecker,
JsDynamicCallChecker,
JsDefinedExternallyCallChecker,
JsModuleCallChecker,
JsDynamicCallChecker,
JsDefinedExternallyCallChecker,
InstantiationOfAnnotationClassesCallChecker
),
identifierChecker = JsIdentifierChecker
) {