Highlight only declarations, without body, on platform signature clashes
This commit is contained in:
@@ -203,7 +203,7 @@ public interface Errors {
|
||||
DiagnosticFactory0<JetNamedDeclaration> PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE = DiagnosticFactory0.create(ERROR, NAMED_ELEMENT);
|
||||
|
||||
DiagnosticFactory2<JetDeclaration, CallableMemberDescriptor, String> CONFLICTING_OVERLOADS = DiagnosticFactory2.create(ERROR, DECLARATION);
|
||||
DiagnosticFactory1<PsiElement, String> CONFLICTING_PLATFORM_DECLARATIONS = DiagnosticFactory1.create(ERROR);
|
||||
DiagnosticFactory1<PsiElement, String> CONFLICTING_PLATFORM_DECLARATIONS = DiagnosticFactory1.create(ERROR, DECLARATION_OR_DEFAULT);
|
||||
|
||||
DiagnosticFactory0<JetNamedDeclaration> NON_FINAL_MEMBER_IN_FINAL_CLASS = DiagnosticFactory0.create(WARNING, modifierSetPosition(
|
||||
JetTokens.OPEN_KEYWORD));
|
||||
|
||||
@@ -190,6 +190,25 @@ public class PositioningStrategies {
|
||||
}
|
||||
};
|
||||
|
||||
public static final PositioningStrategy<PsiElement> DECLARATION_OR_DEFAULT = new PositioningStrategy<PsiElement>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public List<TextRange> mark(@NotNull PsiElement element) {
|
||||
if (element instanceof JetDeclaration) {
|
||||
return DECLARATION.mark((JetDeclaration) element);
|
||||
}
|
||||
return DEFAULT.mark(element);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid(@NotNull PsiElement element) {
|
||||
if (element instanceof JetDeclaration) {
|
||||
return DECLARATION.isValid((JetDeclaration) element);
|
||||
}
|
||||
return DEFAULT.isValid(element);
|
||||
}
|
||||
};
|
||||
|
||||
public static final PositioningStrategy<JetModifierListOwner> ABSTRACT_MODIFIER = modifierSetPosition(JetTokens.ABSTRACT_KEYWORD);
|
||||
|
||||
public static final PositioningStrategy<JetModifierListOwner> OVERRIDE_MODIFIER = modifierSetPosition(JetTokens.OVERRIDE_KEYWORD);
|
||||
|
||||
+1
-1
@@ -4,5 +4,5 @@ open class B {
|
||||
|
||||
class C : B() {
|
||||
val x: Int
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>get() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>get()<!> = 1
|
||||
}
|
||||
+1
-1
@@ -4,5 +4,5 @@ open class B {
|
||||
}
|
||||
|
||||
class C : B() {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
+1
-1
@@ -4,5 +4,5 @@ trait T {
|
||||
}
|
||||
|
||||
class C : T {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: List<String>) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: MutableList<String>) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: List<String>)<!> {}
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: MutableList<String>)<!> {}
|
||||
+2
-2
@@ -8,5 +8,5 @@ trait Bar<T> {
|
||||
fun foo(l: List<T>)
|
||||
}
|
||||
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>class Baz(f: Foo<String>, b: Bar<Int>): Foo<String> by f, Bar<Int> by b {
|
||||
}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>class Baz(f: Foo<String>, b: Bar<Int>)<!>: Foo<String> by f, Bar<Int> by b {
|
||||
}
|
||||
+1
-1
@@ -5,5 +5,5 @@ trait Foo<T> {
|
||||
}
|
||||
|
||||
class Bar(f: Foo<String>): Foo<String> by f {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(l: List<Int>) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(l: List<Int>)<!> {}
|
||||
}
|
||||
@@ -2,5 +2,5 @@
|
||||
|
||||
class G<T>
|
||||
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: G<String>): G<Int> {null!!}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: G<Int>): G<String> {null!!}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: G<String>): G<Int><!> {null!!}
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: G<Int>): G<String><!> {null!!}
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN
|
||||
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: List<String>) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: java.util.List<String>) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: List<String>)<!> {}
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: java.util.List<String>)<!> {}
|
||||
@@ -1,4 +1,4 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: String) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: String?) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: String)<!> {}
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: String?)<!> {}
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN
|
||||
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: java.lang.String) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: String) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: java.lang.String)<!> {}
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: String)<!> {}
|
||||
@@ -1,4 +1,4 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun <T> foo(x: T): T {null!!}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Any): Any {null!!}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun <T> foo(x: T): T<!> {null!!}
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Any): Any<!> {null!!}
|
||||
+2
-2
@@ -2,5 +2,5 @@
|
||||
|
||||
trait Foo
|
||||
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun <T: Foo> foo(x: T): T {null!!}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Foo): Foo {null!!}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun <T: Foo> foo(x: T): T<!> {null!!}
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Foo): Foo<!> {null!!}
|
||||
+2
-2
@@ -3,6 +3,6 @@
|
||||
trait Foo
|
||||
trait Bar
|
||||
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun <T: Foo> foo(x: T): T where T: Bar {null!!}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Foo): Foo {null!!}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun <T: Foo> foo(x: T): T where T: Bar<!> {null!!}
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Foo): Foo<!> {null!!}
|
||||
fun foo(x: Bar): Bar {null!!}
|
||||
+2
-2
@@ -3,6 +3,6 @@
|
||||
trait Foo
|
||||
trait Bar
|
||||
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun <T> foo(x: T): T where T: Foo, T: Bar {null!!}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Foo): Foo {null!!}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun <T> foo(x: T): T where T: Foo, T: Bar<!> {null!!}
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Foo): Foo<!> {null!!}
|
||||
fun foo(x: Bar): Bar {null!!}
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
class C {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
class C {
|
||||
class object {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Any) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun Any.foo() {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Any)<!> {}
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun Any.foo()<!> {}
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX(t: Any) = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX(t: Any)<!> = 1
|
||||
val Any.x: Int
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>get() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>get()<!> = 1
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun setX(x: Int) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun setX(x: Int)<!> {}
|
||||
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>var x: Int = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>var x: Int<!> = 1
|
||||
}
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun setX(x: Int) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun setX(x: Int)<!> {}
|
||||
|
||||
var x: Int = 1
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>set(v) {}<!>
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
fun foo() {
|
||||
class C {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
class B {
|
||||
class C {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
object C {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
fun foo() =
|
||||
object {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX()<!> = 1
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
// FILE: a.kt
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x<!> = 1
|
||||
|
||||
// FILE: b.kt
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX()<!> = 1
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
val x: Int
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>get() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>get()<!> = 1
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX()<!> = 1
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
trait T {
|
||||
val x: Int
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>get() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>get()<!> = 1
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
data class C(val c: Int) {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun `copy$default`(c: C, x: Int, m: Int) = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun `copy$default`(c: C, x: Int, m: Int)<!> = 1
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>class C {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun `a$default`(c: C, x: Int, m: Int) {}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>class C<!> {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun `a$default`(c: C, x: Int, m: Int)<!> {}
|
||||
fun a(x: Int = 1) {}
|
||||
}<!>
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
trait Foo
|
||||
|
||||
class Bar(f: Foo) : Foo by f {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val `$delegate_0`: Foo? = null<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val `$delegate_0`: Foo?<!> = null
|
||||
}
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>inner class D {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val `this$0`: C? = null<!>
|
||||
}<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>inner class D<!> {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val `this$0`: C?<!> = null
|
||||
}
|
||||
}
|
||||
@@ -3,5 +3,5 @@ trait T {
|
||||
}
|
||||
|
||||
class C : T {
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
|
||||
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x<!> = 1
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
class C {
|
||||
<error>val x = 1</error>
|
||||
<error>fun getX() = 1</error>
|
||||
<error>val x</error> = 1
|
||||
<error>fun getX()</error> = 1
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
class C {
|
||||
class object {
|
||||
<error>val x = 1</error>
|
||||
<error>fun getX() = 1</error>
|
||||
<error>val x</error> = 1
|
||||
<error>fun getX()</error> = 1
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
fun foo() {
|
||||
class C {
|
||||
<error>val x = 1</error>
|
||||
<error>fun getX() = 1</error>
|
||||
<error>val x</error> = 1
|
||||
<error>fun getX()</error> = 1
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
class B {
|
||||
class C {
|
||||
<error>val x = 1</error>
|
||||
<error>fun getX() = 1</error>
|
||||
<error>val x</error> = 1
|
||||
<error>fun getX()</error> = 1
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
object C {
|
||||
<error>val x = 1</error>
|
||||
<error>fun getX() = 1</error>
|
||||
<error>val x</error> = 1
|
||||
<error>fun getX()</error> = 1
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fun foo() =
|
||||
object {
|
||||
<error>val x = 1</error>
|
||||
<error>fun getX() = 1</error>
|
||||
<error>val x</error> = 1
|
||||
<error>fun getX()</error> = 1
|
||||
}
|
||||
@@ -1,2 +1,2 @@
|
||||
<error>val x = 1</error>
|
||||
<error>fun getX() = 1</error>
|
||||
<error>val x</error> = 1
|
||||
<error>fun getX()</error> = 1
|
||||
@@ -7,5 +7,5 @@ trait T2 {
|
||||
get() = 1
|
||||
}
|
||||
|
||||
<error>class C : T1, T2</error> {
|
||||
class <error>C</error> : T1, T2 {
|
||||
}
|
||||
Reference in New Issue
Block a user