[Analysis API] render full symbol in generatedPrimaryConstructorProperty in DebugSymbolRenderer

This commit is contained in:
Ilya Kirillov
2022-10-25 11:00:50 +02:00
committed by teamcity
parent e2416f48fe
commit 7766362ff1
11 changed files with 1332 additions and 41 deletions
@@ -61,13 +61,13 @@ public class DebugSymbolRenderer(
.declaredMemberExtensionFunctions .declaredMemberExtensionFunctions
.filter { it.name == "getContainingModule" } .filter { it.name == "getContainingModule" }
.forEach { .forEach {
renderFunction(it, this@KtAnalysisSession, symbol) renderFunction(it, renderSymbolsFully = false, this@KtAnalysisSession, symbol)
} }
KtSymbolInfoProviderMixIn::class.declaredMemberExtensionProperties KtSymbolInfoProviderMixIn::class.declaredMemberExtensionProperties
.asSequence() .asSequence()
.filter { (it.extensionReceiverParameter?.type?.classifier as? KClass<*>)?.isInstance(symbol) == true } .filter { (it.extensionReceiverParameter?.type?.classifier as? KClass<*>)?.isInstance(symbol) == true }
.forEach { renderProperty(it, this@KtAnalysisSession, symbol) } .forEach { renderProperty(it, renderSymbolsFully = false, this@KtAnalysisSession, symbol) }
} }
} }
@@ -77,30 +77,30 @@ public class DebugSymbolRenderer(
renderSymbolHeader(symbol) renderSymbolHeader(symbol)
withIndent { withIndent {
renderProperty(KtCallableSymbol::callableIdIfNonLocal, symbol) renderProperty(KtCallableSymbol::callableIdIfNonLocal, renderSymbolsFully = false, symbol)
if (symbol is KtNamedSymbol) { if (symbol is KtNamedSymbol) {
renderProperty(KtNamedSymbol::name, symbol) renderProperty(KtNamedSymbol::name, renderSymbolsFully = false, symbol)
} }
renderProperty(KtCallableSymbol::origin, symbol) renderProperty(KtCallableSymbol::origin, renderSymbolsFully = false, symbol)
} }
} }
context(KtAnalysisSession) context(KtAnalysisSession)
private fun PrettyPrinter.renderFunction(function: KFunction<*>, vararg args: Any) { private fun PrettyPrinter.renderFunction(function: KFunction<*>, renderSymbolsFully: Boolean, vararg args: Any) {
appendLine().append(function.name).append(": ") appendLine().append(function.name).append(": ")
renderFunctionCall(function, args) renderFunctionCall(function, renderSymbolsFully, args)
} }
context(KtAnalysisSession) context(KtAnalysisSession)
private fun PrettyPrinter.renderProperty(property: KProperty<*>, vararg args: Any) { private fun PrettyPrinter.renderProperty(property: KProperty<*>, renderSymbolsFully: Boolean, vararg args: Any) {
appendLine().append(property.name).append(": ") appendLine().append(property.name).append(": ")
renderFunctionCall(property.getter, args) renderFunctionCall(property.getter, renderSymbolsFully, args)
} }
context(KtAnalysisSession) context(KtAnalysisSession)
private fun PrettyPrinter.renderFunctionCall(function: KFunction<*>, args: Array<out Any>) { private fun PrettyPrinter.renderFunctionCall(function: KFunction<*>, renderSymbolsFully: Boolean, args: Array<out Any>) {
try { try {
renderValue(function.call(*args)) renderValue(function.call(*args), renderSymbolsFully)
} catch (e: InvocationTargetException) { } catch (e: InvocationTargetException) {
append("Could not render due to ").appendLine(e.cause.toString()) append("Could not render due to ").appendLine(e.cause.toString())
} }
@@ -116,7 +116,13 @@ public class DebugSymbolRenderer(
.filterIsInstance<KProperty<*>>() .filterIsInstance<KProperty<*>>()
.filter { it.name !in ignoredPropertyNames } .filter { it.name !in ignoredPropertyNames }
.sortedBy { it.name } .sortedBy { it.name }
.forEach { renderProperty(it, symbol) } .forEach { member ->
renderProperty(
member,
renderSymbolsFully = member.name == KtValueParameterSymbol::generatedPrimaryConstructorProperty.name,
symbol
)
}
} }
} }
@@ -127,29 +133,29 @@ public class DebugSymbolRenderer(
} }
context(KtAnalysisSession) context(KtAnalysisSession)
private fun PrettyPrinter.renderList(values: List<*>) { private fun PrettyPrinter.renderList(values: List<*>, renderSymbolsFully: Boolean) {
if (values.isEmpty()) { if (values.isEmpty()) {
append("[]") append("[]")
return return
} }
withIndentInSquareBrackets { withIndentInSquareBrackets {
printCollection(values, separator = "\n") { renderValue(it) } printCollection(values, separator = "\n") { renderValue(it, renderSymbolsFully) }
} }
} }
context(KtAnalysisSession) context(KtAnalysisSession)
private fun PrettyPrinter.renderSymbolTag(symbol: KtSymbol) { private fun PrettyPrinter.renderSymbolTag(symbol: KtSymbol, renderSymbolsFully: Boolean) {
fun renderId(id: Any?, symbol: KtSymbol) { fun renderId(id: Any?, symbol: KtSymbol) {
if (id != null) { if (id != null) {
renderValue(id) renderValue(id, renderSymbolsFully)
} else { } else {
val outerName = (symbol as? KtPossiblyNamedSymbol)?.name ?: SpecialNames.NO_NAME_PROVIDED val outerName = (symbol as? KtPossiblyNamedSymbol)?.name ?: SpecialNames.NO_NAME_PROVIDED
append("<local>/" + outerName.asString()) append("<local>/" + outerName.asString())
} }
} }
if (symbol is KtPropertyGetterSymbol || symbol is KtPropertySetterSymbol || symbol is KtValueParameterSymbol) { if (renderSymbolsFully || symbol is KtPropertyGetterSymbol || symbol is KtPropertySetterSymbol || symbol is KtValueParameterSymbol) {
renderSymbol(symbol) renderSymbol(symbol)
return return
} }
@@ -159,7 +165,7 @@ public class DebugSymbolRenderer(
when (symbol) { when (symbol) {
is KtClassLikeSymbol -> renderId(symbol.classIdIfNonLocal, symbol) is KtClassLikeSymbol -> renderId(symbol.classIdIfNonLocal, symbol)
is KtCallableSymbol -> renderId(symbol.callableIdIfNonLocal, symbol) is KtCallableSymbol -> renderId(symbol.callableIdIfNonLocal, symbol)
is KtNamedSymbol -> renderValue(symbol.name) is KtNamedSymbol -> renderValue(symbol.name, renderSymbolsFully = false)
else -> error("Unsupported symbol ${symbol::class.java.name}") else -> error("Unsupported symbol ${symbol::class.java.name}")
} }
append(")") append(")")
@@ -173,13 +179,13 @@ public class DebugSymbolRenderer(
context(KtAnalysisSession) context(KtAnalysisSession)
private fun PrettyPrinter.renderNamedConstantValue(value: KtNamedAnnotationValue) { private fun PrettyPrinter.renderNamedConstantValue(value: KtNamedAnnotationValue) {
append(value.name.render()).append(" = ") append(value.name.render()).append(" = ")
renderValue(value.expression) renderValue(value.expression, renderSymbolsFully = false)
} }
context(KtAnalysisSession) context(KtAnalysisSession)
private fun PrettyPrinter.renderType(type: KtType) { private fun PrettyPrinter.renderType(type: KtType) {
if (type.annotations.isNotEmpty()) { if (type.annotations.isNotEmpty()) {
renderList(type.annotations) renderList(type.annotations, renderSymbolsFully = false)
append(' ') append(' ')
} }
when (type) { when (type) {
@@ -190,19 +196,19 @@ public class DebugSymbolRenderer(
context(KtAnalysisSession) context(KtAnalysisSession)
private fun PrettyPrinter.renderAnnotationApplication(call: KtAnnotationApplication) { private fun PrettyPrinter.renderAnnotationApplication(call: KtAnnotationApplication) {
renderValue(call.classId) renderValue(call.classId, renderSymbolsFully = false)
append('(') append('(')
call.arguments.sortedBy { it.name }.forEachIndexed { index, value -> call.arguments.sortedBy { it.name }.forEachIndexed { index, value ->
if (index > 0) { if (index > 0) {
append(", ") append(", ")
} }
renderValue(value) renderValue(value, renderSymbolsFully = false)
} }
append(')') append(')')
withIndent { withIndent {
appendLine().append("psi: ") appendLine().append("psi: ")
renderValue(call.psi?.javaClass?.simpleName) renderValue(call.psi?.javaClass?.simpleName, renderSymbolsFully = false)
} }
} }
@@ -215,10 +221,10 @@ public class DebugSymbolRenderer(
} }
context(KtAnalysisSession) context(KtAnalysisSession)
private fun PrettyPrinter.renderValue(value: Any?) { private fun PrettyPrinter.renderValue(value: Any?, renderSymbolsFully: Boolean) {
when (value) { when (value) {
// Symbol-related values // Symbol-related values
is KtSymbol -> renderSymbolTag(value) is KtSymbol -> renderSymbolTag(value, renderSymbolsFully)
is KtType -> renderType(value) is KtType -> renderType(value)
is KtAnnotationValue -> renderAnnotationValue(value) is KtAnnotationValue -> renderAnnotationValue(value)
is KtNamedAnnotationValue -> renderNamedConstantValue(value) is KtNamedAnnotationValue -> renderNamedConstantValue(value)
@@ -240,7 +246,7 @@ public class DebugSymbolRenderer(
is ULong -> append(value.toString()) is ULong -> append(value.toString())
// Java values // Java values
is Enum<*> -> append(value.name) is Enum<*> -> append(value.name)
is List<*> -> renderList(value) is List<*> -> renderList(value, renderSymbolsFully = false)
else -> append(value.toString()) else -> append(value.toString())
} }
} }
@@ -249,7 +255,7 @@ public class DebugSymbolRenderer(
private fun PrettyPrinter.rendeContextReceiver(receiver: KtContextReceiver) { private fun PrettyPrinter.rendeContextReceiver(receiver: KtContextReceiver) {
append("ContextReceiver(") append("ContextReceiver(")
receiver.label?.let { label -> receiver.label?.let { label ->
renderValue(label) renderValue(label, renderSymbolsFully = false)
append("@") append("@")
} }
renderType(receiver.type) renderType(receiver.type)
@@ -301,7 +307,7 @@ public class DebugSymbolRenderer(
context(KtAnalysisSession) context(KtAnalysisSession)
private fun PrettyPrinter.renderAnnotationsList(value: KtAnnotationsList) { private fun PrettyPrinter.renderAnnotationsList(value: KtAnnotationsList) {
renderList(value.annotations) renderList(value.annotations, renderSymbolsFully = false)
} }
private fun getSymbolApiClass(symbol: KtSymbol): KClass<*> { private fun getSymbolApiClass(symbol: KtSymbol): KClass<*> {
@@ -0,0 +1,239 @@
KtConstructorSymbol:
annotationsList: []
callableIdIfNonLocal: null
containingClassIdIfNonLocal: Anno
contextReceivers: []
hasStableParameterNames: true
isExtension: false
isPrimary: true
origin: SOURCE
receiverType: null
returnType: Anno
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /Anno.param1
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/String
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): Anno
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: param1
origin: SOURCE
receiverType: null
returnType: kotlin/String
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): Anno
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getParam1
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: param1
origin: SOURCE
receiverType: null
returnType: kotlin/String
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /Anno.param2
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): Anno
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: param2
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): Anno
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getParam2
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: param2
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
]
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
KtNamedClassOrObjectSymbol:
annotationsList: []
classIdIfNonLocal: Anno
classKind: ANNOTATION_CLASS
companionObject: null
contextReceivers: []
isData: false
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: Anno
origin: SOURCE
superTypes: [
kotlin/Annotation
]
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
KtFunctionSymbol:
annotationsList: [
Anno(param1 = "funparam", param2 = 3)
psi: KtAnnotationEntry
]
callableIdIfNonLocal: /X.x
contextReceivers: []
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: x
origin: SOURCE
receiverType: null
returnType: kotlin/Unit
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): X
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
KtNamedClassOrObjectSymbol:
annotationsList: [
Anno(param1 = "param", param2 = 2)
psi: KtAnnotationEntry
]
classIdIfNonLocal: X
classKind: CLASS
companionObject: null
contextReceivers: []
isData: false
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: X
origin: SOURCE
superTypes: [
kotlin/Any
]
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -16,7 +16,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/Anno.param1) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /Anno.param1
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/String
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): Anno
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: KtNonConstantInitializerValue(val param1: String)
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: true
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: param1
origin: SOURCE
receiverType: null
returnType: kotlin/String
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): Anno
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getParam1
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false
@@ -35,7 +87,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/Anno.param2) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /Anno.param2
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): Anno
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: KtNonConstantInitializerValue(val param2: Int)
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: true
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: param2
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): Anno
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getParam2
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false
@@ -0,0 +1,131 @@
KtConstructorSymbol:
annotationsList: []
callableIdIfNonLocal: null
containingClassIdIfNonLocal: A
contextReceivers: []
hasStableParameterNames: true
isExtension: false
isPrimary: true
origin: SOURCE
receiverType: null
returnType: A
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /A.a
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): A
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: a
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): A
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getA
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: a
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: b
origin: SOURCE
receiverType: null
returnType: kotlin/String
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
]
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
KtNamedClassOrObjectSymbol:
annotationsList: []
classIdIfNonLocal: A
classKind: CLASS
companionObject: null
contextReceivers: []
isData: false
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: A
origin: SOURCE
superTypes: [
kotlin/Any
]
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -16,7 +16,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/A.a) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /A.a
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): A
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: KtNonConstantInitializerValue(val a: Int)
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: true
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: a
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): A
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getA
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false
@@ -16,7 +16,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/MyColor.x) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /MyColor.x
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): MyColor
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: x
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): MyColor
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getX
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false
@@ -35,7 +87,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/MyColor.y) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /MyColor.y
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): MyColor
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: y
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): MyColor
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getY
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false
@@ -54,7 +158,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/MyColor.z) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /MyColor.z
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): MyColor
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: z
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): MyColor
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getZ
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false
@@ -16,7 +16,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/MyColor.x) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /MyColor.x
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): MyColor
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: KtNonConstantInitializerValue(val x: Int)
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: true
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: x
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): MyColor
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getX
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false
@@ -35,7 +87,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/MyColor.y) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /MyColor.y
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): MyColor
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: KtNonConstantInitializerValue(val y: Int)
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: true
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: y
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): MyColor
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getY
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false
@@ -54,7 +158,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/MyColor.z) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /MyColor.z
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): MyColor
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: KtNonConstantInitializerValue(val z: Int)
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: true
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: z
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): MyColor
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getZ
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false
@@ -0,0 +1,239 @@
KtConstructorSymbol:
annotationsList: []
callableIdIfNonLocal: null
containingClassIdIfNonLocal: P
contextReceivers: []
hasStableParameterNames: true
isExtension: false
isPrimary: true
origin: SOURCE
receiverType: null
returnType: P
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /P.x
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): P
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: x
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): P
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getX
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: x
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /P.y
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): P
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: y
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): P
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getY
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: y
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
]
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
KtNamedClassOrObjectSymbol:
annotationsList: []
classIdIfNonLocal: P
classKind: CLASS
companionObject: null
contextReceivers: []
isData: true
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: P
origin: SOURCE
superTypes: [
kotlin/Any
]
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
KtLocalVariableSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
isExtension: false
isVal: true
name: l
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
KtLocalVariableSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
isExtension: false
isVal: true
name: r
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /destruct
contextReceivers: []
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: destruct
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: TOP_LEVEL
typeParameters: []
valueParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -16,7 +16,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/P.x) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /P.x
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): P
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: KtNonConstantInitializerValue(val x: Int)
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: true
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: x
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): P
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getX
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false
@@ -35,7 +87,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/P.y) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /P.y
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): P
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: KtNonConstantInitializerValue(val y: Int)
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: true
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: y
origin: SOURCE
receiverType: null
returnType: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): P
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getY
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false
@@ -16,7 +16,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/Style.value) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /Style.value
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/String
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): Style
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: value
origin: SOURCE
receiverType: null
returnType: kotlin/String
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): Style
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getValue
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false
@@ -16,7 +16,59 @@ KtConstructorSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: null callableIdIfNonLocal: null
contextReceivers: [] contextReceivers: []
generatedPrimaryConstructorProperty: KtKotlinPropertySymbol(/Style.value) generatedPrimaryConstructorProperty: KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /Style.value
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverType: null
returnType: kotlin/String
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): Style
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: KtNonConstantInitializerValue(val value: String)
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: true
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: value
origin: SOURCE
receiverType: null
returnType: kotlin/String
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): Style
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getValue
javaSetterName: null
setterDeprecationStatus: null
hasDefaultValue: false hasDefaultValue: false
isCrossinline: false isCrossinline: false
isExtension: false isExtension: false