[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<!>)
}