Raw FIR: make object/sealed/enum constructor visibility private
This commit is contained in:
@@ -384,11 +384,19 @@ class RawFirBuilder(val session: FirSession, val stubMode: Boolean) {
|
|||||||
superTypeCallEntry?.extractArgumentsTo(this)
|
superTypeCallEntry?.extractArgumentsTo(this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun defaultVisibility() =
|
||||||
|
if (owner is KtObjectDeclaration || owner.hasModifier(SEALED_KEYWORD) || owner.hasModifier(ENUM_KEYWORD))
|
||||||
|
// TODO: sealed is FILE_PRIVATE (?) object / enum is HIDDEN (?)
|
||||||
|
Visibilities.PRIVATE
|
||||||
|
else
|
||||||
|
Visibilities.UNKNOWN
|
||||||
|
|
||||||
val firConstructor = FirPrimaryConstructorImpl(
|
val firConstructor = FirPrimaryConstructorImpl(
|
||||||
session,
|
session,
|
||||||
this ?: owner,
|
this ?: owner,
|
||||||
FirFunctionSymbol(callableIdForClassConstructor()),
|
FirFunctionSymbol(callableIdForClassConstructor()),
|
||||||
this?.visibility ?: Visibilities.UNKNOWN,
|
this?.visibility ?: defaultVisibility(),
|
||||||
this?.hasExpectModifier() ?: false,
|
this?.hasExpectModifier() ?: false,
|
||||||
this?.hasActualModifier() ?: false,
|
this?.hasActualModifier() ?: false,
|
||||||
delegatedSelfTypeRef,
|
delegatedSelfTypeRef,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
FILE: enums.kt
|
FILE: enums.kt
|
||||||
public? final? enum class Order : kotlin/Enum {
|
public? final? enum class Order : kotlin/Enum {
|
||||||
public? constructor(): super<kotlin/Enum>()
|
private constructor(): super<kotlin/Enum>()
|
||||||
|
|
||||||
public? final enum entry FIRST : kotlin/Any {
|
public? final enum entry FIRST : kotlin/Any {
|
||||||
public? constructor(): super<kotlin/Any>()
|
public? constructor(): super<kotlin/Any>()
|
||||||
@@ -60,7 +60,7 @@ FILE: enums.kt
|
|||||||
public? abstract fun sayHello(): kotlin/Unit
|
public? abstract fun sayHello(): kotlin/Unit
|
||||||
|
|
||||||
public? final? companion object Companion : kotlin/Any {
|
public? final? companion object Companion : kotlin/Any {
|
||||||
public? constructor(): super<kotlin/Any>()
|
private constructor(): super<kotlin/Any>()
|
||||||
|
|
||||||
public? final? const val G: <implicit> = Double(6.67E-11)
|
public? final? const val G: <implicit> = Double(6.67E-11)
|
||||||
public? get(): <implicit>
|
public? get(): <implicit>
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ FILE: enums2.kt
|
|||||||
public? final? interface Some : kotlin/Any {
|
public? final? interface Some : kotlin/Any {
|
||||||
}
|
}
|
||||||
public? final? object O1 : Some {
|
public? final? object O1 : Some {
|
||||||
public? constructor(): super<kotlin/Any>()
|
private constructor(): super<kotlin/Any>()
|
||||||
|
|
||||||
}
|
}
|
||||||
public? final? object O2 : Some {
|
public? final? object O2 : Some {
|
||||||
public? constructor(): super<kotlin/Any>()
|
private constructor(): super<kotlin/Any>()
|
||||||
|
|
||||||
}
|
}
|
||||||
public? final? enum class SomeEnum : kotlin/Enum {
|
public? final? enum class SomeEnum : kotlin/Enum {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ FILE: nestedClass.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
public? final? object Obj : Base {
|
public? final? object Obj : Base {
|
||||||
public? constructor(): super<Base>(String())
|
private constructor(): super<Base>(String())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ FILE: locals.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
lval code: <implicit> = object : Any {
|
lval code: <implicit> = object : Any {
|
||||||
public? constructor(): super<Any>()
|
private constructor(): super<Any>()
|
||||||
|
|
||||||
public? final? fun foo(): <implicit> {
|
public? final? fun foo(): <implicit> {
|
||||||
^foo hashCode#()
|
^foo hashCode#()
|
||||||
|
|||||||
+2
-2
@@ -3,7 +3,7 @@ FILE: companion.kt
|
|||||||
public constructor(): super<R|kotlin/Any|>()
|
public constructor(): super<R|kotlin/Any|>()
|
||||||
|
|
||||||
public final companion object Companion : R|kotlin/Any| {
|
public final companion object Companion : R|kotlin/Any| {
|
||||||
public constructor(): super<R|kotlin/Any|>()
|
private constructor(): super<R|kotlin/Any|>()
|
||||||
|
|
||||||
public final class InCompanion : R|kotlin/Any| {
|
public final class InCompanion : R|kotlin/Any| {
|
||||||
public constructor(): super<R|kotlin/Any|>()
|
public constructor(): super<R|kotlin/Any|>()
|
||||||
@@ -20,7 +20,7 @@ FILE: companion.kt
|
|||||||
public constructor(): super<R|kotlin/Any|>()
|
public constructor(): super<R|kotlin/Any|>()
|
||||||
|
|
||||||
public final companion object NamedCompanion : R|kotlin/Any| {
|
public final companion object NamedCompanion : R|kotlin/Any| {
|
||||||
public constructor(): super<R|kotlin/Any|>()
|
private constructor(): super<R|kotlin/Any|>()
|
||||||
|
|
||||||
public final class InCompanion : R|kotlin/Any| {
|
public final class InCompanion : R|kotlin/Any| {
|
||||||
public constructor(): super<R|kotlin/Any|>()
|
public constructor(): super<R|kotlin/Any|>()
|
||||||
|
|||||||
+2
-2
@@ -2,11 +2,11 @@ FILE: enum.kt
|
|||||||
public abstract interface Some : R|kotlin/Any| {
|
public abstract interface Some : R|kotlin/Any| {
|
||||||
}
|
}
|
||||||
public final object O1 : R|Some| {
|
public final object O1 : R|Some| {
|
||||||
public constructor(): super<R|kotlin/Any|>()
|
private constructor(): super<R|kotlin/Any|>()
|
||||||
|
|
||||||
}
|
}
|
||||||
public final object O2 : R|Some| {
|
public final object O2 : R|Some| {
|
||||||
public constructor(): super<R|kotlin/Any|>()
|
private constructor(): super<R|kotlin/Any|>()
|
||||||
|
|
||||||
}
|
}
|
||||||
public final enum class SomeEnum : R|kotlin/Enum| {
|
public final enum class SomeEnum : R|kotlin/Enum| {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
FILE: localImplicitBodies.kt
|
FILE: localImplicitBodies.kt
|
||||||
public final fun foo(): R|kotlin/Unit| {
|
public final fun foo(): R|kotlin/Unit| {
|
||||||
lval x: <ERROR TYPE REF: No result type for initializer> = object : R|kotlin/Any| {
|
lval x: <ERROR TYPE REF: No result type for initializer> = object : R|kotlin/Any| {
|
||||||
public constructor(): super<R|kotlin/Any|>()
|
private constructor(): super<R|kotlin/Any|>()
|
||||||
|
|
||||||
public final fun sss(): <ERROR TYPE REF: Unresolved name: abc> {
|
public final fun sss(): <ERROR TYPE REF: Unresolved name: abc> {
|
||||||
^sss <Unresolved name: abc>#()
|
^sss <Unresolved name: abc>#()
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ FILE: enums.kt
|
|||||||
public abstract fun sayHello(): R|kotlin/Unit|
|
public abstract fun sayHello(): R|kotlin/Unit|
|
||||||
|
|
||||||
public final companion object Companion : R|kotlin/Any| {
|
public final companion object Companion : R|kotlin/Any| {
|
||||||
public constructor(): super<R|kotlin/Any|>()
|
private constructor(): super<R|kotlin/Any|>()
|
||||||
|
|
||||||
public final const val G: R|kotlin/Double| = Double(6.67E-11)
|
public final const val G: R|kotlin/Double| = Double(6.67E-11)
|
||||||
public get(): R|kotlin/Double|
|
public get(): R|kotlin/Double|
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ FILE: nestedClass.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final object Obj : R|Base| {
|
public final object Obj : R|Base| {
|
||||||
public constructor(): super<R|Base|>(String())
|
private constructor(): super<R|Base|>(String())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user