[FIR] Report errors about invisible types from type resolution
This commit is contained in:
committed by
teamcityserver
parent
f2c319c4ae
commit
8707be51c9
Vendored
+1
-1
@@ -17,7 +17,7 @@ FILE: exposedFunctionParameterType.kt
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final fun foo(value: R|A.AInner|): R|kotlin/Unit| {
|
||||
public final fun foo(value: <ERROR TYPE REF: HIDDEN: A.AInner is invisible>): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ class A {
|
||||
}
|
||||
|
||||
class B {
|
||||
fun foo(<!EXPOSED_PARAMETER_TYPE!>value: A.AInner<!>) {
|
||||
fun foo(<!EXPOSED_PARAMETER_TYPE!>value: <!INVISIBLE_REFERENCE!>A.AInner<!><!>) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ FILE: exposedFunctionReturnType.kt
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final fun foo(str: R|kotlin/String|): R|A.InnerA|
|
||||
public final fun foo(str: R|kotlin/String|): <ERROR TYPE REF: HIDDEN: A.InnerA is invisible>
|
||||
|
||||
}
|
||||
private final enum class Some : R|kotlin/Enum<Some>| {
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ class A {
|
||||
}
|
||||
|
||||
abstract class B {
|
||||
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>fun <!EXPOSED_FUNCTION_RETURN_TYPE!>foo<!>(str: String): A.InnerA<!>
|
||||
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!>fun <!EXPOSED_FUNCTION_RETURN_TYPE!>foo<!>(str: String): <!INVISIBLE_REFERENCE!>A.InnerA<!><!>
|
||||
}
|
||||
|
||||
private enum class Some {
|
||||
|
||||
+6
-6
@@ -57,16 +57,16 @@ FILE: exposedPropertyType.kt
|
||||
public get(): R|kotlin/Int|
|
||||
public set(value: R|kotlin/Int|): R|kotlin/Unit|
|
||||
|
||||
public final var var4: R|A.AInnerPrivate|
|
||||
public get(): R|A.AInnerPrivate|
|
||||
public set(value: R|A.AInnerPrivate|): R|kotlin/Unit|
|
||||
public final var var4: <ERROR TYPE REF: HIDDEN: A.AInnerPrivate is invisible>
|
||||
public get(): <ERROR TYPE REF: HIDDEN: A.AInnerPrivate is invisible>
|
||||
public set(value: <ERROR TYPE REF: HIDDEN: A.AInnerPrivate is invisible>): R|kotlin/Unit|
|
||||
|
||||
public final var var5: R|A.AInnerPublic|
|
||||
public get(): R|A.AInnerPublic|
|
||||
public set(value: R|A.AInnerPublic|): R|kotlin/Unit|
|
||||
|
||||
public final var var6: R|A.AInnerProtectedEnum|
|
||||
public get(): R|A.AInnerProtectedEnum|
|
||||
public set(value: R|A.AInnerProtectedEnum|): R|kotlin/Unit|
|
||||
public final var var6: <ERROR TYPE REF: HIDDEN: A.AInnerProtectedEnum is invisible>
|
||||
public get(): <ERROR TYPE REF: HIDDEN: A.AInnerProtectedEnum is invisible>
|
||||
public set(value: <ERROR TYPE REF: HIDDEN: A.AInnerProtectedEnum is invisible>): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -17,7 +17,7 @@ class Property {
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var var1: String<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var var2: String<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var var3: Int<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var <!EXPOSED_PROPERTY_TYPE!>var4<!>: A.AInnerPrivate<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var <!EXPOSED_PROPERTY_TYPE!>var4<!>: <!INVISIBLE_REFERENCE!>A.AInnerPrivate<!><!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var var5: A.AInnerPublic<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var <!EXPOSED_PROPERTY_TYPE!>var6<!>: A.AInnerProtectedEnum<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var <!EXPOSED_PROPERTY_TYPE!>var6<!>: <!INVISIBLE_REFERENCE!>A.AInnerProtectedEnum<!><!>
|
||||
}
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ FILE: exposedSupertype.kt
|
||||
}
|
||||
|
||||
}
|
||||
public final class Test4 : R|E|, R|A.AProtectedI| {
|
||||
public final class Test4 : R|E|, <ERROR TYPE REF: HIDDEN: A.AProtectedI is invisible> {
|
||||
public constructor(): R|Test4| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ class Test3 : C.CPublicI, <!EXPOSED_SUPER_CLASS, FINAL_SUPERTYPE, SUPERTYPE_NOT_
|
||||
|
||||
}
|
||||
|
||||
class Test4 : E, A.AProtectedI {
|
||||
class Test4 : E, <!INVISIBLE_REFERENCE!>A.AProtectedI<!> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -17,7 +17,7 @@ FILE: exposedTypeAlias.kt
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final typealias AInner = R|A.Inner|
|
||||
public final typealias AInner = <ERROR TYPE REF: HIDDEN: A.Inner is invisible>
|
||||
|
||||
public final inner class Inner : R|kotlin/Any| {
|
||||
public B.constructor(): R|B.Inner| {
|
||||
@@ -35,7 +35,7 @@ FILE: exposedTypeAlias.kt
|
||||
public final typealias BInner = R|B.Inner|
|
||||
|
||||
}
|
||||
public final typealias AInner0 = R|A.Inner|
|
||||
public final typealias AInner0 = <ERROR TYPE REF: HIDDEN: A.Inner is invisible>
|
||||
public final typealias BInner0 = R|B.Inner|
|
||||
private final typealias MyString = R|kotlin/String|
|
||||
public final fun foo(): R|MyString| {
|
||||
|
||||
+3
-3
@@ -2,7 +2,7 @@ class A {
|
||||
private inner class Inner
|
||||
}
|
||||
class B {
|
||||
<!TOPLEVEL_TYPEALIASES_ONLY!>typealias <!EXPOSED_TYPEALIAS_EXPANDED_TYPE!>AInner<!> = A.Inner<!>
|
||||
<!TOPLEVEL_TYPEALIASES_ONLY!>typealias <!EXPOSED_TYPEALIAS_EXPANDED_TYPE!>AInner<!> = <!INVISIBLE_REFERENCE!>A.Inner<!><!>
|
||||
inner class Inner
|
||||
}
|
||||
|
||||
@@ -10,9 +10,9 @@ class C {
|
||||
<!TOPLEVEL_TYPEALIASES_ONLY!>typealias BInner = B.Inner<!>
|
||||
}
|
||||
|
||||
typealias <!EXPOSED_TYPEALIAS_EXPANDED_TYPE!>AInner0<!> = A.Inner
|
||||
typealias <!EXPOSED_TYPEALIAS_EXPANDED_TYPE!>AInner0<!> = <!INVISIBLE_REFERENCE!>A.Inner<!>
|
||||
typealias BInner0 = B.Inner
|
||||
|
||||
private typealias MyString = String
|
||||
|
||||
fun foo(): MyString = ""
|
||||
fun foo(): MyString = ""
|
||||
|
||||
+3
-3
@@ -42,8 +42,8 @@ FILE: exposedTypeParameters.kt
|
||||
}
|
||||
|
||||
}
|
||||
public final class Test3<T : R|E|, P : R|C.D|> : R|kotlin/Any| {
|
||||
public constructor<T : R|E|, P : R|C.D|>(): R|Test3<T, P>| {
|
||||
public final class Test3<T : R|E|, P : <ERROR TYPE REF: HIDDEN: C.D is invisible>> : R|kotlin/Any| {
|
||||
public constructor<T : R|E|, P : <ERROR TYPE REF: HIDDEN: C.D is invisible>>(): R|Test3<T, P>| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
@@ -80,5 +80,5 @@ FILE: exposedTypeParameters.kt
|
||||
}
|
||||
|
||||
}
|
||||
public abstract interface Test8<T : R|A|, P : R|B|, F : R|C|, N : R|C.D|, M : R|E|> : R|kotlin/Any| {
|
||||
public abstract interface Test8<T : R|A|, P : R|B|, F : R|C|, N : <ERROR TYPE REF: HIDDEN: C.D is invisible>, M : R|E|> : R|kotlin/Any| {
|
||||
}
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@ public class Test1<T: <!EXPOSED_TYPE_PARAMETER_BOUND!>A<!>>
|
||||
public class Test2<T: C, P: E>
|
||||
|
||||
// invalid, D is protected
|
||||
public class Test3<T: E, P: <!EXPOSED_TYPE_PARAMETER_BOUND!>C.D<!>>
|
||||
public class Test3<T: E, P: <!EXPOSED_TYPE_PARAMETER_BOUND, INVISIBLE_REFERENCE!>C.D<!>>
|
||||
|
||||
// valid, B is internal
|
||||
internal class Test4<T: B>
|
||||
@@ -32,4 +32,4 @@ public class Container : <!SUPERTYPE_NOT_INITIALIZED!>C<!> {
|
||||
}
|
||||
|
||||
// invalid, A is private, B is internal, D is protected
|
||||
public interface Test8<T: <!EXPOSED_TYPE_PARAMETER_BOUND!>A<!>, P: <!EXPOSED_TYPE_PARAMETER_BOUND!>B<!>, F: C, N: <!EXPOSED_TYPE_PARAMETER_BOUND!>C.D<!>, M: E>
|
||||
public interface Test8<T: <!EXPOSED_TYPE_PARAMETER_BOUND!>A<!>, P: <!EXPOSED_TYPE_PARAMETER_BOUND!>B<!>, F: C, N: <!EXPOSED_TYPE_PARAMETER_BOUND, INVISIBLE_REFERENCE!>C.D<!>, M: E>
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
FILE: lowPriorityInResolution.kt
|
||||
@R|kotlin/Suppress|(names = vararg(String(INVISIBLE_MEMBER), String(INVISIBLE_REFERENCE))) @R|kotlin/internal/LowPriorityInOverloadResolution|() public final fun foo(): R|kotlin/Int| {
|
||||
@R|kotlin/Suppress|(names = vararg(String(INVISIBLE_MEMBER), String(INVISIBLE_REFERENCE))) @<ERROR TYPE REF: HIDDEN: kotlin/internal/LowPriorityInOverloadResolution is invisible>() public final fun foo(): R|kotlin/Int| {
|
||||
^foo Int(1)
|
||||
}
|
||||
public final fun foo(): R|kotlin/String| {
|
||||
|
||||
Reference in New Issue
Block a user