FIR2IR: get rid of setParentAndContent + fixes around anonymous objects
This commit is contained in:
+182
-133
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.psi
|
||||
import org.jetbrains.kotlin.fir.render
|
||||
import org.jetbrains.kotlin.fir.resolve.*
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.FirClassSubstitutionScope
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
@@ -37,6 +38,7 @@ import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
import org.jetbrains.kotlin.ir.util.constructors
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtFunctionLiteral
|
||||
@@ -179,123 +181,117 @@ class Fir2IrDeclarationStorage(
|
||||
return this
|
||||
}
|
||||
|
||||
fun getIrClass(klass: FirClass<*>, setParentAndContent: Boolean = true): IrClass {
|
||||
val regularClass = klass as? FirRegularClass
|
||||
|
||||
fun create(): IrClass {
|
||||
val descriptor = WrappedClassDescriptor()
|
||||
val origin = IrDeclarationOrigin.DEFINED
|
||||
val modality = regularClass?.modality ?: Modality.FINAL
|
||||
val visibility = regularClass?.visibility ?: Visibilities.PUBLIC
|
||||
return klass.convertWithOffsets { startOffset, endOffset ->
|
||||
irSymbolTable.declareClass(startOffset, endOffset, origin, descriptor, modality, visibility) { symbol ->
|
||||
IrClassImpl(
|
||||
startOffset,
|
||||
endOffset,
|
||||
origin,
|
||||
symbol,
|
||||
regularClass?.name ?: Name.special("<anonymous>"),
|
||||
klass.classKind,
|
||||
regularClass?.visibility ?: Visibilities.LOCAL,
|
||||
modality,
|
||||
isCompanion = regularClass?.isCompanion == true,
|
||||
isInner = regularClass?.isInner == true,
|
||||
isData = regularClass?.isData == true,
|
||||
isExternal = regularClass?.isExternal == true,
|
||||
isInline = regularClass?.isInline == true,
|
||||
isExpect = regularClass?.isExpect == true,
|
||||
isFun = false // TODO FirRegularClass.isFun
|
||||
).apply {
|
||||
descriptor.bind(this)
|
||||
if (setParentAndContent && regularClass != null) {
|
||||
val classId = regularClass.classId
|
||||
val parentId = classId.outerClassId
|
||||
if (parentId != null) {
|
||||
val parentFirSymbol = firSymbolProvider.getClassLikeSymbolByFqName(parentId)
|
||||
if (parentFirSymbol is FirClassSymbol) {
|
||||
val parentIrSymbol = getIrClassSymbol(parentFirSymbol)
|
||||
parent = parentIrSymbol.owner
|
||||
}
|
||||
} else {
|
||||
val packageFqName = classId.packageFqName
|
||||
parent = getIrExternalPackageFragment(packageFqName)
|
||||
}
|
||||
private fun addDeclarationsToExternalClass(regularClass: FirRegularClass, irClass: IrClass) {
|
||||
if (regularClass.symbol.classId.packageFqName.startsWith(Name.identifier("kotlin"))) {
|
||||
// Note: yet this is necessary only for *Range / *Progression classes
|
||||
// due to BE optimizations (for lowering) that use their first / last / step members
|
||||
// TODO: think how to refactor this piece of code and/or merge it with similar Fir2IrVisitor fragment
|
||||
val processedNames = mutableSetOf<Name>()
|
||||
for (declaration in regularClass.declarations) {
|
||||
irClass.declarations += when (declaration) {
|
||||
is FirSimpleFunction -> {
|
||||
processedNames += declaration.name
|
||||
getIrFunction(declaration, irClass)
|
||||
}
|
||||
is FirProperty -> {
|
||||
processedNames += declaration.name
|
||||
getIrProperty(declaration, irClass)
|
||||
}
|
||||
is FirConstructor -> getIrConstructor(declaration, irClass)
|
||||
is FirRegularClass -> getIrClass(declaration)
|
||||
else -> continue
|
||||
}
|
||||
}
|
||||
val allNames = regularClass.collectCallableNamesFromSupertypes(session)
|
||||
val scope = regularClass.buildUseSiteMemberScope(session, ScopeSession())
|
||||
if (scope != null) {
|
||||
for (name in allNames) {
|
||||
if (name in processedNames) continue
|
||||
processedNames += name
|
||||
scope.processFunctionsByName(name) { functionSymbol ->
|
||||
if (functionSymbol is FirNamedFunctionSymbol) {
|
||||
val fakeOverrideSymbol =
|
||||
FirClassSubstitutionScope.createFakeOverrideFunction(session, functionSymbol.fir, functionSymbol)
|
||||
irClass.declarations += getIrFunction(fakeOverrideSymbol.fir, irClass)
|
||||
}
|
||||
}
|
||||
scope.processPropertiesByName(name) { propertySymbol ->
|
||||
if (propertySymbol is FirPropertySymbol) {
|
||||
val fakeOverrideSymbol =
|
||||
FirClassSubstitutionScope.createFakeOverrideProperty(session, propertySymbol.fir, propertySymbol)
|
||||
irClass.declarations += getIrProperty(fakeOverrideSymbol.fir, irClass)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (regularClass?.visibility == Visibilities.LOCAL || klass is FirAnonymousObject) {
|
||||
val cached = localStorage.getLocalClass(klass)
|
||||
if (cached != null) return cached
|
||||
val created = create()
|
||||
localStorage.putLocalClass(klass, created)
|
||||
created.declareSupertypesAndTypeParameters(klass)
|
||||
created.setThisReceiver()
|
||||
return created
|
||||
}
|
||||
// NB: klass can be either FirRegularClass or FirAnonymousObject
|
||||
return classCache.getOrPut(klass as FirRegularClass, { create() }) { irClass ->
|
||||
irClass.declareSupertypesAndTypeParameters(klass)
|
||||
irClass.setThisReceiver()
|
||||
if (setParentAndContent && regularClass != null &&
|
||||
regularClass.symbol.classId.packageFqName.startsWith(Name.identifier("kotlin"))
|
||||
) {
|
||||
// Note: yet this is necessary only for *Range / *Progression classes
|
||||
// due to BE optimizations (for lowering) that use their first / last / step members
|
||||
// TODO: think how to refactor this piece of code and/or merge it with similar Fir2IrVisitor fragment
|
||||
val processedNames = mutableSetOf<Name>()
|
||||
for (declaration in regularClass.declarations) {
|
||||
irClass.declarations += when (declaration) {
|
||||
is FirSimpleFunction -> {
|
||||
processedNames += declaration.name
|
||||
getIrFunction(declaration, irClass, shouldLeaveScope = true)
|
||||
}
|
||||
is FirProperty -> {
|
||||
processedNames += declaration.name
|
||||
getIrProperty(declaration, irClass)
|
||||
}
|
||||
is FirConstructor -> getIrConstructor(declaration, irClass, shouldLeaveScope = true)
|
||||
is FirRegularClass -> getIrClass(declaration)
|
||||
else -> continue
|
||||
}
|
||||
}
|
||||
val allNames = regularClass.collectCallableNamesFromSupertypes(session)
|
||||
val scope = regularClass.buildUseSiteMemberScope(session, ScopeSession())
|
||||
if (scope != null) {
|
||||
for (name in allNames) {
|
||||
if (name in processedNames) continue
|
||||
processedNames += name
|
||||
scope.processFunctionsByName(name) { functionSymbol ->
|
||||
if (functionSymbol is FirNamedFunctionSymbol) {
|
||||
val fakeOverrideSymbol =
|
||||
FirClassSubstitutionScope.createFakeOverrideFunction(session, functionSymbol.fir, functionSymbol)
|
||||
irClass.declarations += getIrFunction(fakeOverrideSymbol.fir, irClass, shouldLeaveScope = true)
|
||||
}
|
||||
}
|
||||
scope.processPropertiesByName(name) { propertySymbol ->
|
||||
if (propertySymbol is FirPropertySymbol) {
|
||||
val fakeOverrideSymbol =
|
||||
FirClassSubstitutionScope.createFakeOverrideProperty(session, propertySymbol.fir, propertySymbol)
|
||||
irClass.declarations += getIrProperty(fakeOverrideSymbol.fir, irClass)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (irDeclaration in irClass.declarations) {
|
||||
irDeclaration.parent = irClass
|
||||
}
|
||||
for (irDeclaration in irClass.declarations) {
|
||||
irDeclaration.parent = irClass
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun getIrAnonymousObject(anonymousObject: FirAnonymousObject): IrClass {
|
||||
private fun getCachedIrClass(klass: FirClass<*>): IrClass? {
|
||||
return if (klass is FirAnonymousObject || klass is FirRegularClass && klass.visibility == Visibilities.LOCAL) {
|
||||
localStorage.getLocalClass(klass)
|
||||
} else {
|
||||
classCache[klass]
|
||||
}
|
||||
}
|
||||
|
||||
private fun createIrClass(klass: FirClass<*>): IrClass {
|
||||
// NB: klass can be either FirRegularClass or FirAnonymousObject
|
||||
if (klass is FirAnonymousObject) {
|
||||
return createIrAnonymousObject(klass)
|
||||
}
|
||||
val regularClass = klass as FirRegularClass
|
||||
|
||||
val descriptor = WrappedClassDescriptor()
|
||||
val origin = IrDeclarationOrigin.DEFINED
|
||||
val modality = regularClass.modality ?: Modality.FINAL
|
||||
val visibility = regularClass.visibility
|
||||
val irClass = klass.convertWithOffsets { startOffset, endOffset ->
|
||||
irSymbolTable.declareClass(startOffset, endOffset, origin, descriptor, modality, visibility) { symbol ->
|
||||
IrClassImpl(
|
||||
startOffset,
|
||||
endOffset,
|
||||
origin,
|
||||
symbol,
|
||||
regularClass.name,
|
||||
klass.classKind,
|
||||
regularClass.visibility,
|
||||
modality,
|
||||
isCompanion = regularClass.isCompanion,
|
||||
isInner = regularClass.isInner,
|
||||
isData = regularClass.isData,
|
||||
isExternal = regularClass.isExternal,
|
||||
isInline = regularClass.isInline,
|
||||
isExpect = regularClass.isExpect,
|
||||
isFun = false // TODO FirRegularClass.isFun
|
||||
).apply {
|
||||
descriptor.bind(this)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (regularClass.visibility == Visibilities.LOCAL) {
|
||||
localStorage.putLocalClass(klass, irClass)
|
||||
} else {
|
||||
classCache[klass] = irClass
|
||||
}
|
||||
irClass.declareSupertypesAndTypeParameters(klass)
|
||||
irClass.setThisReceiver()
|
||||
return irClass
|
||||
}
|
||||
|
||||
fun getIrClass(klass: FirClass<*>): IrClass {
|
||||
return getCachedIrClass(klass) ?: createIrClass(klass)
|
||||
}
|
||||
|
||||
private fun createIrAnonymousObject(anonymousObject: FirAnonymousObject): IrClass {
|
||||
val descriptor = WrappedClassDescriptor()
|
||||
val origin = IrDeclarationOrigin.DEFINED
|
||||
val modality = Modality.FINAL
|
||||
val visibility = Visibilities.LOCAL
|
||||
return anonymousObject.convertWithOffsets { startOffset, endOffset ->
|
||||
val result = anonymousObject.convertWithOffsets { startOffset, endOffset ->
|
||||
irSymbolTable.declareClass(startOffset, endOffset, origin, descriptor, modality, visibility) { symbol ->
|
||||
IrClassImpl(
|
||||
startOffset, endOffset, origin, symbol,
|
||||
@@ -309,6 +305,13 @@ class Fir2IrDeclarationStorage(
|
||||
}
|
||||
}
|
||||
}.declareSupertypesAndTypeParameters(anonymousObject)
|
||||
localStorage.putLocalClass(anonymousObject, result)
|
||||
return result
|
||||
}
|
||||
|
||||
fun getIrAnonymousObject(anonymousObject: FirAnonymousObject): IrClass {
|
||||
localStorage.getLocalClass(anonymousObject)?.let { return it }
|
||||
return createIrAnonymousObject(anonymousObject)
|
||||
}
|
||||
|
||||
private fun getIrEnumEntryClass(enumEntry: FirEnumEntry, anonymousObject: FirAnonymousObject, irParent: IrClass?): IrClass {
|
||||
@@ -389,10 +392,7 @@ class Fir2IrDeclarationStorage(
|
||||
}
|
||||
}
|
||||
|
||||
internal fun findIrParent(callableDeclaration: FirCallableDeclaration<*>): IrDeclarationParent? {
|
||||
val firBasedSymbol = callableDeclaration.symbol
|
||||
val callableId = firBasedSymbol.callableId
|
||||
val parentClassId = callableId.classId
|
||||
private fun findIrParent(packageFqName: FqName, parentClassId: ClassId?, firBasedSymbol: FirBasedSymbol<*>): IrDeclarationParent? {
|
||||
return if (parentClassId != null) {
|
||||
// TODO: this will never work for local classes
|
||||
val parentFirSymbol = firSymbolProvider.getClassLikeSymbolByFqName(parentClassId)
|
||||
@@ -403,16 +403,26 @@ class Fir2IrDeclarationStorage(
|
||||
null
|
||||
}
|
||||
} else {
|
||||
val containerFile = firProvider.getFirCallableContainerFile(firBasedSymbol)
|
||||
val containerFile = when (firBasedSymbol) {
|
||||
is FirCallableSymbol -> firProvider.getFirCallableContainerFile(firBasedSymbol)
|
||||
is FirClassLikeSymbol -> firProvider.getFirClassifierContainerFileIfAny(firBasedSymbol)
|
||||
else -> throw AssertionError("Unexpected: $firBasedSymbol")
|
||||
}
|
||||
|
||||
if (containerFile != null) {
|
||||
fileCache[containerFile]
|
||||
} else {
|
||||
val packageFqName = callableId.packageName
|
||||
getIrExternalPackageFragment(packageFqName)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal fun findIrParent(callableDeclaration: FirCallableDeclaration<*>): IrDeclarationParent? {
|
||||
val firBasedSymbol = callableDeclaration.symbol
|
||||
val callableId = firBasedSymbol.callableId
|
||||
return findIrParent(callableId.packageName, callableId.classId, firBasedSymbol)
|
||||
}
|
||||
|
||||
private fun IrDeclaration.setAndModifyParent(irParent: IrDeclarationParent?) {
|
||||
if (irParent != null) {
|
||||
parent = irParent
|
||||
@@ -504,18 +514,13 @@ class Fir2IrDeclarationStorage(
|
||||
descriptor: WrappedCallableDescriptor<T>,
|
||||
irParent: IrDeclarationParent?,
|
||||
isStatic: Boolean,
|
||||
shouldLeaveScope: Boolean,
|
||||
parentPropertyReceiverType: FirTypeRef? = null
|
||||
): T {
|
||||
if (irParent != null) {
|
||||
parent = irParent
|
||||
}
|
||||
descriptor.bind(this)
|
||||
enterScope(descriptor)
|
||||
declareParameters(function, irParent as? IrClass, isStatic, parentPropertyReceiverType)
|
||||
if (shouldLeaveScope) {
|
||||
leaveScope(descriptor)
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -531,7 +536,7 @@ class Fir2IrDeclarationStorage(
|
||||
fun getIrFunction(
|
||||
function: FirSimpleFunction,
|
||||
irParent: IrDeclarationParent?,
|
||||
shouldLeaveScope: Boolean = false,
|
||||
shouldLeaveScope: Boolean = true,
|
||||
origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED
|
||||
): IrSimpleFunction {
|
||||
fun create(): IrSimpleFunction {
|
||||
@@ -555,9 +560,8 @@ class Fir2IrDeclarationStorage(
|
||||
isOperator = function.isOperator
|
||||
)
|
||||
}
|
||||
leaveScope(descriptor)
|
||||
result
|
||||
}.bindAndDeclareParameters(function, descriptor, irParent, isStatic = function.isStatic, shouldLeaveScope = shouldLeaveScope)
|
||||
}.bindAndDeclareParameters(function, descriptor, irParent, isStatic = function.isStatic)
|
||||
}
|
||||
|
||||
if (function.visibility == Visibilities.LOCAL) {
|
||||
@@ -566,6 +570,9 @@ class Fir2IrDeclarationStorage(
|
||||
return if (shouldLeaveScope) cached else cached.enterLocalScope(function)
|
||||
}
|
||||
val created = create()
|
||||
if (shouldLeaveScope) {
|
||||
leaveScope(created.descriptor)
|
||||
}
|
||||
localStorage.putLocalFunction(function, created)
|
||||
return created
|
||||
}
|
||||
@@ -574,6 +581,9 @@ class Fir2IrDeclarationStorage(
|
||||
return if (shouldLeaveScope) cached else cached.enterLocalScope(function)
|
||||
}
|
||||
val created = create()
|
||||
if (shouldLeaveScope) {
|
||||
leaveScope(created.descriptor)
|
||||
}
|
||||
if (function.symbol.callableId.isKFunctionInvoke()) {
|
||||
(function.symbol.overriddenSymbol as? FirNamedFunctionSymbol)?.let {
|
||||
created.overriddenSymbols += getIrFunctionSymbol(it) as IrSimpleFunctionSymbol
|
||||
@@ -586,7 +596,7 @@ class Fir2IrDeclarationStorage(
|
||||
fun getIrLocalFunction(
|
||||
function: FirAnonymousFunction,
|
||||
irParent: IrDeclarationParent? = null,
|
||||
shouldLeaveScope: Boolean = false
|
||||
shouldLeaveScope: Boolean = true
|
||||
): IrSimpleFunction {
|
||||
val descriptor = WrappedSimpleFunctionDescriptor()
|
||||
val isLambda = function.psi is KtFunctionLiteral
|
||||
@@ -604,17 +614,23 @@ class Fir2IrDeclarationStorage(
|
||||
isExpect = false,
|
||||
isFakeOverride = false,
|
||||
isOperator = false
|
||||
)
|
||||
).apply {
|
||||
enterScope(descriptor)
|
||||
}
|
||||
}.bindAndDeclareParameters(
|
||||
function, descriptor, irParent = irParent, isStatic = false, shouldLeaveScope = shouldLeaveScope
|
||||
)
|
||||
function, descriptor, irParent = irParent, isStatic = false
|
||||
).apply {
|
||||
if (shouldLeaveScope) {
|
||||
leaveScope(descriptor)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun getIrConstructor(
|
||||
constructor: FirConstructor,
|
||||
irParent: IrDeclarationParent? = null,
|
||||
shouldLeaveScope: Boolean = false
|
||||
shouldLeaveScope: Boolean = true
|
||||
): IrConstructor {
|
||||
val cached = constructorCache[constructor]
|
||||
if (cached != null) {
|
||||
@@ -635,7 +651,13 @@ class Fir2IrDeclarationStorage(
|
||||
Name.special("<init>"), visibility,
|
||||
constructor.returnTypeRef.toIrType(),
|
||||
isInline = false, isExternal = false, isPrimary = isPrimary, isExpect = false
|
||||
).bindAndDeclareParameters(constructor, descriptor, irParent, isStatic = true, shouldLeaveScope = shouldLeaveScope)
|
||||
).apply {
|
||||
enterScope(descriptor)
|
||||
}.bindAndDeclareParameters(constructor, descriptor, irParent, isStatic = true).apply {
|
||||
if (shouldLeaveScope) {
|
||||
leaveScope(descriptor)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
constructorCache[constructor] = created
|
||||
@@ -685,10 +707,12 @@ class Fir2IrDeclarationStorage(
|
||||
property.returnTypeRef.toIrType(ConversionTypeContext.DEFAULT.inSetter())
|
||||
)
|
||||
}
|
||||
enterScope(descriptor)
|
||||
}.bindAndDeclareParameters(
|
||||
propertyAccessor, descriptor, irParent, isStatic = irParent !is IrClass, shouldLeaveScope = true,
|
||||
propertyAccessor, descriptor, irParent, isStatic = irParent !is IrClass,
|
||||
parentPropertyReceiverType = property.receiverTypeRef
|
||||
).apply {
|
||||
leaveScope(descriptor)
|
||||
if (irParent != null) {
|
||||
parent = irParent
|
||||
}
|
||||
@@ -738,8 +762,16 @@ class Fir2IrDeclarationStorage(
|
||||
fun getIrProperty(
|
||||
property: FirProperty,
|
||||
irParent: IrDeclarationParent?,
|
||||
origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED
|
||||
origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED,
|
||||
shouldLeaveScope: Boolean = true
|
||||
): IrProperty {
|
||||
val cached = propertyCache[property]
|
||||
if (cached != null) {
|
||||
if (!shouldLeaveScope) {
|
||||
enterScope(cached.descriptor)
|
||||
}
|
||||
return cached
|
||||
}
|
||||
return propertyCache.getOrPut(property) {
|
||||
val containerSource = property.containerSource
|
||||
val descriptor = containerSource?.let { WrappedPropertyDescriptorWithContainerSource(it) } ?: WrappedPropertyDescriptor()
|
||||
@@ -789,7 +821,9 @@ class Fir2IrDeclarationStorage(
|
||||
}
|
||||
}
|
||||
}
|
||||
leaveScope(descriptor)
|
||||
if (shouldLeaveScope) {
|
||||
leaveScope(descriptor)
|
||||
}
|
||||
result
|
||||
}
|
||||
}
|
||||
@@ -913,7 +947,22 @@ class Fir2IrDeclarationStorage(
|
||||
}
|
||||
|
||||
fun getIrClassSymbol(firClassSymbol: FirClassSymbol<*>): IrClassSymbol {
|
||||
val irClass = getIrClass(firClassSymbol.fir)
|
||||
val firClass = firClassSymbol.fir
|
||||
getCachedIrClass(firClass)?.let { return irSymbolTable.referenceClass(it.descriptor) }
|
||||
val irClass = createIrClass(firClass)
|
||||
if (firClass is FirAnonymousObject || firClass is FirRegularClass && firClass.visibility == Visibilities.LOCAL) {
|
||||
return irSymbolTable.referenceClass(irClass.descriptor)
|
||||
}
|
||||
val classId = firClassSymbol.classId
|
||||
val parentId = classId.outerClassId
|
||||
val irParent = findIrParent(classId.packageFqName, parentId, firClassSymbol)
|
||||
if (irParent != null) {
|
||||
irClass.parent = irParent
|
||||
}
|
||||
if (irParent is IrExternalPackageFragment) {
|
||||
addDeclarationsToExternalClass(firClass as FirRegularClass, irClass)
|
||||
}
|
||||
|
||||
return irSymbolTable.referenceClass(irClass.descriptor)
|
||||
}
|
||||
|
||||
@@ -930,19 +979,19 @@ class Fir2IrDeclarationStorage(
|
||||
val irParent = (firDeclaration as? FirCallableDeclaration<*>)?.let { findIrParent(it) }
|
||||
return when (firDeclaration) {
|
||||
is FirSimpleFunction -> {
|
||||
val irDeclaration = getIrFunction(firDeclaration, irParent, shouldLeaveScope = true).apply {
|
||||
val irDeclaration = getIrFunction(firDeclaration, irParent).apply {
|
||||
setAndModifyParent(irParent)
|
||||
}
|
||||
irSymbolTable.referenceSimpleFunction(irDeclaration.descriptor)
|
||||
}
|
||||
is FirAnonymousFunction -> {
|
||||
val irDeclaration = getIrLocalFunction(firDeclaration, irParent, shouldLeaveScope = true).apply {
|
||||
val irDeclaration = getIrLocalFunction(firDeclaration, irParent).apply {
|
||||
setAndModifyParent(irParent)
|
||||
}
|
||||
irSymbolTable.referenceSimpleFunction(irDeclaration.descriptor)
|
||||
}
|
||||
is FirConstructor -> {
|
||||
val irDeclaration = getIrConstructor(firDeclaration, irParent, shouldLeaveScope = true).apply {
|
||||
val irDeclaration = getIrConstructor(firDeclaration, irParent).apply {
|
||||
setAndModifyParent(irParent)
|
||||
}
|
||||
irSymbolTable.referenceConstructor(irDeclaration.descriptor)
|
||||
@@ -996,7 +1045,7 @@ class Fir2IrDeclarationStorage(
|
||||
is FirEnumEntry -> {
|
||||
val containingFile = firProvider.getFirCallableContainerFile(firVariableSymbol)
|
||||
val parentClassSymbol = firVariableSymbol.callableId.classId?.let { firSymbolProvider.getClassLikeSymbolByFqName(it) }
|
||||
val irParentClass = (parentClassSymbol?.fir as? FirClass<*>)?.let { getIrClass(it, setParentAndContent = false) }
|
||||
val irParentClass = (parentClassSymbol?.fir as? FirClass<*>)?.let { getIrClass(it) }
|
||||
val irEnumEntry = getIrEnumEntry(
|
||||
firDeclaration,
|
||||
irParent = irParentClass,
|
||||
|
||||
+2
-4
@@ -73,8 +73,7 @@ class Fir2IrFakeOverrideGenerator(
|
||||
val baseSymbol = functionSymbol.deepestOverriddenSymbol() as FirNamedFunctionSymbol
|
||||
val irFunction = declarationStorage.getIrFunction(
|
||||
// TODO: parents for functions and properties should be consistent
|
||||
originalFunction, declarationStorage.findIrParent(baseSymbol.fir),
|
||||
origin = origin, shouldLeaveScope = true
|
||||
originalFunction, declarationStorage.findIrParent(baseSymbol.fir), origin = origin
|
||||
)
|
||||
// In fake overrides, parent logic is a bit specific, because
|
||||
// parent of *original* function (base class) is used for dispatch receiver,
|
||||
@@ -91,8 +90,7 @@ class Fir2IrFakeOverrideGenerator(
|
||||
val fakeOverrideFunction = fakeOverrideSymbol.fir
|
||||
|
||||
val irFunction = declarationStorage.getIrFunction(
|
||||
fakeOverrideFunction, declarationStorage.findIrParent(originalFunction),
|
||||
origin = origin, shouldLeaveScope = true
|
||||
fakeOverrideFunction, declarationStorage.findIrParent(originalFunction), origin = origin
|
||||
)
|
||||
val overriddenSymbol = declarationStorage.getIrFunctionSymbol(functionSymbol) as IrSimpleFunctionSymbol
|
||||
declarations += irFunction.withFunction {
|
||||
|
||||
@@ -157,7 +157,7 @@ class Fir2IrVisitor(
|
||||
|
||||
override fun visitRegularClass(regularClass: FirRegularClass, data: Any?): IrElement {
|
||||
return conversionScope.withParent(
|
||||
applyParentFromStackTo(declarationStorage.getIrClass(regularClass, setParentAndContent = false))
|
||||
applyParentFromStackTo(declarationStorage.getIrClass(regularClass))
|
||||
) {
|
||||
setClassContent(regularClass)
|
||||
}
|
||||
@@ -228,7 +228,7 @@ class Fir2IrVisitor(
|
||||
|
||||
override fun visitConstructor(constructor: FirConstructor, data: Any?): IrElement {
|
||||
val irConstructor = declarationStorage.getIrConstructor(
|
||||
constructor, irParent = conversionScope.lastClass()
|
||||
constructor, irParent = conversionScope.lastClass(), shouldLeaveScope = false
|
||||
)
|
||||
return conversionScope.withFunction(irConstructor) {
|
||||
setFunctionContent(irConstructor.descriptor, constructor)
|
||||
@@ -285,7 +285,7 @@ class Fir2IrVisitor(
|
||||
|
||||
override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Any?): IrElement {
|
||||
val irFunction = declarationStorage.getIrFunction(
|
||||
simpleFunction, irParent = conversionScope.parent()
|
||||
simpleFunction, irParent = conversionScope.parent(), shouldLeaveScope = false
|
||||
)
|
||||
return conversionScope.withFunction(irFunction) {
|
||||
setFunctionContent(irFunction.descriptor, simpleFunction)
|
||||
@@ -294,7 +294,7 @@ class Fir2IrVisitor(
|
||||
|
||||
override fun visitAnonymousFunction(anonymousFunction: FirAnonymousFunction, data: Any?): IrElement {
|
||||
return anonymousFunction.convertWithOffsets { startOffset, endOffset ->
|
||||
val irFunction = declarationStorage.getIrLocalFunction(anonymousFunction, conversionScope.parent())
|
||||
val irFunction = declarationStorage.getIrLocalFunction(anonymousFunction, conversionScope.parent(), shouldLeaveScope = false)
|
||||
conversionScope.withFunction(irFunction) {
|
||||
setFunctionContent(irFunction.descriptor, anonymousFunction)
|
||||
}
|
||||
@@ -360,7 +360,6 @@ class Fir2IrVisitor(
|
||||
}
|
||||
|
||||
private fun IrProperty.setPropertyContent(descriptor: PropertyDescriptor, property: FirProperty): IrProperty {
|
||||
declarationStorage.enterScope(descriptor)
|
||||
val initializer = property.initializer
|
||||
val delegate = property.delegate
|
||||
val irParent = this.parent
|
||||
@@ -399,7 +398,7 @@ class Fir2IrVisitor(
|
||||
|
||||
override fun visitProperty(property: FirProperty, data: Any?): IrElement {
|
||||
if (property.isLocal) return visitLocalVariable(property)
|
||||
val irProperty = declarationStorage.getIrProperty(property, irParent = conversionScope.parent())
|
||||
val irProperty = declarationStorage.getIrProperty(property, irParent = conversionScope.parent(), shouldLeaveScope = false)
|
||||
return conversionScope.withProperty(irProperty) { setPropertyContent(irProperty.descriptor, property) }
|
||||
}
|
||||
|
||||
@@ -556,7 +555,7 @@ class Fir2IrVisitor(
|
||||
val irClass = symbol.owner
|
||||
val fir = firSymbol?.fir as? FirClass<*>
|
||||
val irConstructor = fir?.getPrimaryConstructorIfAny()?.let { firConstructor ->
|
||||
declarationStorage.getIrConstructor(firConstructor, irParent = irClass, shouldLeaveScope = true)
|
||||
declarationStorage.getIrConstructor(firConstructor, irParent = irClass)
|
||||
}?.apply {
|
||||
this.parent = irClass
|
||||
}
|
||||
@@ -646,7 +645,7 @@ class Fir2IrVisitor(
|
||||
it is FirAnonymousObject || it is FirRegularClass && it.classKind == ClassKind.OBJECT
|
||||
}
|
||||
firClass?.convertWithOffsets { startOffset, endOffset ->
|
||||
val irClass = declarationStorage.getIrClass(firClass, setParentAndContent = false)
|
||||
val irClass = declarationStorage.getIrClass(firClass)
|
||||
IrGetObjectValueImpl(startOffset, endOffset, irClass.defaultType, irClass.symbol)
|
||||
}
|
||||
}
|
||||
@@ -714,7 +713,7 @@ class Fir2IrVisitor(
|
||||
it is FirAnonymousObject || it is FirRegularClass && it.classKind == ClassKind.OBJECT
|
||||
}
|
||||
if (firObject != null) {
|
||||
val irObject = declarationStorage.getIrClass(firObject, setParentAndContent = false)
|
||||
val irObject = declarationStorage.getIrClass(firObject)
|
||||
if (irObject != conversionScope.lastClass()) {
|
||||
return thisReceiverExpression.convertWithOffsets { startOffset, endOffset ->
|
||||
IrGetObjectValueImpl(startOffset, endOffset, irObject.defaultType, irObject.symbol)
|
||||
|
||||
+11
-11
@@ -75,7 +75,7 @@ FILE fqName:<root> fileName:/enum.kt
|
||||
ENUM_ENTRY name:TEST1
|
||||
class: CLASS ENUM_ENTRY name:TEST1 modality:FINAL visibility:private superTypes:[<root>.TestEnum2]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum2.TEST1
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.TestEnum2'
|
||||
x: CONST Int type=kotlin.Int value=1
|
||||
@@ -83,7 +83,7 @@ FILE fqName:<root> fileName:/enum.kt
|
||||
ENUM_ENTRY name:TEST2
|
||||
class: CLASS ENUM_ENTRY name:TEST2 modality:FINAL visibility:private superTypes:[<root>.TestEnum2]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum2.TEST2
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.TestEnum2'
|
||||
x: CONST Int type=kotlin.Int value=2
|
||||
@@ -91,7 +91,7 @@ FILE fqName:<root> fileName:/enum.kt
|
||||
ENUM_ENTRY name:TEST3
|
||||
class: CLASS ENUM_ENTRY name:TEST3 modality:FINAL visibility:private superTypes:[<root>.TestEnum2]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum2.TEST3
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.TestEnum2'
|
||||
x: CONST Int type=kotlin.Int value=3
|
||||
@@ -147,7 +147,7 @@ FILE fqName:<root> fileName:/enum.kt
|
||||
ENUM_ENTRY name:TEST
|
||||
class: CLASS ENUM_ENTRY name:TEST modality:FINAL visibility:private superTypes:[<root>.TestEnum3]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum3.TEST
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.TestEnum3'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:TEST modality:FINAL visibility:private superTypes:[<root>.TestEnum3]'
|
||||
@@ -221,7 +221,7 @@ FILE fqName:<root> fileName:/enum.kt
|
||||
ENUM_ENTRY name:TEST1
|
||||
class: CLASS ENUM_ENTRY name:TEST1 modality:FINAL visibility:private superTypes:[<root>.TestEnum4]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum4.TEST1
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.TestEnum4'
|
||||
x: CONST Int type=kotlin.Int value=1
|
||||
@@ -234,7 +234,7 @@ FILE fqName:<root> fileName:/enum.kt
|
||||
ENUM_ENTRY name:TEST2
|
||||
class: CLASS ENUM_ENTRY name:TEST2 modality:FINAL visibility:private superTypes:[<root>.TestEnum4]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum4.TEST2
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.TestEnum4'
|
||||
x: CONST Int type=kotlin.Int value=2
|
||||
@@ -251,7 +251,7 @@ FILE fqName:<root> fileName:/enum.kt
|
||||
ANONYMOUS_INITIALIZER isStatic=false
|
||||
BLOCK_BODY
|
||||
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Int visibility:private [final]' type=kotlin.Unit origin=null
|
||||
receiver: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
receiver: GET_VAR '<this>: <uninitialized parent>.<no name provided> declared in <no parent>.<no name provided>' type=<uninitialized parent>.<no name provided> origin=null
|
||||
value: GET_VAR 'x: kotlin.Int declared in <root>.TestEnum4.<init>' type=kotlin.Int origin=null
|
||||
FUN name:foo visibility:public modality:FINAL <> ($this:<root>.TestEnum4.TEST2) returnType:kotlin.Unit
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum4.TEST2
|
||||
@@ -325,21 +325,21 @@ FILE fqName:<root> fileName:/enum.kt
|
||||
ENUM_ENTRY name:TEST1
|
||||
class: CLASS ENUM_ENTRY name:TEST1 modality:FINAL visibility:private superTypes:[<root>.TestEnum5]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum5.TEST1
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.TestEnum5'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:TEST1 modality:FINAL visibility:private superTypes:[<root>.TestEnum5]'
|
||||
ENUM_ENTRY name:TEST2
|
||||
class: CLASS ENUM_ENTRY name:TEST2 modality:FINAL visibility:private superTypes:[<root>.TestEnum5]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum5.TEST2
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.TestEnum5'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:TEST2 modality:FINAL visibility:private superTypes:[<root>.TestEnum5]'
|
||||
ENUM_ENTRY name:TEST3
|
||||
class: CLASS ENUM_ENTRY name:TEST3 modality:FINAL visibility:private superTypes:[<root>.TestEnum5]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum5.TEST3
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.TestEnum5'
|
||||
x: CONST Int type=kotlin.Int value=0
|
||||
@@ -423,7 +423,7 @@ FILE fqName:<root> fileName:/enum.kt
|
||||
ENUM_ENTRY name:TEST
|
||||
class: CLASS ENUM_ENTRY name:TEST modality:FINAL visibility:private superTypes:[<root>.TestEnum6]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum6.TEST
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int, y: kotlin.Int) [primary] declared in <root>.TestEnum6'
|
||||
x: CALL 'public final fun f (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
|
||||
|
||||
@@ -72,7 +72,7 @@ FILE fqName:<root> fileName:/enumClassModality.kt
|
||||
ENUM_ENTRY name:X1
|
||||
class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[<root>.TestFinalEnum2]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestFinalEnum2.X1
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.TestFinalEnum2'
|
||||
x: CONST Int type=kotlin.Int value=1
|
||||
@@ -182,7 +182,7 @@ FILE fqName:<root> fileName:/enumClassModality.kt
|
||||
ENUM_ENTRY name:X1
|
||||
class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[<root>.TestOpenEnum1]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestOpenEnum1.X1
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.TestOpenEnum1'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[<root>.TestOpenEnum1]'
|
||||
@@ -242,7 +242,7 @@ FILE fqName:<root> fileName:/enumClassModality.kt
|
||||
ENUM_ENTRY name:X1
|
||||
class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[<root>.TestOpenEnum2]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestOpenEnum2.X1
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.TestOpenEnum2'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[<root>.TestOpenEnum2]'
|
||||
@@ -303,7 +303,7 @@ FILE fqName:<root> fileName:/enumClassModality.kt
|
||||
ENUM_ENTRY name:X1
|
||||
class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[<root>.TestAbstractEnum1]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestAbstractEnum1.X1
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.TestAbstractEnum1'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[<root>.TestAbstractEnum1]'
|
||||
@@ -380,7 +380,7 @@ FILE fqName:<root> fileName:/enumClassModality.kt
|
||||
ENUM_ENTRY name:X1
|
||||
class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[<root>.TestAbstractEnum2]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestAbstractEnum2.X1
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.TestAbstractEnum2'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[<root>.TestAbstractEnum2]'
|
||||
|
||||
@@ -4,7 +4,7 @@ FILE fqName:<root> fileName:/enumWithMultipleCtors.kt
|
||||
ENUM_ENTRY name:X
|
||||
class: CLASS ENUM_ENTRY name:X modality:FINAL visibility:private superTypes:[<root>.A]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A.X
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (arg: kotlin.String) declared in <root>.A'
|
||||
arg: CONST String type=kotlin.String value="asd"
|
||||
@@ -12,7 +12,7 @@ FILE fqName:<root> fileName:/enumWithMultipleCtors.kt
|
||||
ENUM_ENTRY name:Y
|
||||
class: CLASS ENUM_ENTRY name:Y modality:FINAL visibility:private superTypes:[<root>.A]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A.Y
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () declared in <root>.A'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:Y modality:FINAL visibility:private superTypes:[<root>.A]'
|
||||
@@ -27,7 +27,7 @@ FILE fqName:<root> fileName:/enumWithMultipleCtors.kt
|
||||
ENUM_ENTRY name:Z
|
||||
class: CLASS ENUM_ENTRY name:Z modality:FINAL visibility:private superTypes:[<root>.A]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A.Z
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) declared in <root>.A'
|
||||
x: CONST Int type=kotlin.Int value=5
|
||||
|
||||
@@ -21,7 +21,7 @@ FILE fqName:<root> fileName:/enumWithSecondaryCtor.kt
|
||||
ENUM_ENTRY name:ZERO
|
||||
class: CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:private superTypes:[<root>.Test0]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test0.ZERO
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () declared in <root>.Test0'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:private superTypes:[<root>.Test0]'
|
||||
@@ -92,14 +92,14 @@ FILE fqName:<root> fileName:/enumWithSecondaryCtor.kt
|
||||
ENUM_ENTRY name:ZERO
|
||||
class: CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:private superTypes:[<root>.Test1]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test1.ZERO
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () declared in <root>.Test1'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:private superTypes:[<root>.Test1]'
|
||||
ENUM_ENTRY name:ONE
|
||||
class: CLASS ENUM_ENTRY name:ONE modality:FINAL visibility:private superTypes:[<root>.Test1]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test1.ONE
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.Test1'
|
||||
x: CONST Int type=kotlin.Int value=1
|
||||
@@ -171,7 +171,7 @@ FILE fqName:<root> fileName:/enumWithSecondaryCtor.kt
|
||||
ENUM_ENTRY name:ZERO
|
||||
class: CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:private superTypes:[<root>.Test2]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2.ZERO
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () declared in <root>.Test2'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:private superTypes:[<root>.Test2]'
|
||||
@@ -183,7 +183,7 @@ FILE fqName:<root> fileName:/enumWithSecondaryCtor.kt
|
||||
ENUM_ENTRY name:ONE
|
||||
class: CLASS ENUM_ENTRY name:ONE modality:FINAL visibility:private superTypes:[<root>.Test2]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2.ONE
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.Test2'
|
||||
x: CONST Int type=kotlin.Int value=1
|
||||
|
||||
@@ -17,7 +17,7 @@ FILE fqName:<root> fileName:/objectLiteralExpressions.kt
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
PROPERTY name:test1 visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:test1 type:<uninitialized parent>.<anonymous> visibility:private [final,static]
|
||||
FIELD PROPERTY_BACKING_FIELD name:test1 type:<root>.test1.<no name provided> visibility:private [final,static]
|
||||
EXPRESSION_BODY
|
||||
BLOCK type=<root>.test1.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]
|
||||
@@ -27,13 +27,13 @@ FILE fqName:<root> fileName:/objectLiteralExpressions.kt
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]'
|
||||
CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.test1.<no name provided>' type=<root>.test1.<no name provided> origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:<uninitialized parent>.<anonymous>
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:<root>.test1.<no name provided>
|
||||
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val]
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-test1> (): <uninitialized parent>.<anonymous> declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:<uninitialized parent>.<anonymous> visibility:private [final,static]' type=<uninitialized parent>.<anonymous> origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-test1> (): <root>.test1.<no name provided> declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:<root>.test1.<no name provided> visibility:private [final,static]' type=<root>.test1.<no name provided> origin=null
|
||||
PROPERTY name:test2 visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:test2 type:<uninitialized parent>.<anonymous> visibility:private [final,static]
|
||||
FIELD PROPERTY_BACKING_FIELD name:test2 type:<root>.test2.<no name provided> visibility:private [final,static]
|
||||
EXPRESSION_BODY
|
||||
BLOCK type=<root>.test2.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.IFoo]
|
||||
@@ -48,11 +48,11 @@ FILE fqName:<root> fileName:/objectLiteralExpressions.kt
|
||||
CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit [inline] declared in kotlin.io' type=kotlin.Unit origin=null
|
||||
message: CONST String type=kotlin.String value="foo"
|
||||
CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.test2.<no name provided>' type=<root>.test2.<no name provided> origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:<uninitialized parent>.<anonymous>
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:<root>.test2.<no name provided>
|
||||
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): <uninitialized parent>.<anonymous> declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:<uninitialized parent>.<anonymous> visibility:private [final,static]' type=<uninitialized parent>.<anonymous> origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): <root>.test2.<no name provided> declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:<root>.test2.<no name provided> visibility:private [final,static]' type=<root>.test2.<no name provided> origin=null
|
||||
CLASS CLASS name:Outer modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.Outer [primary]
|
||||
@@ -82,10 +82,10 @@ FILE fqName:<root> fileName:/objectLiteralExpressions.kt
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:test3 visibility:public modality:FINAL <> ($this:<root>.Outer) returnType:<uninitialized parent>.<anonymous>
|
||||
FUN name:test3 visibility:public modality:FINAL <> ($this:<root>.Outer) returnType:<root>.Outer.test3.<no name provided>
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Outer
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test3 (): <uninitialized parent>.<anonymous> declared in <root>.Outer'
|
||||
RETURN type=kotlin.Nothing from='public final fun test3 (): <root>.Outer.test3.<no name provided> declared in <root>.Outer'
|
||||
BLOCK type=<root>.Outer.test3.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.Outer.Inner]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Outer.test3.<no name provided>
|
||||
@@ -112,10 +112,10 @@ FILE fqName:<root> fileName:/objectLiteralExpressions.kt
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:test4 visibility:public modality:FINAL <> ($receiver:<root>.Outer) returnType:<uninitialized parent>.<anonymous>
|
||||
FUN name:test4 visibility:public modality:FINAL <> ($receiver:<root>.Outer) returnType:<root>.test4.<no name provided>
|
||||
$receiver: VALUE_PARAMETER name:<this> type:<root>.Outer
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test4 (): <uninitialized parent>.<anonymous> declared in <root>'
|
||||
RETURN type=kotlin.Nothing from='public final fun test4 (): <root>.test4.<no name provided> declared in <root>'
|
||||
BLOCK type=<root>.test4.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.Outer.Inner]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.test4.<no name provided>
|
||||
|
||||
+2
-2
@@ -39,7 +39,7 @@ FILE fqName:<root> fileName:/enumEntriesWithAnnotations.kt
|
||||
annotations:
|
||||
TestAnn(x = 'ENTRY1')
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum.ENTRY1
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.TestEnum'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ENTRY1 modality:FINAL visibility:private superTypes:[<root>.TestEnum]'
|
||||
@@ -48,7 +48,7 @@ FILE fqName:<root> fileName:/enumEntriesWithAnnotations.kt
|
||||
annotations:
|
||||
TestAnn(x = 'ENTRY2')
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum.ENTRY2
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.TestEnum'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ENTRY2 modality:FINAL visibility:private superTypes:[<root>.TestEnum]'
|
||||
|
||||
@@ -9,7 +9,7 @@ FILE fqName:<root> fileName:/enumEntryAsReceiver.kt
|
||||
ENUM_ENTRY name:B
|
||||
class: CLASS ENUM_ENTRY name:B modality:FINAL visibility:private superTypes:[<root>.X]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.X.B
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.X'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:B modality:FINAL visibility:private superTypes:[<root>.X]'
|
||||
@@ -32,7 +32,7 @@ FILE fqName:<root> fileName:/enumEntryAsReceiver.kt
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.X.B.value'
|
||||
CALL 'public final fun <get-value2> (): kotlin.String declared in <root>.X.B' type=kotlin.String origin=GET_PROPERTY
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<no name provided> declared in <no parent>.<no name provided>' type=<uninitialized parent>.<no name provided> origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.X.B) returnType:kotlin.Function0<kotlin.String>
|
||||
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.X.B
|
||||
|
||||
+13
-13
@@ -9,7 +9,7 @@ FILE fqName:<root> fileName:/enumEntryReferenceFromEnumEntryClass.kt
|
||||
ENUM_ENTRY name:Z
|
||||
class: CLASS ENUM_ENTRY name:Z modality:FINAL visibility:private superTypes:[<root>.MyEnum]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyEnum.Z
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.MyEnum'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:Z modality:FINAL visibility:private superTypes:[<root>.MyEnum]'
|
||||
@@ -39,10 +39,10 @@ FILE fqName:<root> fileName:/enumEntryReferenceFromEnumEntryClass.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MyEnum.Z
|
||||
BLOCK_BODY
|
||||
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
|
||||
receiver: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
receiver: GET_VAR '<this>: <uninitialized parent>.<no name provided> declared in <no parent>.<no name provided>' type=<uninitialized parent>.<no name provided> origin=null
|
||||
value: CONST Int type=kotlin.Int value=1
|
||||
CALL 'public final fun foo (): kotlin.Unit declared in <root>.MyEnum.Z' type=kotlin.Unit origin=null
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<no name provided> declared in <no parent>.<no name provided>' type=<uninitialized parent>.<no name provided> origin=null
|
||||
PROPERTY name:aLambda visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:aLambda type:kotlin.Function0<kotlin.Unit> visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
@@ -50,10 +50,10 @@ FILE fqName:<root> fileName:/enumEntryReferenceFromEnumEntryClass.kt
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
||||
BLOCK_BODY
|
||||
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
|
||||
receiver: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
receiver: GET_VAR '<this>: <uninitialized parent>.<no name provided> declared in <no parent>.<no name provided>' type=<uninitialized parent>.<no name provided> origin=null
|
||||
value: CONST Int type=kotlin.Int value=1
|
||||
CALL 'public final fun foo (): kotlin.Unit declared in <root>.MyEnum.Z' type=kotlin.Unit origin=null
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<no name provided> declared in <no parent>.<no name provided>' type=<uninitialized parent>.<no name provided> origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-aLambda> visibility:public modality:FINAL <> ($this:<root>.MyEnum.Z) returnType:kotlin.Function0<kotlin.Unit>
|
||||
correspondingProperty: PROPERTY name:aLambda visibility:public modality:FINAL [val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MyEnum.Z
|
||||
@@ -62,7 +62,7 @@ FILE fqName:<root> fileName:/enumEntryReferenceFromEnumEntryClass.kt
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:aLambda type:kotlin.Function0<kotlin.Unit> visibility:private [final]' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.MyEnum.Z declared in <root>.MyEnum.Z.<get-aLambda>' type=<root>.MyEnum.Z origin=null
|
||||
PROPERTY name:anObject visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:anObject type:<uninitialized parent>.<anonymous> visibility:private [final]
|
||||
FIELD PROPERTY_BACKING_FIELD name:anObject type:<root>.MyEnum.Z.anObject.<no name provided> visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
BLOCK type=<root>.MyEnum.Z.anObject.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]
|
||||
@@ -74,25 +74,25 @@ FILE fqName:<root> fileName:/enumEntryReferenceFromEnumEntryClass.kt
|
||||
ANONYMOUS_INITIALIZER isStatic=false
|
||||
BLOCK_BODY
|
||||
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
|
||||
receiver: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
receiver: GET_VAR '<this>: <uninitialized parent>.<no name provided> declared in <no parent>.<no name provided>' type=<uninitialized parent>.<no name provided> origin=null
|
||||
value: CONST Int type=kotlin.Int value=1
|
||||
CALL 'public final fun foo (): kotlin.Unit declared in <root>.MyEnum.Z' type=kotlin.Unit origin=null
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<no name provided> declared in <no parent>.<no name provided>' type=<uninitialized parent>.<no name provided> origin=null
|
||||
FUN name:test visibility:public modality:FINAL <> ($this:<root>.MyEnum.Z.anObject.<no name provided>) returnType:kotlin.Unit
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MyEnum.Z.anObject.<no name provided>
|
||||
BLOCK_BODY
|
||||
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
|
||||
receiver: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
receiver: GET_VAR '<this>: <uninitialized parent>.<no name provided> declared in <no parent>.<no name provided>' type=<uninitialized parent>.<no name provided> origin=null
|
||||
value: CONST Int type=kotlin.Int value=1
|
||||
CALL 'public final fun foo (): kotlin.Unit declared in <root>.MyEnum.Z' type=kotlin.Unit origin=null
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<no name provided> declared in <no parent>.<no name provided>' type=<uninitialized parent>.<no name provided> origin=null
|
||||
CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.MyEnum.Z.anObject.<no name provided>' type=<root>.MyEnum.Z.anObject.<no name provided> origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anObject> visibility:public modality:FINAL <> ($this:<root>.MyEnum.Z) returnType:<uninitialized parent>.<anonymous>
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anObject> visibility:public modality:FINAL <> ($this:<root>.MyEnum.Z) returnType:<root>.MyEnum.Z.anObject.<no name provided>
|
||||
correspondingProperty: PROPERTY name:anObject visibility:public modality:FINAL [val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MyEnum.Z
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-anObject> (): <uninitialized parent>.<anonymous> declared in <root>.MyEnum.Z'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anObject type:<uninitialized parent>.<anonymous> visibility:private [final]' type=<uninitialized parent>.<anonymous> origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-anObject> (): <root>.MyEnum.Z.anObject.<no name provided> declared in <root>.MyEnum.Z'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anObject type:<root>.MyEnum.Z.anObject.<no name provided> visibility:private [final]' type=<root>.MyEnum.Z.anObject.<no name provided> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.MyEnum.Z declared in <root>.MyEnum.Z.<get-anObject>' type=<root>.MyEnum.Z origin=null
|
||||
FUN name:values visibility:public modality:FINAL <> ($this:<root>.MyEnum) returnType:kotlin.Array<<root>.MyEnum>
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MyEnum
|
||||
|
||||
@@ -56,7 +56,7 @@ FILE fqName:<root> fileName:/partialSam.kt
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
PROPERTY name:fsi visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:fsi type:<uninitialized parent>.<anonymous> visibility:private [final,static]
|
||||
FIELD PROPERTY_BACKING_FIELD name:fsi type:<root>.fsi.<no name provided> visibility:private [final,static]
|
||||
EXPRESSION_BODY
|
||||
BLOCK type=<root>.fsi.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.Fn<kotlin.String, kotlin.Int>]
|
||||
@@ -74,13 +74,13 @@ FILE fqName:<root> fileName:/partialSam.kt
|
||||
RETURN type=kotlin.Nothing from='public final fun run (s: kotlin.String, i: kotlin.Int, t: kotlin.String): kotlin.Int declared in <root>.fsi.<no name provided>'
|
||||
CONST Int type=kotlin.Int value=1
|
||||
CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.fsi.<no name provided>' type=<root>.fsi.<no name provided> origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-fsi> visibility:public modality:FINAL <> () returnType:<uninitialized parent>.<anonymous>
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-fsi> visibility:public modality:FINAL <> () returnType:<root>.fsi.<no name provided>
|
||||
correspondingProperty: PROPERTY name:fsi visibility:public modality:FINAL [val]
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-fsi> (): <uninitialized parent>.<anonymous> declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:fsi type:<uninitialized parent>.<anonymous> visibility:private [final,static]' type=<uninitialized parent>.<anonymous> origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-fsi> (): <root>.fsi.<no name provided> declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:fsi type:<root>.fsi.<no name provided> visibility:private [final,static]' type=<root>.fsi.<no name provided> origin=null
|
||||
PROPERTY name:fis visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:fis type:<uninitialized parent>.<anonymous> visibility:private [final,static]
|
||||
FIELD PROPERTY_BACKING_FIELD name:fis type:<root>.fis.<no name provided> visibility:private [final,static]
|
||||
EXPRESSION_BODY
|
||||
BLOCK type=<root>.fis.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.Fn<kotlin.Int, kotlin.String>]
|
||||
@@ -98,17 +98,17 @@ FILE fqName:<root> fileName:/partialSam.kt
|
||||
RETURN type=kotlin.Nothing from='public final fun run (s: kotlin.String, i: kotlin.Int, t: kotlin.Int): kotlin.String declared in <root>.fis.<no name provided>'
|
||||
CONST String type=kotlin.String value=""
|
||||
CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.fis.<no name provided>' type=<root>.fis.<no name provided> origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-fis> visibility:public modality:FINAL <> () returnType:<uninitialized parent>.<anonymous>
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-fis> visibility:public modality:FINAL <> () returnType:<root>.fis.<no name provided>
|
||||
correspondingProperty: PROPERTY name:fis visibility:public modality:FINAL [val]
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-fis> (): <uninitialized parent>.<anonymous> declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:fis type:<uninitialized parent>.<anonymous> visibility:private [final,static]' type=<uninitialized parent>.<anonymous> origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-fis> (): <root>.fis.<no name provided> declared in <root>'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:fis type:<root>.fis.<no name provided> visibility:private [final,static]' type=<root>.fis.<no name provided> origin=null
|
||||
FUN name:test visibility:public modality:FINAL <> (j:<root>.J) returnType:kotlin.Unit
|
||||
VALUE_PARAMETER name:j index:0 type:<root>.J
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun runConversion (f1: <root>.Fn<kotlin.String, kotlin.Int>, f2: <root>.Fn<kotlin.Int, kotlin.String>): kotlin.Int declared in <root>.J' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
|
||||
f1: CALL 'public final fun <get-fsi> (): <uninitialized parent>.<anonymous> declared in <root>' type=<uninitialized parent>.<anonymous> origin=GET_PROPERTY
|
||||
f1: CALL 'public final fun <get-fsi> (): <root>.fsi.<no name provided> declared in <root>' type=<uninitialized parent>.<no name provided> origin=GET_PROPERTY
|
||||
f2: FUN_EXPR type=kotlin.Function3<kotlin.String, kotlin.Int, kotlin.Int, kotlin.String> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (s:kotlin.String, i:kotlin.Int, ti:kotlin.Int) returnType:kotlin.String
|
||||
VALUE_PARAMETER name:s index:0 type:kotlin.String
|
||||
@@ -127,4 +127,4 @@ FILE fqName:<root> fileName:/partialSam.kt
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (s: kotlin.String, i: kotlin.Int, ts: kotlin.String): kotlin.Int declared in <root>.test'
|
||||
CONST Int type=kotlin.Int value=1
|
||||
f2: CALL 'public final fun <get-fis> (): <uninitialized parent>.<anonymous> declared in <root>' type=<uninitialized parent>.<anonymous> origin=GET_PROPERTY
|
||||
f2: CALL 'public final fun <get-fis> (): <root>.fis.<no name provided> declared in <root>' type=<uninitialized parent>.<no name provided> origin=GET_PROPERTY
|
||||
|
||||
@@ -67,11 +67,11 @@ FILE fqName:<root> fileName:/multipleThisReferences.kt
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-y> (): kotlin.Int declared in <root>.Host'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Host declared in <root>.Host.<get-y>' type=<root>.Host origin=null
|
||||
FUN name:test visibility:public modality:FINAL <> ($this:<root>.Host, $receiver:<root>.Outer) returnType:<uninitialized parent>.<anonymous>
|
||||
FUN name:test visibility:public modality:FINAL <> ($this:<root>.Host, $receiver:<root>.Outer) returnType:<root>.Host.test.<no name provided>
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Host
|
||||
$receiver: VALUE_PARAMETER name:<this> type:<root>.Outer
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test (): <uninitialized parent>.<anonymous> declared in <root>.Host'
|
||||
RETURN type=kotlin.Nothing from='public final fun test (): <root>.Host.test.<no name provided> declared in <root>.Host'
|
||||
BLOCK type=<root>.Host.test.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.Outer.Inner]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Host.test.<no name provided>
|
||||
@@ -85,7 +85,7 @@ FILE fqName:<root> fileName:/multipleThisReferences.kt
|
||||
EXPRESSION_BODY
|
||||
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
|
||||
$this: CALL 'public final fun <get-x> (): kotlin.Int declared in <root>.Outer.Inner' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
$this: GET_VAR '<this>: <root>.Host.test.<no name provided> declared in <root>.Host.test.<no name provided>' type=<root>.Host.test.<no name provided> origin=null
|
||||
other: GET_VAR 'y: kotlin.Int declared in <root>.Host.<init>' type=kotlin.Int origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-xx> visibility:public modality:FINAL <> ($this:<root>.Host.test.<no name provided>) returnType:kotlin.Int
|
||||
correspondingProperty: PROPERTY name:xx visibility:public modality:FINAL [val]
|
||||
|
||||
@@ -108,7 +108,7 @@ FILE fqName:<root> fileName:/objectReference.kt
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:aLambda type:kotlin.Function0<kotlin.Unit> visibility:private [final]' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Z declared in <root>.Z.<get-aLambda>' type=<root>.Z origin=null
|
||||
PROPERTY name:anObject visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:anObject type:<uninitialized parent>.<anonymous> visibility:private [final]
|
||||
FIELD PROPERTY_BACKING_FIELD name:anObject type:<root>.Z.anObject.<no name provided> visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
BLOCK type=<root>.Z.anObject.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]
|
||||
@@ -143,12 +143,12 @@ FILE fqName:<root> fileName:/objectReference.kt
|
||||
CALL 'public final fun foo (): kotlin.Unit declared in <root>.Z' type=kotlin.Unit origin=null
|
||||
$this: GET_OBJECT 'CLASS OBJECT name:Z modality:FINAL visibility:public superTypes:[kotlin.Any]' type=<root>.Z
|
||||
CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.Z.anObject.<no name provided>' type=<root>.Z.anObject.<no name provided> origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anObject> visibility:public modality:FINAL <> ($this:<root>.Z) returnType:<uninitialized parent>.<anonymous>
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anObject> visibility:public modality:FINAL <> ($this:<root>.Z) returnType:<root>.Z.anObject.<no name provided>
|
||||
correspondingProperty: PROPERTY name:anObject visibility:public modality:FINAL [val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Z
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-anObject> (): <uninitialized parent>.<anonymous> declared in <root>.Z'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anObject type:<uninitialized parent>.<anonymous> visibility:private [final]' type=<uninitialized parent>.<anonymous> origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-anObject> (): <root>.Z.anObject.<no name provided> declared in <root>.Z'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anObject type:<root>.Z.anObject.<no name provided> visibility:private [final]' type=<root>.Z.anObject.<no name provided> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Z declared in <root>.Z.<get-anObject>' type=<root>.Z origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ FILE fqName:<root> fileName:/temporaryInEnumEntryInitializer.kt
|
||||
ENUM_ENTRY name:ENTRY
|
||||
class: CLASS ENUM_ENTRY name:ENTRY modality:FINAL visibility:private superTypes:[<root>.En]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.En.ENTRY
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.String?) [primary] declared in <root>.En'
|
||||
x: CALL 'public open fun toString (): kotlin.String declared in kotlin.Any' type=kotlin.String? origin=null
|
||||
|
||||
@@ -62,10 +62,10 @@ FILE fqName:<root> fileName:/thisOfGenericOuterClass.kt
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:test visibility:public modality:FINAL <> ($receiver:<root>.Outer<kotlin.Int>) returnType:<uninitialized parent>.<anonymous>
|
||||
FUN name:test visibility:public modality:FINAL <> ($receiver:<root>.Outer<kotlin.Int>) returnType:<root>.test.<no name provided>
|
||||
$receiver: VALUE_PARAMETER name:<this> type:<root>.Outer<kotlin.Int>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test (): <uninitialized parent>.<anonymous> declared in <root>'
|
||||
RETURN type=kotlin.Nothing from='public final fun test (): <root>.test.<no name provided> declared in <root>'
|
||||
BLOCK type=<root>.test.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.Outer.Inner<kotlin.Int>]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.test.<no name provided>
|
||||
@@ -81,7 +81,7 @@ FILE fqName:<root> fileName:/thisOfGenericOuterClass.kt
|
||||
$this: CALL 'public final fun <get-x> (): T of <root>.Outer declared in <root>.Outer' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR '<this>: <root>.Outer<kotlin.Int> declared in <root>.test' type=<root>.Outer<kotlin.Int> origin=null
|
||||
other: CALL 'public final fun <get-y> (): kotlin.Int declared in <root>.Outer.Inner' type=kotlin.Int origin=GET_PROPERTY
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
$this: GET_VAR '<this>: <root>.test.<no name provided> declared in <root>.test.<no name provided>' type=<root>.test.<no name provided> origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-xx> visibility:public modality:FINAL <> ($this:<root>.test.<no name provided>) returnType:kotlin.Int
|
||||
correspondingProperty: PROPERTY name:xx visibility:public modality:FINAL [val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.test.<no name provided>
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ FILE fqName:<root> fileName:/thisReferenceBeforeClassDeclared.kt
|
||||
FUN name:test visibility:public modality:FINAL <> ($receiver:<root>.WithCompanion) returnType:kotlin.Unit
|
||||
$receiver: VALUE_PARAMETER name:<this> type:<root>.WithCompanion
|
||||
BLOCK_BODY
|
||||
VAR name:test1 type:<uninitialized parent>.<anonymous> [val]
|
||||
VAR name:test1 type:<root>.test.<no name provided> [val]
|
||||
BLOCK type=<root>.test.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.WithCompanion]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.test.<no name provided>
|
||||
@@ -11,7 +11,7 @@ FILE fqName:<root> fileName:/thisReferenceBeforeClassDeclared.kt
|
||||
ERROR_CALL 'Cannot find delegated constructor call' type=<root>.WithCompanion
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.WithCompanion]'
|
||||
CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.test.<no name provided>' type=<root>.test.<no name provided> origin=null
|
||||
VAR name:test2 type:<uninitialized parent>.<anonymous> [val]
|
||||
VAR name:test2 type:<root>.test.<no name provided> [val]
|
||||
BLOCK type=<root>.test.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.WithCompanion]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.test.<no name provided>
|
||||
|
||||
@@ -9,7 +9,7 @@ FILE fqName:<root> fileName:/enumEntry.kt
|
||||
ENUM_ENTRY name:ENTRY
|
||||
class: CLASS ENUM_ENTRY name:ENTRY modality:FINAL visibility:private superTypes:[<root>.Z]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Z.ENTRY
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<anonymous> [primary]
|
||||
CONSTRUCTOR visibility:private <> () returnType:<uninitialized parent>.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.Z'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ENTRY modality:FINAL visibility:private superTypes:[<root>.Z]'
|
||||
@@ -26,7 +26,7 @@ FILE fqName:<root> fileName:/enumEntry.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Z.ENTRY.A
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun test (): kotlin.Unit declared in <root>.Z.ENTRY' type=kotlin.Unit origin=null
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<anonymous> declared in <no parent>.<anonymous>' type=<uninitialized parent>.<anonymous> origin=null
|
||||
$this: GET_VAR '<this>: <uninitialized parent>.<no name provided> declared in <no parent>.<no name provided>' type=<uninitialized parent>.<no name provided> origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||
|
||||
Reference in New Issue
Block a user