Files
kotlin-fork/compiler/testData/diagnostics/tests/multimodule/expectActualAnnotationsWithLazyResolve.ll.kt
T
Roman Efremov 0fd700de21 [FIR] Fix case with lazy resolve in expect-actual annotation checker
Unresolved annotation arguments were treated as absent arguments,
which lead to false-positive reports.
Add assert and test for that and fix.

MR: KT-MR-12245

^KT-60671 Fixed
2023-10-16 10:48:08 +00:00

42 lines
1.4 KiB
Kotlin
Vendored

// LL_FIR_DIVERGENCE
// Difference to FIR is false-positive report of MISSING_DEPENDENCY_SUPERCLASS.
// This is because JVM Enum with `java.io.Serializable` superclass resolved instead of common builtin Enum.
// Must be fixed with KT-61757.
// LL_FIR_DIVERGENCE
// Test for ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT diagnostic when annotations arguments are lazily resolved.
// LANGUAGE: +MultiPlatformProjects
// MODULE: common
// TARGET_PLATFORM: Common
@Target(AnnotationTarget.<!MISSING_DEPENDENCY_SUPERCLASS!>TYPE<!>, AnnotationTarget.<!MISSING_DEPENDENCY_SUPERCLASS!>FUNCTION<!>)
annotation class Ann(val s: String = "default")
expect fun onType_negative(): @Ann("") Any
expect fun onType_positive(): @Ann("") Any
@Ann("")
expect fun onFunction_negative()
@Ann("")
expect fun onFunction_positive()
@Ann
expect fun withEmptyArguments_negative()
@Ann
expect fun withEmptyArguments_positive()
// MODULE: main()()(common)
// TARGET_PLATFORM: JVM
actual fun onType_negative(): @Ann("") Any = Any()
actual fun <!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>onType_positive<!>(): @Ann("incorrect") Any = Any()
@Ann("")
actual fun onFunction_negative() {}
@Ann("incorrect")
actual fun <!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>onFunction_positive<!>() {}
@Ann
actual fun withEmptyArguments_negative() {}
@Ann("incorrect")
actual fun <!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>withEmptyArguments_positive<!>() {}