[FIR] Don't report duplicated errors on default accessor error type refs
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package rest
|
package rest
|
||||||
|
|
||||||
abstract class Foo<T> {
|
abstract class Foo<T> {
|
||||||
abstract val x: <!TYPE_ARGUMENTS_NOT_ALLOWED, TYPE_ARGUMENTS_NOT_ALLOWED!>T<Int><!>
|
abstract val x: <!TYPE_ARGUMENTS_NOT_ALLOWED!>T<Int><!>
|
||||||
|
|
||||||
abstract fun foo(): <!TYPE_ARGUMENTS_NOT_ALLOWED!>T<String><!>
|
abstract fun foo(): <!TYPE_ARGUMENTS_NOT_ALLOWED!>T<String><!>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ abstract class My<T : Some> {
|
|||||||
|
|
||||||
abstract fun foo(arg: T)
|
abstract fun foo(arg: T)
|
||||||
|
|
||||||
abstract val y: <!OTHER_ERROR, OTHER_ERROR!>My.T<!>
|
abstract val y: <!OTHER_ERROR!>My.T<!>
|
||||||
|
|
||||||
abstract val z: <!OTHER_ERROR, OTHER_ERROR!>test.My.T<!>
|
abstract val z: <!OTHER_ERROR!>test.My.T<!>
|
||||||
|
|
||||||
class Some : <!UNRESOLVED_REFERENCE!>T<!>()
|
class Some : <!UNRESOLVED_REFERENCE!>T<!>()
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticFactory0
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticFactory0
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.*
|
import org.jetbrains.kotlin.fir.diagnostics.*
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind.*
|
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
||||||
@@ -30,6 +31,10 @@ class ErrorNodeDiagnosticCollectorComponent(collector: AbstractDiagnosticCollect
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef, data: CheckerContext) {
|
override fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef, data: CheckerContext) {
|
||||||
|
if (data.containingDeclarations.lastOrNull() is FirDefaultPropertyAccessor) {
|
||||||
|
// It always uses the same type ref as the corresponding property
|
||||||
|
return
|
||||||
|
}
|
||||||
val source = errorTypeRef.source ?: return
|
val source = errorTypeRef.source ?: return
|
||||||
runCheck { reportFirDiagnostic(errorTypeRef.diagnostic, source, it) }
|
runCheck { reportFirDiagnostic(errorTypeRef.diagnostic, source, it) }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ enum class Color {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class MyColor(val x: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Color.RED<!>, y: <!OTHER_ERROR!>Color.RED<!>) : <!OTHER_ERROR!>Color.RED<!> {
|
class MyColor(val x: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Color.RED<!>, y: <!OTHER_ERROR!>Color.RED<!>) : <!OTHER_ERROR!>Color.RED<!> {
|
||||||
|
|
||||||
var z: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Color.RED<!> = Color.RED
|
var z: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Color.RED<!> = Color.RED
|
||||||
set(arg: Color.RED) { z = arg }
|
set(arg: Color.RED) { z = arg }
|
||||||
|
|
||||||
fun foo(arg: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Color.RED<!>): <!OTHER_ERROR!>Color.RED<!> = arg
|
fun foo(arg: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Color.RED<!>): <!OTHER_ERROR!>Color.RED<!> = arg
|
||||||
|
|||||||
@@ -6,14 +6,14 @@ package foobar.a
|
|||||||
import java.*
|
import java.*
|
||||||
|
|
||||||
val a : java.util.List<Int>? = null
|
val a : java.util.List<Int>? = null
|
||||||
val a2 : <!OTHER_ERROR, OTHER_ERROR!>util.List<Int>?<!> = null
|
val a2 : <!OTHER_ERROR!>util.List<Int>?<!> = null
|
||||||
val a3 : <!OTHER_ERROR, OTHER_ERROR!>LinkedList<Int>?<!> = null
|
val a3 : <!OTHER_ERROR!>LinkedList<Int>?<!> = null
|
||||||
|
|
||||||
// FILE: b.kt
|
// FILE: b.kt
|
||||||
package foobar
|
package foobar
|
||||||
|
|
||||||
abstract class Foo<T>() {
|
abstract class Foo<T>() {
|
||||||
abstract val x : <!TYPE_ARGUMENTS_NOT_ALLOWED, TYPE_ARGUMENTS_NOT_ALLOWED!>T<Int><!>
|
abstract val x : <!TYPE_ARGUMENTS_NOT_ALLOWED!>T<Int><!>
|
||||||
}
|
}
|
||||||
|
|
||||||
// FILE: b.kt
|
// FILE: b.kt
|
||||||
@@ -21,7 +21,7 @@ package foobar.a
|
|||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
val b : List<Int>? = a
|
val b : List<Int>? = a
|
||||||
val b1 : <!OTHER_ERROR, OTHER_ERROR!>util.List<Int>?<!> = a
|
val b1 : <!OTHER_ERROR!>util.List<Int>?<!> = a
|
||||||
|
|
||||||
// FILE: b.kt
|
// FILE: b.kt
|
||||||
package foobar
|
package foobar
|
||||||
|
|||||||
+1
-1
@@ -34,7 +34,7 @@ annotation class Ann8(val p1: Array<String>,
|
|||||||
val p4: Array<Ann1>)
|
val p4: Array<Ann1>)
|
||||||
|
|
||||||
annotation class Ann9(
|
annotation class Ann9(
|
||||||
val error: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Unresolved<!> = <!UNRESOLVED_REFERENCE!>Unresolved<!>.<!UNRESOLVED_REFERENCE!>VALUE<!>
|
val error: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Unresolved<!> = <!UNRESOLVED_REFERENCE!>Unresolved<!>.<!UNRESOLVED_REFERENCE!>VALUE<!>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||||
data class A(val i: Int, val j: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>G<!>)
|
data class A(val i: Int, val j: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>G<!>)
|
||||||
data class B(val i: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>G<!>, val j: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>G<!>)
|
data class B(val i: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>G<!>, val j: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>G<!>)
|
||||||
|
|
||||||
|
|
||||||
fun fa(a: A) {
|
fun fa(a: A) {
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
interface T {
|
interface T {
|
||||||
val x: <!OTHER_ERROR, OTHER_ERROR!>ErrorType<!>
|
val x: <!OTHER_ERROR!>ErrorType<!>
|
||||||
fun getX(): <!OTHER_ERROR!>ErrorType1<!>
|
fun getX(): <!OTHER_ERROR!>ErrorType1<!>
|
||||||
}
|
}
|
||||||
Vendored
+7
-7
@@ -12,10 +12,10 @@ inline class ULong(private val l: Long)
|
|||||||
|
|
||||||
// FILE: test.kt
|
// FILE: test.kt
|
||||||
|
|
||||||
annotation class AnnoUB(val ub0: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UByte<!>, val ub1: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UByte<!>)
|
annotation class AnnoUB(val ub0: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UByte<!>, val ub1: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UByte<!>)
|
||||||
annotation class AnnoUS(val us0: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UShort<!>, val us1: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UShort<!>)
|
annotation class AnnoUS(val us0: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UShort<!>, val us1: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UShort<!>)
|
||||||
annotation class AnnoUI(val ui0: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UInt<!>, val ui1: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UInt<!>, val ui2: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UInt<!>, val ui3: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UInt<!>)
|
annotation class AnnoUI(val ui0: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UInt<!>, val ui1: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UInt<!>, val ui2: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UInt<!>, val ui3: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UInt<!>)
|
||||||
annotation class AnnoUL(val ul0: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>ULong<!>, val ul1: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>ULong<!>)
|
annotation class AnnoUL(val ul0: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>ULong<!>, val ul1: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>ULong<!>)
|
||||||
|
|
||||||
const val ub0 = <!UNRESOLVED_REFERENCE!>UByte<!>(1)
|
const val ub0 = <!UNRESOLVED_REFERENCE!>UByte<!>(1)
|
||||||
const val us0 = <!UNRESOLVED_REFERENCE!>UShort<!>(2)
|
const val us0 = <!UNRESOLVED_REFERENCE!>UShort<!>(2)
|
||||||
@@ -37,8 +37,8 @@ fun f2() {}
|
|||||||
@AnnoUL(ul0, <!UNRESOLVED_REFERENCE!>ULong<!>(5))
|
@AnnoUL(ul0, <!UNRESOLVED_REFERENCE!>ULong<!>(5))
|
||||||
fun f3() {}
|
fun f3() {}
|
||||||
|
|
||||||
const val explicit: <!OTHER_ERROR, OTHER_ERROR!>UInt<!> = <!UNRESOLVED_REFERENCE!>UInt<!>(2)
|
const val explicit: <!OTHER_ERROR!>UInt<!> = <!UNRESOLVED_REFERENCE!>UInt<!>(2)
|
||||||
|
|
||||||
const val nullable: <!OTHER_ERROR, OTHER_ERROR!>UInt?<!> = <!UNRESOLVED_REFERENCE!>UInt<!>(3)
|
const val nullable: <!OTHER_ERROR!>UInt?<!> = <!UNRESOLVED_REFERENCE!>UInt<!>(3)
|
||||||
|
|
||||||
annotation class NullableAnno(val u: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UInt?<!>)
|
annotation class NullableAnno(val u: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>UInt?<!>)
|
||||||
+3
-3
@@ -15,9 +15,9 @@ class A<T> {
|
|||||||
val y: B<String>.C<String>? = null
|
val y: B<String>.C<String>? = null
|
||||||
val z: B<String>.D? = null
|
val z: B<String>.D? = null
|
||||||
|
|
||||||
val c: <!OTHER_ERROR, OTHER_ERROR!>C<Int>?<!> = null
|
val c: <!OTHER_ERROR!>C<Int>?<!> = null
|
||||||
val d: <!OTHER_ERROR, OTHER_ERROR!>D?<!> = null
|
val d: <!OTHER_ERROR!>D?<!> = null
|
||||||
|
|
||||||
val innerMost: <!OTHER_ERROR, OTHER_ERROR!>Innermost<String>?<!> = null
|
val innerMost: <!OTHER_ERROR!>Innermost<String>?<!> = null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+14
-14
@@ -72,28 +72,28 @@ class C : O.B() {
|
|||||||
val n: FromCompanionC? = null
|
val n: FromCompanionC? = null
|
||||||
|
|
||||||
// INVISIBLE: direct superclasses themselves.
|
// INVISIBLE: direct superclasses themselves.
|
||||||
val a: <!OTHER_ERROR, OTHER_ERROR!>A?<!> = null
|
val a: <!OTHER_ERROR!>A?<!> = null
|
||||||
val b: <!OTHER_ERROR, OTHER_ERROR!>B?<!> = null
|
val b: <!OTHER_ERROR!>B?<!> = null
|
||||||
|
|
||||||
// DEPRECATED: Classifiers from companions of direct superclasses
|
// DEPRECATED: Classifiers from companions of direct superclasses
|
||||||
val e: <!OTHER_ERROR, OTHER_ERROR!>FromCompanionA?<!> = null
|
val e: <!OTHER_ERROR!>FromCompanionA?<!> = null
|
||||||
val f: <!OTHER_ERROR, OTHER_ERROR!>FromCompanionB?<!> = null
|
val f: <!OTHER_ERROR!>FromCompanionB?<!> = null
|
||||||
|
|
||||||
// INVISIBLE: "cousin" supertypes themselves
|
// INVISIBLE: "cousin" supertypes themselves
|
||||||
val g: <!OTHER_ERROR, OTHER_ERROR!>Alpha?<!> = null
|
val g: <!OTHER_ERROR!>Alpha?<!> = null
|
||||||
val h: <!OTHER_ERROR, OTHER_ERROR!>Beta?<!> = null
|
val h: <!OTHER_ERROR!>Beta?<!> = null
|
||||||
val i: <!OTHER_ERROR, OTHER_ERROR!>Gamma?<!> = null
|
val i: <!OTHER_ERROR!>Gamma?<!> = null
|
||||||
|
|
||||||
// DEPRECATED: classifiers from "cousin" superclasses
|
// DEPRECATED: classifiers from "cousin" superclasses
|
||||||
val k: <!OTHER_ERROR, OTHER_ERROR!>FromAlpha?<!> = null
|
val k: <!OTHER_ERROR!>FromAlpha?<!> = null
|
||||||
val l: <!OTHER_ERROR, OTHER_ERROR!>FromBeta?<!> = null
|
val l: <!OTHER_ERROR!>FromBeta?<!> = null
|
||||||
val m: <!OTHER_ERROR, OTHER_ERROR!>FromGamma?<!> = null
|
val m: <!OTHER_ERROR!>FromGamma?<!> = null
|
||||||
|
|
||||||
// INVISIBLE: We don't see classifiers from companions of "cousin" superclasses
|
// INVISIBLE: We don't see classifiers from companions of "cousin" superclasses
|
||||||
val o: <!OTHER_ERROR, OTHER_ERROR!>FromCompanionAlpha?<!> = null
|
val o: <!OTHER_ERROR!>FromCompanionAlpha?<!> = null
|
||||||
val p: <!OTHER_ERROR, OTHER_ERROR!>FromCompanionBeta?<!> = null
|
val p: <!OTHER_ERROR!>FromCompanionBeta?<!> = null
|
||||||
val q: <!OTHER_ERROR, OTHER_ERROR!>FromCompanionGamma?<!> = null
|
val q: <!OTHER_ERROR!>FromCompanionGamma?<!> = null
|
||||||
|
|
||||||
// DEPRECATED: Classifiers from supertypes of our own companion
|
// DEPRECATED: Classifiers from supertypes of our own companion
|
||||||
val r: <!OTHER_ERROR, OTHER_ERROR!>FromDelta?<!> = null
|
val r: <!OTHER_ERROR!>FromDelta?<!> = null
|
||||||
}
|
}
|
||||||
Vendored
+14
-14
@@ -71,28 +71,28 @@ class C : O.B() {
|
|||||||
val n: FromCompanionC? = null
|
val n: FromCompanionC? = null
|
||||||
|
|
||||||
// INVISIBLE: direct superclasses themselves.
|
// INVISIBLE: direct superclasses themselves.
|
||||||
val a: <!OTHER_ERROR, OTHER_ERROR!>A?<!> = null
|
val a: <!OTHER_ERROR!>A?<!> = null
|
||||||
val b: <!OTHER_ERROR, OTHER_ERROR!>B?<!> = null
|
val b: <!OTHER_ERROR!>B?<!> = null
|
||||||
|
|
||||||
// DEPRECATED: Classifiers from companions of direct superclasses
|
// DEPRECATED: Classifiers from companions of direct superclasses
|
||||||
val e: <!OTHER_ERROR, OTHER_ERROR!>FromCompanionA?<!> = null
|
val e: <!OTHER_ERROR!>FromCompanionA?<!> = null
|
||||||
val f: <!OTHER_ERROR, OTHER_ERROR!>FromCompanionB?<!> = null
|
val f: <!OTHER_ERROR!>FromCompanionB?<!> = null
|
||||||
|
|
||||||
// INVISIBLE: "cousin" supertypes themselves
|
// INVISIBLE: "cousin" supertypes themselves
|
||||||
val g: <!OTHER_ERROR, OTHER_ERROR!>Alpha?<!> = null
|
val g: <!OTHER_ERROR!>Alpha?<!> = null
|
||||||
val h: <!OTHER_ERROR, OTHER_ERROR!>Beta?<!> = null
|
val h: <!OTHER_ERROR!>Beta?<!> = null
|
||||||
val i: <!OTHER_ERROR, OTHER_ERROR!>Gamma?<!> = null
|
val i: <!OTHER_ERROR!>Gamma?<!> = null
|
||||||
|
|
||||||
// DEPRECATED: classifiers from "cousin" superclasses
|
// DEPRECATED: classifiers from "cousin" superclasses
|
||||||
val k: <!OTHER_ERROR, OTHER_ERROR!>FromAlpha?<!> = null
|
val k: <!OTHER_ERROR!>FromAlpha?<!> = null
|
||||||
val l: <!OTHER_ERROR, OTHER_ERROR!>FromBeta?<!> = null
|
val l: <!OTHER_ERROR!>FromBeta?<!> = null
|
||||||
val m: <!OTHER_ERROR, OTHER_ERROR!>FromGamma?<!> = null
|
val m: <!OTHER_ERROR!>FromGamma?<!> = null
|
||||||
|
|
||||||
// INVISIBLE: We don't see classifiers from companions of "cousin" superclasses
|
// INVISIBLE: We don't see classifiers from companions of "cousin" superclasses
|
||||||
val o: <!OTHER_ERROR, OTHER_ERROR!>FromCompanionAlpha?<!> = null
|
val o: <!OTHER_ERROR!>FromCompanionAlpha?<!> = null
|
||||||
val p: <!OTHER_ERROR, OTHER_ERROR!>FromCompanionBeta?<!> = null
|
val p: <!OTHER_ERROR!>FromCompanionBeta?<!> = null
|
||||||
val q: <!OTHER_ERROR, OTHER_ERROR!>FromCompanionGamma?<!> = null
|
val q: <!OTHER_ERROR!>FromCompanionGamma?<!> = null
|
||||||
|
|
||||||
// DEPRECATED: Classifiers from supertypes of our own companion
|
// DEPRECATED: Classifiers from supertypes of our own companion
|
||||||
val r: <!OTHER_ERROR, OTHER_ERROR!>FromDelta?<!> = null
|
val r: <!OTHER_ERROR!>FromDelta?<!> = null
|
||||||
}
|
}
|
||||||
+4
-4
@@ -9,19 +9,19 @@ interface B {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class X: A {
|
class X: A {
|
||||||
val a: <!OTHER_ERROR, OTHER_ERROR!>A_<!> = <!UNRESOLVED_REFERENCE!>A_<!>()
|
val a: <!OTHER_ERROR!>A_<!> = <!UNRESOLVED_REFERENCE!>A_<!>()
|
||||||
val b: A.A_ = A.A_()
|
val b: A.A_ = A.A_()
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val a: <!OTHER_ERROR, OTHER_ERROR!>A_<!> = <!UNRESOLVED_REFERENCE!>A_<!>()
|
val a: <!OTHER_ERROR!>A_<!> = <!UNRESOLVED_REFERENCE!>A_<!>()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Y: B {
|
class Y: B {
|
||||||
val a: <!OTHER_ERROR, OTHER_ERROR!>B_<!> = <!UNRESOLVED_REFERENCE!>B_<!>()
|
val a: <!OTHER_ERROR!>B_<!> = <!UNRESOLVED_REFERENCE!>B_<!>()
|
||||||
val b: B.B_ = B.B_()
|
val b: B.B_ = B.B_()
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val b: <!OTHER_ERROR, OTHER_ERROR!>B_<!> = <!UNRESOLVED_REFERENCE!>B_<!>()
|
val b: <!OTHER_ERROR!>B_<!> = <!UNRESOLVED_REFERENCE!>B_<!>()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -7,14 +7,14 @@ open class A {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class C: A() {
|
class C: A() {
|
||||||
val b: <!OTHER_ERROR, OTHER_ERROR!>B<!> = null!!
|
val b: <!OTHER_ERROR!>B<!> = null!!
|
||||||
|
|
||||||
init {
|
init {
|
||||||
<!UNRESOLVED_REFERENCE!>B<!>()
|
<!UNRESOLVED_REFERENCE!>B<!>()
|
||||||
}
|
}
|
||||||
|
|
||||||
object O {
|
object O {
|
||||||
val b: <!OTHER_ERROR, OTHER_ERROR!>B<!> = null!!
|
val b: <!OTHER_ERROR!>B<!> = null!!
|
||||||
|
|
||||||
init {
|
init {
|
||||||
<!UNRESOLVED_REFERENCE!>B<!>()
|
<!UNRESOLVED_REFERENCE!>B<!>()
|
||||||
@@ -22,7 +22,7 @@ class C: A() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class K {
|
class K {
|
||||||
val b: <!OTHER_ERROR, OTHER_ERROR!>B<!> = null!!
|
val b: <!OTHER_ERROR!>B<!> = null!!
|
||||||
|
|
||||||
init {
|
init {
|
||||||
<!UNRESOLVED_REFERENCE!>B<!>()
|
<!UNRESOLVED_REFERENCE!>B<!>()
|
||||||
@@ -30,7 +30,7 @@ class C: A() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
inner class I {
|
inner class I {
|
||||||
val b: <!OTHER_ERROR, OTHER_ERROR!>B<!> = null!!
|
val b: <!OTHER_ERROR!>B<!> = null!!
|
||||||
|
|
||||||
init {
|
init {
|
||||||
<!UNRESOLVED_REFERENCE!>B<!>()
|
<!UNRESOLVED_REFERENCE!>B<!>()
|
||||||
|
|||||||
+4
-4
@@ -23,7 +23,7 @@ public class C extends B implements A {
|
|||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
|
|
||||||
class X: A {
|
class X: A {
|
||||||
val a_s: <!OTHER_ERROR, OTHER_ERROR!>A_S<!> = null!!
|
val a_s: <!OTHER_ERROR!>A_S<!> = null!!
|
||||||
|
|
||||||
init {
|
init {
|
||||||
<!UNRESOLVED_REFERENCE!>A_S<!>()
|
<!UNRESOLVED_REFERENCE!>A_S<!>()
|
||||||
@@ -32,7 +32,7 @@ class X: A {
|
|||||||
}
|
}
|
||||||
|
|
||||||
object xD {
|
object xD {
|
||||||
val a_: <!OTHER_ERROR, OTHER_ERROR!>A_S<!> = null!!
|
val a_: <!OTHER_ERROR!>A_S<!> = null!!
|
||||||
|
|
||||||
init {
|
init {
|
||||||
<!UNRESOLVED_REFERENCE!>A_S<!>()
|
<!UNRESOLVED_REFERENCE!>A_S<!>()
|
||||||
@@ -66,7 +66,7 @@ class Y: B() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class Z: C() {
|
class Z: C() {
|
||||||
val a_s: <!OTHER_ERROR, OTHER_ERROR!>A_S<!> = null!!
|
val a_s: <!OTHER_ERROR!>A_S<!> = null!!
|
||||||
val b_: B_ = null!!
|
val b_: B_ = null!!
|
||||||
val b_s: B_S = null!!
|
val b_s: B_S = null!!
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ class Z: C() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
object X {
|
object X {
|
||||||
val a_s: <!OTHER_ERROR, OTHER_ERROR!>A_S<!> = null!!
|
val a_s: <!OTHER_ERROR!>A_S<!> = null!!
|
||||||
val b_: B_ = null!!
|
val b_: B_ = null!!
|
||||||
val b_s: B_S = null!!
|
val b_s: B_S = null!!
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,6 @@ class Derived : Base<Int>() {
|
|||||||
val x1: InnerCell = InnerCell(42)
|
val x1: InnerCell = InnerCell(42)
|
||||||
val x2: Base<Int>.InnerCell = InnerCell(42)
|
val x2: Base<Int>.InnerCell = InnerCell(42)
|
||||||
|
|
||||||
val test1: <!OTHER_ERROR, OTHER_ERROR!>CT<!> = Cell(42)
|
val test1: <!OTHER_ERROR!>CT<!> = Cell(42)
|
||||||
val test2: Base<Int>.CT = Cell(42)
|
val test2: Base<Int>.CT = Cell(42)
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -33,11 +33,11 @@ val seeAlsoDerivedFoo: String = JDerived.foo()
|
|||||||
|
|
||||||
// Referencing nested classes via type alias should be prohibited
|
// Referencing nested classes via type alias should be prohibited
|
||||||
// (in type position and in expression position)
|
// (in type position and in expression position)
|
||||||
val testNested1: <!OTHER_ERROR, OTHER_ERROR!>JT.Nested<!> = JT.<!UNRESOLVED_REFERENCE!>Nested<!>()
|
val testNested1: <!OTHER_ERROR!>JT.Nested<!> = JT.<!UNRESOLVED_REFERENCE!>Nested<!>()
|
||||||
val testNested2: <!OTHER_ERROR, OTHER_ERROR!>KT.Nested<!> = KT.<!UNRESOLVED_REFERENCE!>Nested<!>()
|
val testNested2: <!OTHER_ERROR!>KT.Nested<!> = KT.<!UNRESOLVED_REFERENCE!>Nested<!>()
|
||||||
val testNested3: <!OTHER_ERROR, OTHER_ERROR!>IT.Nested<!> = IT.<!UNRESOLVED_REFERENCE!>Nested<!>()
|
val testNested3: <!OTHER_ERROR!>IT.Nested<!> = IT.<!UNRESOLVED_REFERENCE!>Nested<!>()
|
||||||
val testInner1: <!OTHER_ERROR, OTHER_ERROR!>JT.Inner<!> = JT.<!UNRESOLVED_REFERENCE!>Inner<!>()
|
val testInner1: <!OTHER_ERROR!>JT.Inner<!> = JT.<!UNRESOLVED_REFERENCE!>Inner<!>()
|
||||||
val testInner2: <!OTHER_ERROR, OTHER_ERROR!>KT.Inner<!> = KT.<!UNRESOLVED_REFERENCE!>Inner<!>()
|
val testInner2: <!OTHER_ERROR!>KT.Inner<!> = KT.<!UNRESOLVED_REFERENCE!>Inner<!>()
|
||||||
fun testNestedAsTypeArgument1(x: <!OTHER_ERROR!>List<JT.Nested><!>) {}
|
fun testNestedAsTypeArgument1(x: <!OTHER_ERROR!>List<JT.Nested><!>) {}
|
||||||
fun testNestedAsTypeArgument2(x: <!OTHER_ERROR!>List<KT.Nested><!>) {}
|
fun testNestedAsTypeArgument2(x: <!OTHER_ERROR!>List<KT.Nested><!>) {}
|
||||||
fun testNestedAsTypeArgument3(x: <!OTHER_ERROR!>List<IT.Nested><!>) {}
|
fun testNestedAsTypeArgument3(x: <!OTHER_ERROR!>List<IT.Nested><!>) {}
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ class Cell<TC>(val x: TC)
|
|||||||
|
|
||||||
fun <T> id(x: T): T {
|
fun <T> id(x: T): T {
|
||||||
typealias C = Cell<T>
|
typealias C = Cell<T>
|
||||||
class Local(val cell: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>C<!>)
|
class Local(val cell: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>C<!>)
|
||||||
val cx = <!UNRESOLVED_REFERENCE!>C<!>(x)
|
val cx = <!UNRESOLVED_REFERENCE!>C<!>(x)
|
||||||
val c: <!OTHER_ERROR, OTHER_ERROR!>C<!> = Local(cx).cell
|
val c: <!OTHER_ERROR, OTHER_ERROR!>C<!> = Local(cx).cell
|
||||||
return c.<!UNRESOLVED_REFERENCE!>x<!>
|
return c.<!UNRESOLVED_REFERENCE!>x<!>
|
||||||
|
|||||||
@@ -38,10 +38,10 @@ interface Test<in I, out O, P> {
|
|||||||
var neOk22: Inv<out O>
|
var neOk22: Inv<out O>
|
||||||
var neOk23: Inv<out I>
|
var neOk23: Inv<out I>
|
||||||
|
|
||||||
var neOk30: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Pair<I, ><!>
|
var neOk30: <!OTHER_ERROR, OTHER_ERROR!>Pair<I, ><!>
|
||||||
var neOk31: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Pair<I, Inv><!>
|
var neOk31: <!OTHER_ERROR, OTHER_ERROR!>Pair<I, Inv><!>
|
||||||
var neOk32: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Inv<!>
|
var neOk32: <!OTHER_ERROR, OTHER_ERROR!>Inv<!>
|
||||||
var neOk33: Inv<<!SYNTAX!><!>>
|
var neOk33: Inv<<!SYNTAX!><!>>
|
||||||
var neOk34: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Inv<C><!>
|
var neOk34: <!OTHER_ERROR, OTHER_ERROR!>Inv<C><!>
|
||||||
var neOk35: <!WRONG_NUMBER_OF_TYPE_ARGUMENTS, WRONG_NUMBER_OF_TYPE_ARGUMENTS, WRONG_NUMBER_OF_TYPE_ARGUMENTS!>Inv<P, P><!>
|
var neOk35: <!WRONG_NUMBER_OF_TYPE_ARGUMENTS, WRONG_NUMBER_OF_TYPE_ARGUMENTS!>Inv<P, P><!>
|
||||||
}
|
}
|
||||||
+1
-1
@@ -10,6 +10,6 @@ package kotlin.sequences
|
|||||||
import p.*
|
import p.*
|
||||||
|
|
||||||
interface I {
|
interface I {
|
||||||
val <!EXPOSED_PROPERTY_TYPE!>v1<!>: <!OTHER_ERROR, OTHER_ERROR!>FilteringSequence<!>
|
val <!EXPOSED_PROPERTY_TYPE!>v1<!>: <!OTHER_ERROR!>FilteringSequence<!>
|
||||||
val <!EXPOSED_PROPERTY_TYPE!>v2<!>: IndexingSequence<String>
|
val <!EXPOSED_PROPERTY_TYPE!>v2<!>: IndexingSequence<String>
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
interface Inv
|
interface Inv
|
||||||
class Impl : Inv
|
class Impl : Inv
|
||||||
|
|
||||||
class Scope<InterfaceT, ImplementationT : InterfaceT>(private val implClass: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>j.Class<ImplementationT><!>) {
|
class Scope<InterfaceT, ImplementationT : InterfaceT>(private val implClass: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>j.Class<ImplementationT><!>) {
|
||||||
fun foo(c: Collection<InterfaceT>) {
|
fun foo(c: Collection<InterfaceT>) {
|
||||||
val hm = c.asSequence()
|
val hm = c.asSequence()
|
||||||
.<!INAPPLICABLE_CANDIDATE!>filter<!>(<!UNRESOLVED_REFERENCE!>implClass::isInstance<!>)
|
.<!INAPPLICABLE_CANDIDATE!>filter<!>(<!UNRESOLVED_REFERENCE!>implClass::isInstance<!>)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
data class A(val x: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Set<CLassNotFound><!> = setOf()) {
|
data class A(val x: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>Set<CLassNotFound><!> = setOf()) {
|
||||||
fun with(x: <!OTHER_ERROR, OTHER_ERROR!>Set<CLassNotFound>?<!> = null) {
|
fun with(x: <!OTHER_ERROR, OTHER_ERROR!>Set<CLassNotFound>?<!> = null) {
|
||||||
A(x ?: this.x)
|
A(x ?: this.x)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user