[FIR] Make type parameters inaccessible for non-inner nested types

#KT-57209
This commit is contained in:
Kirill Rakhman
2023-03-14 17:20:35 +01:00
committed by Space Team
parent c39ab956a0
commit 1f0d56e157
24 changed files with 227 additions and 181 deletions
@@ -4,24 +4,24 @@
// TESTCASE NUMBER: 1
class Case1<T>() {
class A(t: T)
class B(x: List<T>)
class C(c: () -> T)
class E(n: Nothing, t: T)
class A(t: <!UNRESOLVED_REFERENCE!>T<!>)
class B(x: List<<!UNRESOLVED_REFERENCE!>T<!>>)
class C(c: () -> <!UNRESOLVED_REFERENCE!>T<!>)
class E(n: Nothing, t: <!UNRESOLVED_REFERENCE!>T<!>)
}
// TESTCASE NUMBER: 2
class Case2<T>() {
data class A(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: T<!>)
data class B(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>x: List<T><!>)
data class C(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>c: () -> T<!>)
data class E(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>n: Nothing<!>, <!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: T<!>)
data class A(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: <!UNRESOLVED_REFERENCE!>T<!><!>)
data class B(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>x: List<<!UNRESOLVED_REFERENCE!>T<!>><!>)
data class C(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>c: () -> <!UNRESOLVED_REFERENCE!>T<!><!>)
data class E(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>n: Nothing<!>, <!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: <!UNRESOLVED_REFERENCE!>T<!><!>)
}
// TESTCASE NUMBER: 3
class Case3<T>() {
enum class A(t: T)
enum class B(x: List<T>)
enum class C(c: () -> T)
enum class E(n: Nothing, t: T)
enum class A(t: <!UNRESOLVED_REFERENCE!>T<!>)
enum class B(x: List<<!UNRESOLVED_REFERENCE!>T<!>>)
enum class C(c: () -> <!UNRESOLVED_REFERENCE!>T<!>)
enum class E(n: Nothing, t: <!UNRESOLVED_REFERENCE!>T<!>)
}
@@ -13,8 +13,8 @@ data class F<T>(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: T<!>)
// TESTCASE NUMBER: 2
class Case2<T>() {
data class A(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: T<!>)
data class B(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>x: List<T><!>)
data class C(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>c: () -> T<!>)
data class E(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>n: Nothing<!>, <!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: T<!>)
data class A(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: <!UNRESOLVED_REFERENCE!>T<!><!>)
data class B(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>x: List<<!UNRESOLVED_REFERENCE!>T<!>><!>)
data class C(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>c: () -> <!UNRESOLVED_REFERENCE!>T<!><!>)
data class E(<!DATA_CLASS_NOT_PROPERTY_PARAMETER!>n: Nothing<!>, <!DATA_CLASS_NOT_PROPERTY_PARAMETER!>t: <!UNRESOLVED_REFERENCE!>T<!><!>)
}
@@ -4,8 +4,8 @@
// TESTCASE NUMBER: 1
class Case1<T>() {
class A(val t: T)
class B(val x: List<T>)
class C(val c: () -> T)
class E(val n: Nothing, val t: T)
class A(val t: <!UNRESOLVED_REFERENCE!>T<!>)
class B(val x: List<<!UNRESOLVED_REFERENCE!>T<!>>)
class C(val c: () -> <!UNRESOLVED_REFERENCE!>T<!>)
class E(val n: Nothing, val t: <!UNRESOLVED_REFERENCE!>T<!>)
}
@@ -4,8 +4,8 @@
// TESTCASE NUMBER: 1
class Case1<T>() {
class A(var t: T)
class B(var x: List<T>)
class C(var c: () -> T)
class E(var n: Nothing, var t: T)
class A(var t: <!UNRESOLVED_REFERENCE!>T<!>)
class B(var x: List<<!UNRESOLVED_REFERENCE!>T<!>>)
class C(var c: () -> <!UNRESOLVED_REFERENCE!>T<!>)
class E(var n: Nothing, var t: <!UNRESOLVED_REFERENCE!>T<!>)
}
@@ -5,7 +5,7 @@
// TESTCASE NUMBER: 1
class Case1<AT>(val x: AT) {
class B(val y: AT) {
class B(val y: <!UNRESOLVED_REFERENCE!>AT<!>) {
fun case1() {
val k: <!UNRESOLVED_REFERENCE!>AT<!>
}
@@ -21,6 +21,6 @@ class Case1<AT>(val x: AT) {
}
class D() {
fun case1(x: Any) : AT = TODO()
fun case1(x: Any) : <!UNRESOLVED_REFERENCE!>AT<!> = TODO()
}
}