[FIR] KT-45972, KT-49072: Add visibility checks to the type resolution

This commit is contained in:
Nikolay Lunyak
2021-10-15 16:42:41 +03:00
committed by TeamCityServer
parent 2dc2a90755
commit 0eb2d117ef
17 changed files with 223 additions and 42 deletions
@@ -14,5 +14,5 @@ package p1
import p2.*
val <!EXPOSED_PROPERTY_TYPE!>x<!>: X = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>X()<!>
val x: X = X()
val <!EXPOSED_PROPERTY_TYPE!>y<!>: Y = <!INVISIBLE_REFERENCE!>Y<!>()
@@ -0,0 +1,30 @@
// FIR_IDENTICAL
// MODULE: m1
// FILE: f11.kt
package api
interface ApplicabilityResult
// FILE: f12.kt
package api
interface ArgumentMapping {
fun highlightingApplicabilities(): ApplicabilityResult
}
// MODULE: m2(m1)
// FILE: f21.kt
package impl
private data class ApplicabilityResult(val applicable: Boolean)
// FILE: f22.kt
package impl
import api.*
class NullArgumentMapping : ArgumentMapping {
// This is api.ApplicabilityResult
override fun highlightingApplicabilities(): ApplicabilityResult = object : ApplicabilityResult {
}
}
@@ -0,0 +1,43 @@
// -- Module: <m1> --
package
package api {
public interface ApplicabilityResult {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface ArgumentMapping {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract fun highlightingApplicabilities(): api.ApplicabilityResult
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
// -- Module: <m2> --
package
package impl {
private final data class ApplicabilityResult {
public constructor ApplicabilityResult(/*0*/ applicable: kotlin.Boolean)
public final val applicable: kotlin.Boolean
public final operator /*synthesized*/ fun component1(): kotlin.Boolean
public final /*synthesized*/ fun copy(/*0*/ applicable: kotlin.Boolean = ...): impl.ApplicabilityResult
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
public final class NullArgumentMapping : api.ArgumentMapping {
public constructor NullArgumentMapping()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ fun highlightingApplicabilities(): api.ApplicabilityResult
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}