Make FE1.0/FIR OptIn override message more clear
This commit is contained in:
+1
-1
@@ -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
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
$TESTDATA_DIR$/optInOverrideMessage.kt
|
||||
-d
|
||||
$TEMP_DIR$
|
||||
-opt-in=kotlin.RequiresOptIn
|
||||
@@ -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() {}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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() {}
|
||||
}
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user