[FIR] Support 4 diagnostics for pairs of modifiers
In particular, this commit includes: * Attempt to abstract access to FirSourceElement via FirModifier * Add more visit functions to DeclarationCheckersDiagnosticComponent * Add messages+factories for 4 modifier-related errors and warnings * Introduce FirModifierChecker
This commit is contained in:
committed by
Mikhail Glukhikh
parent
311a91af79
commit
b7d8e879a6
+4
-4
@@ -1,8 +1,8 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
interface Foo<T>
|
||||
interface Foo1<in out T>
|
||||
interface Foo2<in in T>
|
||||
interface Foo1<<!INCOMPATIBLE_MODIFIERS!>in<!> <!INCOMPATIBLE_MODIFIERS!>out<!> T>
|
||||
interface Foo2<in <!REPEATED_MODIFIER!>in<!> T>
|
||||
|
||||
fun test1(foo: Foo<in out Int>) = foo
|
||||
fun test2(): Foo<in in Int> = throw Exception()
|
||||
@@ -10,11 +10,11 @@ fun test2(): Foo<in in Int> = throw Exception()
|
||||
fun test3() {
|
||||
val f: Foo<out out out out Int>
|
||||
|
||||
class Bzz<in in T>
|
||||
class Bzz<in <!REPEATED_MODIFIER!>in<!> T>
|
||||
}
|
||||
|
||||
class A {
|
||||
fun <out out T> bar() {
|
||||
fun <out <!REPEATED_MODIFIER!>out<!> T> bar() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user