[FIR] Ignore failing test, improve DiagnosticKind, fix UPPER_BOUND

This commit is contained in:
Nick
2020-07-28 15:39:30 +03:00
committed by Mikhail Glukhikh
parent 9335e09149
commit 889324e972
150 changed files with 398 additions and 613 deletions
@@ -8,6 +8,6 @@ open class Base {
class Derived : Base() {
@<!OTHER_ERROR!>Foo<!>
@<!UNRESOLVED_REFERENCE!>Foo<!>
fun foo() = 42
}
@@ -72,28 +72,28 @@ class C : O.B() {
val n: FromCompanionC? = null
// INVISIBLE: direct superclasses themselves.
val a: <!OTHER_ERROR!>A?<!> = null
val b: <!OTHER_ERROR!>B?<!> = null
val a: <!UNRESOLVED_REFERENCE!>A?<!> = null
val b: <!UNRESOLVED_REFERENCE!>B?<!> = null
// DEPRECATED: Classifiers from companions of direct superclasses
val e: <!OTHER_ERROR!>FromCompanionA?<!> = null
val f: <!OTHER_ERROR!>FromCompanionB?<!> = null
val e: <!UNRESOLVED_REFERENCE!>FromCompanionA?<!> = null
val f: <!UNRESOLVED_REFERENCE!>FromCompanionB?<!> = null
// INVISIBLE: "cousin" supertypes themselves
val g: <!OTHER_ERROR!>Alpha?<!> = null
val h: <!OTHER_ERROR!>Beta?<!> = null
val i: <!OTHER_ERROR!>Gamma?<!> = null
val g: <!UNRESOLVED_REFERENCE!>Alpha?<!> = null
val h: <!UNRESOLVED_REFERENCE!>Beta?<!> = null
val i: <!UNRESOLVED_REFERENCE!>Gamma?<!> = null
// DEPRECATED: classifiers from "cousin" superclasses
val k: <!OTHER_ERROR!>FromAlpha?<!> = null
val l: <!OTHER_ERROR!>FromBeta?<!> = null
val m: <!OTHER_ERROR!>FromGamma?<!> = null
val k: <!UNRESOLVED_REFERENCE!>FromAlpha?<!> = null
val l: <!UNRESOLVED_REFERENCE!>FromBeta?<!> = null
val m: <!UNRESOLVED_REFERENCE!>FromGamma?<!> = null
// INVISIBLE: We don't see classifiers from companions of "cousin" superclasses
val o: <!OTHER_ERROR!>FromCompanionAlpha?<!> = null
val p: <!OTHER_ERROR!>FromCompanionBeta?<!> = null
val q: <!OTHER_ERROR!>FromCompanionGamma?<!> = null
val o: <!UNRESOLVED_REFERENCE!>FromCompanionAlpha?<!> = null
val p: <!UNRESOLVED_REFERENCE!>FromCompanionBeta?<!> = null
val q: <!UNRESOLVED_REFERENCE!>FromCompanionGamma?<!> = null
// DEPRECATED: Classifiers from supertypes of our own companion
val r: <!OTHER_ERROR!>FromDelta?<!> = null
val r: <!UNRESOLVED_REFERENCE!>FromDelta?<!> = null
}
@@ -71,28 +71,28 @@ class C : O.B() {
val n: FromCompanionC? = null
// INVISIBLE: direct superclasses themselves.
val a: <!OTHER_ERROR!>A?<!> = null
val b: <!OTHER_ERROR!>B?<!> = null
val a: <!UNRESOLVED_REFERENCE!>A?<!> = null
val b: <!UNRESOLVED_REFERENCE!>B?<!> = null
// DEPRECATED: Classifiers from companions of direct superclasses
val e: <!OTHER_ERROR!>FromCompanionA?<!> = null
val f: <!OTHER_ERROR!>FromCompanionB?<!> = null
val e: <!UNRESOLVED_REFERENCE!>FromCompanionA?<!> = null
val f: <!UNRESOLVED_REFERENCE!>FromCompanionB?<!> = null
// INVISIBLE: "cousin" supertypes themselves
val g: <!OTHER_ERROR!>Alpha?<!> = null
val h: <!OTHER_ERROR!>Beta?<!> = null
val i: <!OTHER_ERROR!>Gamma?<!> = null
val g: <!UNRESOLVED_REFERENCE!>Alpha?<!> = null
val h: <!UNRESOLVED_REFERENCE!>Beta?<!> = null
val i: <!UNRESOLVED_REFERENCE!>Gamma?<!> = null
// DEPRECATED: classifiers from "cousin" superclasses
val k: <!OTHER_ERROR!>FromAlpha?<!> = null
val l: <!OTHER_ERROR!>FromBeta?<!> = null
val m: <!OTHER_ERROR!>FromGamma?<!> = null
val k: <!UNRESOLVED_REFERENCE!>FromAlpha?<!> = null
val l: <!UNRESOLVED_REFERENCE!>FromBeta?<!> = null
val m: <!UNRESOLVED_REFERENCE!>FromGamma?<!> = null
// INVISIBLE: We don't see classifiers from companions of "cousin" superclasses
val o: <!OTHER_ERROR!>FromCompanionAlpha?<!> = null
val p: <!OTHER_ERROR!>FromCompanionBeta?<!> = null
val q: <!OTHER_ERROR!>FromCompanionGamma?<!> = null
val o: <!UNRESOLVED_REFERENCE!>FromCompanionAlpha?<!> = null
val p: <!UNRESOLVED_REFERENCE!>FromCompanionBeta?<!> = null
val q: <!UNRESOLVED_REFERENCE!>FromCompanionGamma?<!> = null
// DEPRECATED: Classifiers from supertypes of our own companion
val r: <!OTHER_ERROR!>FromDelta?<!> = null
val r: <!UNRESOLVED_REFERENCE!>FromDelta?<!> = null
}
@@ -1,100 +0,0 @@
// !LANGUAGE: +ProhibitVisibilityOfNestedClassifiersFromSupertypesOfCompanion
// !DIAGNOSTICS: -UNUSED_VARIABLE
// See KT-21515 for a open class diagram and details
// Object is to prevent accidental short-name import
object O {
open class Alpha {
open class FromAlpha
companion object {
open class FromCompanionAlpha
}
}
open class Beta : Alpha() {
open class FromBeta
companion object {
open class FromCompanionBeta
}
}
open class A {
open class FromA
companion object : Beta() {
open class FromCompanionA
}
}
//////////////////////////
open class FarAway {
open class FromFarAway
}
open class Gamma {
open class FromGamma
companion object : FarAway() {
open class FromCompanionGamma
}
}
open class B : A() {
open class FromB
companion object : Gamma() {
open class FromCompanionB
}
}
}
///////////////////////////////
open class Delta {
open class FromDelta
}
open class C : O.B() {
companion object : Delta() {
open class FromCompanionC
}
// VISIBLE: Classifiers from direct superclasses
open class c : FromA()
open class d : FromB()
// VISIBLE: Classifiers from our own companion
open class n : FromCompanionC()
// INVISIBLE: direct superclasses themselves.
open class a : <!OTHER_ERROR!>A<!>()
open class b : <!OTHER_ERROR!>B<!>()
// DEPRECATED: Classifiers from companions of direct superclasses
open class e : <!OTHER_ERROR!>FromCompanionA<!>()
open class f : <!OTHER_ERROR!>FromCompanionB<!>()
// INVISIBLE: "cousin" supertypes themselves
open class g : <!OTHER_ERROR!>Alpha<!>()
open class h : <!OTHER_ERROR!>Beta<!>()
open class i : <!OTHER_ERROR!>Gamma<!>()
// DEPRECATED: classifiers from "cousin" superclasses
open class k : <!OTHER_ERROR!>FromAlpha<!>()
open class l : <!OTHER_ERROR!>FromBeta<!>()
open class m : <!OTHER_ERROR!>FromGamma<!>()
// INVISIBLE: We don't see classifiers from companions of "cousin" superclasses
open class o : <!OTHER_ERROR!>FromCompanionAlpha<!>()
open class p : <!OTHER_ERROR!>FromCompanionBeta<!>()
open class q : <!OTHER_ERROR!>FromCompanionGamma<!>()
// DEPRECATED: Classifiers from supertypes of our own companion
open class r : <!OTHER_ERROR!>FromDelta<!>()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +ProhibitVisibilityOfNestedClassifiersFromSupertypesOfCompanion
// !DIAGNOSTICS: -UNUSED_VARIABLE
@@ -73,28 +73,28 @@ open class C : O.B() {
open class n : FromCompanionC()
// INVISIBLE: direct superclasses themselves.
open class a : <!OTHER_ERROR!>A<!>()
open class b : <!OTHER_ERROR!>B<!>()
open class a : <!UNRESOLVED_REFERENCE!>A<!>()
open class b : <!UNRESOLVED_REFERENCE!>B<!>()
// DEPRECATED: Classifiers from companions of direct superclasses
open class e : <!OTHER_ERROR!>FromCompanionA<!>()
open class f : <!OTHER_ERROR!>FromCompanionB<!>()
open class e : <!UNRESOLVED_REFERENCE!>FromCompanionA<!>()
open class f : <!UNRESOLVED_REFERENCE!>FromCompanionB<!>()
// INVISIBLE: "cousin" supertypes themselves
open class g : <!OTHER_ERROR!>Alpha<!>()
open class h : <!OTHER_ERROR!>Beta<!>()
open class i : <!OTHER_ERROR!>Gamma<!>()
open class g : <!UNRESOLVED_REFERENCE!>Alpha<!>()
open class h : <!UNRESOLVED_REFERENCE!>Beta<!>()
open class i : <!UNRESOLVED_REFERENCE!>Gamma<!>()
// DEPRECATED: classifiers from "cousin" superclasses
open class k : <!OTHER_ERROR!>FromAlpha<!>()
open class l : <!OTHER_ERROR!>FromBeta<!>()
open class m : <!OTHER_ERROR!>FromGamma<!>()
open class k : <!UNRESOLVED_REFERENCE!>FromAlpha<!>()
open class l : <!UNRESOLVED_REFERENCE!>FromBeta<!>()
open class m : <!UNRESOLVED_REFERENCE!>FromGamma<!>()
// INVISIBLE: We don't see classifiers from companions of "cousin" superclasses
open class o : <!OTHER_ERROR!>FromCompanionAlpha<!>()
open class p : <!OTHER_ERROR!>FromCompanionBeta<!>()
open class q : <!OTHER_ERROR!>FromCompanionGamma<!>()
open class o : <!UNRESOLVED_REFERENCE!>FromCompanionAlpha<!>()
open class p : <!UNRESOLVED_REFERENCE!>FromCompanionBeta<!>()
open class q : <!UNRESOLVED_REFERENCE!>FromCompanionGamma<!>()
// DEPRECATED: Classifiers from supertypes of our own companion
open class r : <!OTHER_ERROR!>FromDelta<!>()
open class r : <!UNRESOLVED_REFERENCE!>FromDelta<!>()
}
@@ -1,48 +0,0 @@
// !LANGUAGE: +ProhibitVisibilityOfNestedClassifiersFromSupertypesOfCompanion
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// FILE: test/Java.java
package test;
public class Java {
public static void method() { }
public static int property = 42;
public static class Classifier { }
public static void syntheticSam(Runnable r) { }
public static int getStaticSyntheticProperty() { return 42; }
public static int setStaticSyntheticProperty(int x) { return 42; }
public int getInstanceSyntheticProperty() { return 42; }
public int setInstanceSyntheticProperty(int x) { return 42; }
}
// FILE: Kotlin.kt
package test
open class Base {
companion object : Java() {
}
}
class Derived : Base() {
fun test(javaStaticInTypePosition: <!OTHER_ERROR!>Classifier<!>) {
<!UNRESOLVED_REFERENCE!>method<!>()
<!UNRESOLVED_REFERENCE!>property<!>
<!UNRESOLVED_REFERENCE!>Classifier<!>()
<!UNRESOLVED_REFERENCE!>syntheticSam<!> { }
// Instance members shouldn't be affected, but we check them, just in case
val y = instanceSyntheticProperty
instanceSyntheticProperty = 43
// Note that statics actually aren't converted into synthetic property in Kotlin
val x = <!UNRESOLVED_REFERENCE!>syntheticProperty<!>
<!UNRESOLVED_REFERENCE!>syntheticProperty<!> = 42
}
class JavaStaticInSupertypeList : <!OTHER_ERROR!>Classifier<!>() {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +ProhibitVisibilityOfNestedClassifiersFromSupertypesOfCompanion
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
@@ -27,7 +27,7 @@ open class Base {
}
class Derived : Base() {
fun test(javaStaticInTypePosition: <!OTHER_ERROR!>Classifier<!>) {
fun test(javaStaticInTypePosition: <!UNRESOLVED_REFERENCE!>Classifier<!>) {
<!UNRESOLVED_REFERENCE!>method<!>()
<!UNRESOLVED_REFERENCE!>property<!>
<!UNRESOLVED_REFERENCE!>Classifier<!>()
@@ -42,7 +42,7 @@ class Derived : Base() {
<!UNRESOLVED_REFERENCE!>syntheticProperty<!> = 42
}
class JavaStaticInSupertypeList : <!OTHER_ERROR!>Classifier<!>() {
class JavaStaticInSupertypeList : <!UNRESOLVED_REFERENCE!>Classifier<!>() {
}
}