Make FE1.0/FIR OptIn override message more clear

This commit is contained in:
Mikhail Glukhikh
2022-03-03 10:49:56 +03:00
committed by Space
parent d823020c07
commit 779aa75855
11 changed files with 133 additions and 16 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
warning: ATTENTION!
This build uses in-dev FIR:
-Xuse-fir
compiler/testData/cli/jvm/optInEmptyMessage.kt:8:5: error: this declaration needs OptIn. Its usage must be marked with '@EmptyMarker' or '@OptIn(EmptyMarker::class)'
compiler/testData/cli/jvm/optInEmptyMessageFir.kt:8:5: error: this declaration needs OptIn. Its usage must be marked with '@EmptyMarker' or '@OptIn(EmptyMarker::class)'
foo()
^
COMPILATION_ERROR
+4
View File
@@ -0,0 +1,4 @@
$TESTDATA_DIR$/optInOverrideMessage.kt
-d
$TEMP_DIR$
-opt-in=kotlin.RequiresOptIn
+19
View File
@@ -0,0 +1,19 @@
@RequiresOptIn(message = "This API is experimental and can change at any time, please use with care")
annotation class Marker
@RequiresOptIn
annotation class EmptyMarker
interface Base {
@Marker
fun foo()
@EmptyMarker
fun bar()
}
class Derived : Base {
override fun foo() {}
override fun bar() {}
}
+7
View File
@@ -0,0 +1,7 @@
compiler/testData/cli/jvm/optInOverrideMessage.kt:16:18: error: base declaration of supertype 'Base' needs OptIn. This API is experimental and can change at any time, please use with care. The declaration override must be annotated with '@Marker'
override fun foo() {}
^
compiler/testData/cli/jvm/optInOverrideMessage.kt:18:18: error: base declaration of supertype 'Base' needs OptIn. The declaration override must be annotated with '@EmptyMarker'
override fun bar() {}
^
COMPILATION_ERROR
@@ -0,0 +1,5 @@
$TESTDATA_DIR$/optInOverrideMessageFir.kt
-d
$TEMP_DIR$
-opt-in=kotlin.RequiresOptIn
-Xuse-fir
+19
View File
@@ -0,0 +1,19 @@
@RequiresOptIn(message = "This API is experimental and can change at any time, please use with care")
annotation class Marker
@RequiresOptIn
annotation class EmptyMarker
interface Base {
@Marker
fun foo()
@EmptyMarker
fun bar()
}
class Derived : Base {
override fun foo() {}
override fun bar() {}
}
+10
View File
@@ -0,0 +1,10 @@
warning: ATTENTION!
This build uses in-dev FIR:
-Xuse-fir
compiler/testData/cli/jvm/optInOverrideMessageFir.kt:16:18: error: base declaration of supertype 'Base' needs OptIn. This API is experimental and can change at any time, please use with care. The declaration override must be annotated with '@Marker'
override fun foo() {}
^
compiler/testData/cli/jvm/optInOverrideMessageFir.kt:18:18: error: base declaration of supertype 'Base' needs OptIn. The declaration override must be annotated with '@EmptyMarker'
override fun bar() {}
^
COMPILATION_ERROR