IR: drop IrTypeAlias
This commit is contained in:
+62
-65
@@ -18,161 +18,158 @@ import org.jetbrains.kotlin.utils.Printer
|
|||||||
|
|
||||||
class RenderIrElementWithDescriptorsVisitor : IrElementVisitor<String, Nothing?> {
|
class RenderIrElementWithDescriptorsVisitor : IrElementVisitor<String, Nothing?> {
|
||||||
override fun visitElement(element: IrElement, data: Nothing?): String =
|
override fun visitElement(element: IrElement, data: Nothing?): String =
|
||||||
"? ${element.javaClass.simpleName}"
|
"? ${element.javaClass.simpleName}"
|
||||||
|
|
||||||
override fun visitDeclaration(declaration: IrDeclaration, data: Nothing?): String =
|
override fun visitDeclaration(declaration: IrDeclaration, data: Nothing?): String =
|
||||||
"? ${declaration.javaClass.simpleName} ${declaration.descriptor.ref()}"
|
"? ${declaration.javaClass.simpleName} ${declaration.descriptor.ref()}"
|
||||||
|
|
||||||
override fun visitModuleFragment(declaration: IrModuleFragment, data: Nothing?): String =
|
override fun visitModuleFragment(declaration: IrModuleFragment, data: Nothing?): String =
|
||||||
"MODULE_FRAGMENT ${declaration.descriptor}"
|
"MODULE_FRAGMENT ${declaration.descriptor}"
|
||||||
|
|
||||||
override fun visitFile(declaration: IrFile, data: Nothing?): String =
|
override fun visitFile(declaration: IrFile, data: Nothing?): String =
|
||||||
"FILE ${declaration.path}"
|
"FILE ${declaration.path}"
|
||||||
|
|
||||||
override fun visitFunction(declaration: IrFunction, data: Nothing?): String =
|
override fun visitFunction(declaration: IrFunction, data: Nothing?): String =
|
||||||
"FUN ${declaration.descriptor}"
|
"FUN ${declaration.descriptor}"
|
||||||
|
|
||||||
override fun visitConstructor(declaration: IrConstructor, data: Nothing?): String =
|
override fun visitConstructor(declaration: IrConstructor, data: Nothing?): String =
|
||||||
"CONSTRUCTOR ${declaration.descriptor}"
|
"CONSTRUCTOR ${declaration.descriptor}"
|
||||||
|
|
||||||
override fun visitProperty(declaration: IrProperty, data: Nothing?): String =
|
override fun visitProperty(declaration: IrProperty, data: Nothing?): String =
|
||||||
"PROPERTY ${declaration.descriptor}"
|
"PROPERTY ${declaration.descriptor}"
|
||||||
|
|
||||||
override fun visitField(declaration: IrField, data: Nothing?): String =
|
override fun visitField(declaration: IrField, data: Nothing?): String =
|
||||||
"FIELD ${declaration.descriptor}"
|
"FIELD ${declaration.descriptor}"
|
||||||
|
|
||||||
override fun visitClass(declaration: IrClass, data: Nothing?): String =
|
override fun visitClass(declaration: IrClass, data: Nothing?): String =
|
||||||
"CLASS ${declaration.descriptor}"
|
"CLASS ${declaration.descriptor}"
|
||||||
|
|
||||||
override fun visitTypeAlias(declaration: IrTypeAlias, data: Nothing?): String =
|
|
||||||
"TYPEALIAS ${declaration.descriptor} type=${declaration.descriptor.underlyingType.render()}"
|
|
||||||
|
|
||||||
override fun visitVariable(declaration: IrVariable, data: Nothing?): String =
|
override fun visitVariable(declaration: IrVariable, data: Nothing?): String =
|
||||||
"VAR ${declaration.descriptor}"
|
"VAR ${declaration.descriptor}"
|
||||||
|
|
||||||
override fun visitEnumEntry(declaration: IrEnumEntry, data: Nothing?): String =
|
override fun visitEnumEntry(declaration: IrEnumEntry, data: Nothing?): String =
|
||||||
"ENUM_ENTRY ${declaration.descriptor}"
|
"ENUM_ENTRY ${declaration.descriptor}"
|
||||||
|
|
||||||
override fun visitAnonymousInitializer(declaration: IrAnonymousInitializer, data: Nothing?): String =
|
override fun visitAnonymousInitializer(declaration: IrAnonymousInitializer, data: Nothing?): String =
|
||||||
"ANONYMOUS_INITIALIZER ${declaration.descriptor}"
|
"ANONYMOUS_INITIALIZER ${declaration.descriptor}"
|
||||||
|
|
||||||
override fun visitLocalDelegatedProperty(declaration: IrLocalDelegatedProperty, data: Nothing?): String =
|
override fun visitLocalDelegatedProperty(declaration: IrLocalDelegatedProperty, data: Nothing?): String =
|
||||||
"LOCAL_DELEGATED_PROPERTY ${declaration.descriptor}"
|
"LOCAL_DELEGATED_PROPERTY ${declaration.descriptor}"
|
||||||
|
|
||||||
override fun visitExpressionBody(body: IrExpressionBody, data: Nothing?): String =
|
override fun visitExpressionBody(body: IrExpressionBody, data: Nothing?): String =
|
||||||
"EXPRESSION_BODY"
|
"EXPRESSION_BODY"
|
||||||
|
|
||||||
override fun visitBlockBody(body: IrBlockBody, data: Nothing?): String =
|
override fun visitBlockBody(body: IrBlockBody, data: Nothing?): String =
|
||||||
"BLOCK_BODY"
|
"BLOCK_BODY"
|
||||||
|
|
||||||
override fun visitSyntheticBody(body: IrSyntheticBody, data: Nothing?): String =
|
override fun visitSyntheticBody(body: IrSyntheticBody, data: Nothing?): String =
|
||||||
"SYNTHETIC_BODY kind=${body.kind}"
|
"SYNTHETIC_BODY kind=${body.kind}"
|
||||||
|
|
||||||
override fun visitExpression(expression: IrExpression, data: Nothing?): String =
|
override fun visitExpression(expression: IrExpression, data: Nothing?): String =
|
||||||
"? ${expression.javaClass.simpleName} type=${expression.type.render()}"
|
"? ${expression.javaClass.simpleName} type=${expression.type.render()}"
|
||||||
|
|
||||||
override fun <T> visitConst(expression: IrConst<T>, data: Nothing?): String =
|
override fun <T> visitConst(expression: IrConst<T>, data: Nothing?): String =
|
||||||
"CONST ${expression.kind} type=${expression.type.render()} value='${expression.value}'"
|
"CONST ${expression.kind} type=${expression.type.render()} value='${expression.value}'"
|
||||||
|
|
||||||
override fun visitVararg(expression: IrVararg, data: Nothing?): String =
|
override fun visitVararg(expression: IrVararg, data: Nothing?): String =
|
||||||
"VARARG type=${expression.type} varargElementType=${expression.varargElementType}"
|
"VARARG type=${expression.type} varargElementType=${expression.varargElementType}"
|
||||||
|
|
||||||
override fun visitSpreadElement(spread: IrSpreadElement, data: Nothing?): String =
|
override fun visitSpreadElement(spread: IrSpreadElement, data: Nothing?): String =
|
||||||
"SPREAD_ELEMENT"
|
"SPREAD_ELEMENT"
|
||||||
|
|
||||||
override fun visitBlock(expression: IrBlock, data: Nothing?): String =
|
override fun visitBlock(expression: IrBlock, data: Nothing?): String =
|
||||||
"BLOCK type=${expression.type.render()} origin=${expression.origin}"
|
"BLOCK type=${expression.type.render()} origin=${expression.origin}"
|
||||||
|
|
||||||
override fun visitComposite(expression: IrComposite, data: Nothing?): String =
|
override fun visitComposite(expression: IrComposite, data: Nothing?): String =
|
||||||
"COMPOSITE type=${expression.type.render()} origin=${expression.origin}"
|
"COMPOSITE type=${expression.type.render()} origin=${expression.origin}"
|
||||||
|
|
||||||
override fun visitReturn(expression: IrReturn, data: Nothing?): String =
|
override fun visitReturn(expression: IrReturn, data: Nothing?): String =
|
||||||
"RETURN type=${expression.type.render()} from='${expression.returnTarget}'"
|
"RETURN type=${expression.type.render()} from='${expression.returnTarget}'"
|
||||||
|
|
||||||
override fun visitCall(expression: IrCall, data: Nothing?): String =
|
override fun visitCall(expression: IrCall, data: Nothing?): String =
|
||||||
"CALL '${expression.descriptor}' ${expression.renderSuperQualifier()}" +
|
"CALL '${expression.descriptor}' ${expression.renderSuperQualifier()}" +
|
||||||
"type=${expression.type.render()} origin=${expression.origin}"
|
"type=${expression.type.render()} origin=${expression.origin}"
|
||||||
|
|
||||||
private fun IrCall.renderSuperQualifier(): String =
|
private fun IrCall.renderSuperQualifier(): String =
|
||||||
superQualifier?.let { "superQualifier=${it.name} " } ?: ""
|
superQualifier?.let { "superQualifier=${it.name} " } ?: ""
|
||||||
|
|
||||||
override fun visitDelegatingConstructorCall(expression: IrDelegatingConstructorCall, data: Nothing?): String =
|
override fun visitDelegatingConstructorCall(expression: IrDelegatingConstructorCall, data: Nothing?): String =
|
||||||
"DELEGATING_CONSTRUCTOR_CALL '${expression.descriptor}'"
|
"DELEGATING_CONSTRUCTOR_CALL '${expression.descriptor}'"
|
||||||
|
|
||||||
override fun visitEnumConstructorCall(expression: IrEnumConstructorCall, data: Nothing?): String =
|
override fun visitEnumConstructorCall(expression: IrEnumConstructorCall, data: Nothing?): String =
|
||||||
"ENUM_CONSTRUCTOR_CALL '${expression.descriptor}'"
|
"ENUM_CONSTRUCTOR_CALL '${expression.descriptor}'"
|
||||||
|
|
||||||
override fun visitInstanceInitializerCall(expression: IrInstanceInitializerCall, data: Nothing?): String =
|
override fun visitInstanceInitializerCall(expression: IrInstanceInitializerCall, data: Nothing?): String =
|
||||||
"INSTANCE_INITIALIZER_CALL classDescriptor='${expression.classDescriptor}'"
|
"INSTANCE_INITIALIZER_CALL classDescriptor='${expression.classDescriptor}'"
|
||||||
|
|
||||||
override fun visitGetValue(expression: IrGetValue, data: Nothing?): String =
|
override fun visitGetValue(expression: IrGetValue, data: Nothing?): String =
|
||||||
"GET_VAR '${expression.descriptor}' type=${expression.type.render()} origin=${expression.origin}"
|
"GET_VAR '${expression.descriptor}' type=${expression.type.render()} origin=${expression.origin}"
|
||||||
|
|
||||||
override fun visitSetVariable(expression: IrSetVariable, data: Nothing?): String =
|
override fun visitSetVariable(expression: IrSetVariable, data: Nothing?): String =
|
||||||
"SET_VAR '${expression.descriptor}' type=${expression.type.render()} origin=${expression.origin}"
|
"SET_VAR '${expression.descriptor}' type=${expression.type.render()} origin=${expression.origin}"
|
||||||
|
|
||||||
override fun visitGetField(expression: IrGetField, data: Nothing?): String =
|
override fun visitGetField(expression: IrGetField, data: Nothing?): String =
|
||||||
"GET_FIELD '${expression.descriptor}' type=${expression.type.render()} origin=${expression.origin}"
|
"GET_FIELD '${expression.descriptor}' type=${expression.type.render()} origin=${expression.origin}"
|
||||||
|
|
||||||
override fun visitSetField(expression: IrSetField, data: Nothing?): String =
|
override fun visitSetField(expression: IrSetField, data: Nothing?): String =
|
||||||
"SET_FIELD '${expression.descriptor}' type=${expression.type.render()} origin=${expression.origin}"
|
"SET_FIELD '${expression.descriptor}' type=${expression.type.render()} origin=${expression.origin}"
|
||||||
|
|
||||||
override fun visitGetObjectValue(expression: IrGetObjectValue, data: Nothing?): String =
|
override fun visitGetObjectValue(expression: IrGetObjectValue, data: Nothing?): String =
|
||||||
"GET_OBJECT '${expression.descriptor}' type=${expression.type.render()}"
|
"GET_OBJECT '${expression.descriptor}' type=${expression.type.render()}"
|
||||||
|
|
||||||
override fun visitGetEnumValue(expression: IrGetEnumValue, data: Nothing?): String =
|
override fun visitGetEnumValue(expression: IrGetEnumValue, data: Nothing?): String =
|
||||||
"GET_ENUM '${expression.descriptor}' type=${expression.type.render()}"
|
"GET_ENUM '${expression.descriptor}' type=${expression.type.render()}"
|
||||||
|
|
||||||
override fun visitStringConcatenation(expression: IrStringConcatenation, data: Nothing?): String =
|
override fun visitStringConcatenation(expression: IrStringConcatenation, data: Nothing?): String =
|
||||||
"STRING_CONCATENATION type=${expression.type.render()}"
|
"STRING_CONCATENATION type=${expression.type.render()}"
|
||||||
|
|
||||||
override fun visitTypeOperator(expression: IrTypeOperatorCall, data: Nothing?): String =
|
override fun visitTypeOperator(expression: IrTypeOperatorCall, data: Nothing?): String =
|
||||||
"TYPE_OP origin=${expression.operator} typeOperand=${expression.typeOperand.render()}"
|
"TYPE_OP origin=${expression.operator} typeOperand=${expression.typeOperand.render()}"
|
||||||
|
|
||||||
override fun visitWhen(expression: IrWhen, data: Nothing?): String =
|
override fun visitWhen(expression: IrWhen, data: Nothing?): String =
|
||||||
"WHEN type=${expression.type.render()} origin=${expression.origin}"
|
"WHEN type=${expression.type.render()} origin=${expression.origin}"
|
||||||
|
|
||||||
override fun visitBranch(branch: IrBranch, data: Nothing?): String =
|
override fun visitBranch(branch: IrBranch, data: Nothing?): String =
|
||||||
"BRANCH"
|
"BRANCH"
|
||||||
|
|
||||||
override fun visitWhileLoop(loop: IrWhileLoop, data: Nothing?): String =
|
override fun visitWhileLoop(loop: IrWhileLoop, data: Nothing?): String =
|
||||||
"WHILE label=${loop.label} origin=${loop.origin}"
|
"WHILE label=${loop.label} origin=${loop.origin}"
|
||||||
|
|
||||||
override fun visitDoWhileLoop(loop: IrDoWhileLoop, data: Nothing?): String =
|
override fun visitDoWhileLoop(loop: IrDoWhileLoop, data: Nothing?): String =
|
||||||
"DO_WHILE label=${loop.label} origin=${loop.origin}"
|
"DO_WHILE label=${loop.label} origin=${loop.origin}"
|
||||||
|
|
||||||
override fun visitBreak(jump: IrBreak, data: Nothing?): String =
|
override fun visitBreak(jump: IrBreak, data: Nothing?): String =
|
||||||
"BREAK label=${jump.label} loop.label=${jump.loop.label}"
|
"BREAK label=${jump.label} loop.label=${jump.loop.label}"
|
||||||
|
|
||||||
override fun visitContinue(jump: IrContinue, data: Nothing?): String =
|
override fun visitContinue(jump: IrContinue, data: Nothing?): String =
|
||||||
"CONTINUE label=${jump.label} loop.label=${jump.loop.label}"
|
"CONTINUE label=${jump.label} loop.label=${jump.loop.label}"
|
||||||
|
|
||||||
override fun visitThrow(expression: IrThrow, data: Nothing?): String =
|
override fun visitThrow(expression: IrThrow, data: Nothing?): String =
|
||||||
"THROW type=${expression.type.render()}"
|
"THROW type=${expression.type.render()}"
|
||||||
|
|
||||||
override fun visitCallableReference(expression: IrCallableReference, data: Nothing?): String =
|
override fun visitCallableReference(expression: IrCallableReference, data: Nothing?): String =
|
||||||
"CALLABLE_REFERENCE '${expression.descriptor}' type=${expression.type.render()} origin=${expression.origin}"
|
"CALLABLE_REFERENCE '${expression.descriptor}' type=${expression.type.render()} origin=${expression.origin}"
|
||||||
|
|
||||||
override fun visitClassReference(expression: IrClassReference, data: Nothing?): String =
|
override fun visitClassReference(expression: IrClassReference, data: Nothing?): String =
|
||||||
"CLASS_REFERENCE '${expression.descriptor}' type=${expression.type.render()}"
|
"CLASS_REFERENCE '${expression.descriptor}' type=${expression.type.render()}"
|
||||||
|
|
||||||
override fun visitGetClass(expression: IrGetClass, data: Nothing?): String =
|
override fun visitGetClass(expression: IrGetClass, data: Nothing?): String =
|
||||||
"GET_CLASS type=${expression.type.render()}"
|
"GET_CLASS type=${expression.type.render()}"
|
||||||
|
|
||||||
override fun visitTry(aTry: IrTry, data: Nothing?): String =
|
override fun visitTry(aTry: IrTry, data: Nothing?): String =
|
||||||
"TRY type=${aTry.type.render()}"
|
"TRY type=${aTry.type.render()}"
|
||||||
|
|
||||||
override fun visitCatch(aCatch: IrCatch, data: Nothing?): String =
|
override fun visitCatch(aCatch: IrCatch, data: Nothing?): String =
|
||||||
"CATCH parameter=${aCatch.parameter.ref()}"
|
"CATCH parameter=${aCatch.parameter.ref()}"
|
||||||
|
|
||||||
override fun visitErrorDeclaration(declaration: IrErrorDeclaration, data: Nothing?): String =
|
override fun visitErrorDeclaration(declaration: IrErrorDeclaration, data: Nothing?): String =
|
||||||
"ERROR_DECL ${declaration.descriptor.javaClass.simpleName} ${declaration.descriptor.ref()}"
|
"ERROR_DECL ${declaration.descriptor.javaClass.simpleName} ${declaration.descriptor.ref()}"
|
||||||
|
|
||||||
override fun visitErrorExpression(expression: IrErrorExpression, data: Nothing?): String =
|
override fun visitErrorExpression(expression: IrErrorExpression, data: Nothing?): String =
|
||||||
"ERROR_EXPR '${expression.description}' type=${expression.type.render()}"
|
"ERROR_EXPR '${expression.description}' type=${expression.type.render()}"
|
||||||
|
|
||||||
override fun visitErrorCallExpression(expression: IrErrorCallExpression, data: Nothing?): String =
|
override fun visitErrorCallExpression(expression: IrErrorCallExpression, data: Nothing?): String =
|
||||||
"ERROR_CALL '${expression.description}' type=${expression.type.render()}"
|
"ERROR_CALL '${expression.description}' type=${expression.type.render()}"
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val DECLARATION_RENDERER = DescriptorRenderer.withOptions {
|
val DECLARATION_RENDERER = DescriptorRenderer.withOptions {
|
||||||
@@ -187,26 +184,26 @@ class RenderIrElementWithDescriptorsVisitor : IrElementVisitor<String, Nothing?>
|
|||||||
val REFERENCE_RENDERER = DescriptorRenderer.ONLY_NAMES_WITH_SHORT_TYPES
|
val REFERENCE_RENDERER = DescriptorRenderer.ONLY_NAMES_WITH_SHORT_TYPES
|
||||||
|
|
||||||
internal fun IrDeclaration.name(): String =
|
internal fun IrDeclaration.name(): String =
|
||||||
descriptor.let { it.name.toString() }
|
descriptor.let { it.name.toString() }
|
||||||
|
|
||||||
internal fun IrDeclaration.renderDeclared(): String =
|
internal fun IrDeclaration.renderDeclared(): String =
|
||||||
DECLARATION_RENDERER.render(this.descriptor)
|
DECLARATION_RENDERER.render(this.descriptor)
|
||||||
|
|
||||||
internal fun DeclarationDescriptor.ref(): String =
|
internal fun DeclarationDescriptor.ref(): String =
|
||||||
if (this is ReceiverParameterDescriptor)
|
if (this is ReceiverParameterDescriptor)
|
||||||
"<receiver: ${containingDeclaration.ref()}>"
|
"<receiver: ${containingDeclaration.ref()}>"
|
||||||
else
|
else
|
||||||
REFERENCE_RENDERER.render(this)
|
REFERENCE_RENDERER.render(this)
|
||||||
|
|
||||||
internal fun KotlinType.render(): String =
|
internal fun KotlinType.render(): String =
|
||||||
DECLARATION_RENDERER.renderType(this)
|
DECLARATION_RENDERER.renderType(this)
|
||||||
|
|
||||||
internal fun IrDeclaration.renderOrigin(): String =
|
internal fun IrDeclaration.renderOrigin(): String =
|
||||||
if (origin != IrDeclarationOrigin.DEFINED) origin.toString() + " " else ""
|
if (origin != IrDeclarationOrigin.DEFINED) origin.toString() + " " else ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DumpIrTreeWithDescriptorsVisitor(out: Appendable): IrElementVisitor<Unit, String> {
|
class DumpIrTreeWithDescriptorsVisitor(out: Appendable) : IrElementVisitor<Unit, String> {
|
||||||
val printer = Printer(out, " ")
|
val printer = Printer(out, " ")
|
||||||
val elementRenderer = RenderIrElementWithDescriptorsVisitor()
|
val elementRenderer = RenderIrElementWithDescriptorsVisitor()
|
||||||
|
|
||||||
@@ -367,5 +364,5 @@ class DumpIrTreeWithDescriptorsVisitor(out: Appendable): IrElementVisitor<Unit,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun String.withLabel(label: String) =
|
private fun String.withLabel(label: String) =
|
||||||
if (label.isEmpty()) this else "$label: $this"
|
if (label.isEmpty()) this else "$label: $this"
|
||||||
}
|
}
|
||||||
+21
-25
@@ -839,8 +839,6 @@ open class IrModuleSerializer(
|
|||||||
return proto.build()
|
return proto.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun serializeIrTypeAlias(typeAlias: IrTypeAlias) = KotlinIr.IrTypeAlias.newBuilder().build()
|
|
||||||
|
|
||||||
private fun serializeIrValueParameter(parameter: IrValueParameter): KotlinIr.IrValueParameter {
|
private fun serializeIrValueParameter(parameter: IrValueParameter): KotlinIr.IrValueParameter {
|
||||||
val proto = KotlinIr.IrValueParameter.newBuilder()
|
val proto = KotlinIr.IrValueParameter.newBuilder()
|
||||||
.setSymbol(serializeIrSymbol(parameter.symbol))
|
.setSymbol(serializeIrSymbol(parameter.symbol))
|
||||||
@@ -1057,28 +1055,26 @@ open class IrModuleSerializer(
|
|||||||
val declarator = KotlinIr.IrDeclarator.newBuilder()
|
val declarator = KotlinIr.IrDeclarator.newBuilder()
|
||||||
|
|
||||||
when (declaration) {
|
when (declaration) {
|
||||||
is IrTypeAlias
|
is IrAnonymousInitializer ->
|
||||||
-> declarator.irTypeAlias = serializeIrTypeAlias(declaration)
|
declarator.irAnonymousInit = serializeIrAnonymousInit(declaration)
|
||||||
is IrAnonymousInitializer
|
is IrConstructor ->
|
||||||
-> declarator.irAnonymousInit = serializeIrAnonymousInit(declaration)
|
declarator.irConstructor = serializeIrConstructor(declaration)
|
||||||
is IrConstructor
|
is IrField ->
|
||||||
-> declarator.irConstructor = serializeIrConstructor(declaration)
|
declarator.irField = serializeIrField(declaration)
|
||||||
is IrField
|
is IrSimpleFunction ->
|
||||||
-> declarator.irField = serializeIrField(declaration)
|
declarator.irFunction = serializeIrFunction(declaration)
|
||||||
is IrSimpleFunction
|
is IrTypeParameter ->
|
||||||
-> declarator.irFunction = serializeIrFunction(declaration)
|
declarator.irTypeParameter = serializeIrTypeParameter(declaration)
|
||||||
is IrTypeParameter
|
is IrVariable ->
|
||||||
-> declarator.irTypeParameter = serializeIrTypeParameter(declaration)
|
declarator.irVariable = serializeIrVariable(declaration)
|
||||||
is IrVariable
|
is IrValueParameter ->
|
||||||
-> declarator.irVariable = serializeIrVariable(declaration)
|
declarator.irValueParameter = serializeIrValueParameter(declaration)
|
||||||
is IrValueParameter
|
is IrClass ->
|
||||||
-> declarator.irValueParameter = serializeIrValueParameter(declaration)
|
declarator.irClass = serializeIrClass(declaration)
|
||||||
is IrClass
|
is IrEnumEntry ->
|
||||||
-> declarator.irClass = serializeIrClass(declaration)
|
declarator.irEnumEntry = serializeIrEnumEntry(declaration)
|
||||||
is IrEnumEntry
|
is IrProperty ->
|
||||||
-> declarator.irEnumEntry = serializeIrEnumEntry(declaration)
|
declarator.irProperty = serializeIrProperty(declaration)
|
||||||
is IrProperty
|
|
||||||
-> declarator.irProperty = serializeIrProperty(declaration)
|
|
||||||
else
|
else
|
||||||
-> TODO("Declaration serialization not supported yet: $declaration")
|
-> TODO("Declaration serialization not supported yet: $declaration")
|
||||||
}
|
}
|
||||||
@@ -1114,7 +1110,7 @@ open class IrModuleSerializer(
|
|||||||
.setAnnotations(serializeAnnotations(file.annotations))
|
.setAnnotations(serializeAnnotations(file.annotations))
|
||||||
|
|
||||||
file.declarations.forEach {
|
file.declarations.forEach {
|
||||||
if (it is IrTypeAlias || (it.descriptor.isExpectMember && !it.descriptor.isSerializableExpectClass)) {
|
if (it.descriptor.isExpectMember && !it.descriptor.isSerializableExpectClass) {
|
||||||
writer.skipDeclaration()
|
writer.skipDeclaration()
|
||||||
return@forEach
|
return@forEach
|
||||||
}
|
}
|
||||||
|
|||||||
-7
@@ -7,18 +7,11 @@ package org.jetbrains.kotlin.ir.backend.js.transformers.irToJs
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.backend.js.utils.TODO
|
import org.jetbrains.kotlin.ir.backend.js.utils.TODO
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrTypeAlias
|
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
import org.jetbrains.kotlin.js.backend.ast.JsEmpty
|
|
||||||
import org.jetbrains.kotlin.js.backend.ast.JsNode
|
import org.jetbrains.kotlin.js.backend.ast.JsNode
|
||||||
|
|
||||||
interface BaseIrElementToJsNodeTransformer<out R : JsNode, in D> : IrElementVisitor<R, D> {
|
interface BaseIrElementToJsNodeTransformer<out R : JsNode, in D> : IrElementVisitor<R, D> {
|
||||||
override fun visitElement(element: IrElement, data: D): R {
|
override fun visitElement(element: IrElement, data: D): R {
|
||||||
TODO(element)
|
TODO(element)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitTypeAlias(declaration: IrTypeAlias, data: D): R {
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
|
||||||
return JsEmpty as R
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -200,9 +200,6 @@ open class ClassCodegen protected constructor(
|
|||||||
is IrAnonymousInitializer -> {
|
is IrAnonymousInitializer -> {
|
||||||
// skip
|
// skip
|
||||||
}
|
}
|
||||||
is IrTypeAlias -> {
|
|
||||||
// skip
|
|
||||||
}
|
|
||||||
is IrClass -> {
|
is IrClass -> {
|
||||||
// Nested classes are generated separately
|
// Nested classes are generated separately
|
||||||
}
|
}
|
||||||
|
|||||||
-4
@@ -563,10 +563,6 @@ class ExpressionCodegen(
|
|||||||
return none()
|
return none()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitTypeAlias(declaration: IrTypeAlias, data: BlockInfo): StackValue {
|
|
||||||
return none()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitVararg(expression: IrVararg, data: BlockInfo): StackValue {
|
override fun visitVararg(expression: IrVararg, data: BlockInfo): StackValue {
|
||||||
expression.markLineNumber(startOffset = true)
|
expression.markLineNumber(startOffset = true)
|
||||||
val outType = expression.type
|
val outType = expression.type
|
||||||
|
|||||||
@@ -385,7 +385,7 @@ class ClassGenerator(
|
|||||||
private fun generateMembersDeclaredInClassBody(irClass: IrClass, ktClassOrObject: KtPureClassOrObject) {
|
private fun generateMembersDeclaredInClassBody(irClass: IrClass, ktClassOrObject: KtPureClassOrObject) {
|
||||||
// generate real body declarations
|
// generate real body declarations
|
||||||
ktClassOrObject.body?.let { ktClassBody ->
|
ktClassOrObject.body?.let { ktClassBody ->
|
||||||
ktClassBody.declarations.mapTo(irClass.declarations) { ktDeclaration ->
|
ktClassBody.declarations.mapNotNullTo(irClass.declarations) { ktDeclaration ->
|
||||||
declarationGenerator.generateClassMemberDeclaration(ktDeclaration, irClass)
|
declarationGenerator.generateClassMemberDeclaration(ktDeclaration, irClass)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-14
@@ -16,11 +16,12 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.psi2ir.generators
|
package org.jetbrains.kotlin.psi2ir.generators
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||||
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||||
|
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||||
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrErrorDeclarationImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrErrorDeclarationImpl
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrPropertyImpl
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrTypeAliasImpl
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||||
import org.jetbrains.kotlin.ir.util.withScope
|
import org.jetbrains.kotlin.ir.util.withScope
|
||||||
@@ -28,8 +29,6 @@ import org.jetbrains.kotlin.psi.*
|
|||||||
import org.jetbrains.kotlin.psi.psiUtil.endOffset
|
import org.jetbrains.kotlin.psi.psiUtil.endOffset
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.startOffsetSkippingComments
|
import org.jetbrains.kotlin.psi.psiUtil.startOffsetSkippingComments
|
||||||
import org.jetbrains.kotlin.psi2ir.endOffsetOrUndefined
|
import org.jetbrains.kotlin.psi2ir.endOffsetOrUndefined
|
||||||
import org.jetbrains.kotlin.psi2ir.pureEndOffsetOrUndefined
|
|
||||||
import org.jetbrains.kotlin.psi2ir.pureStartOffsetOrUndefined
|
|
||||||
import org.jetbrains.kotlin.psi2ir.startOffsetOrUndefined
|
import org.jetbrains.kotlin.psi2ir.startOffsetOrUndefined
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
||||||
@@ -41,7 +40,7 @@ class DeclarationGenerator(override val context: GeneratorContext) : Generator {
|
|||||||
|
|
||||||
fun KotlinType.toIrType() = typeTranslator.translateType(this)
|
fun KotlinType.toIrType() = typeTranslator.translateType(this)
|
||||||
|
|
||||||
fun generateMemberDeclaration(ktDeclaration: KtDeclaration): IrDeclaration =
|
fun generateMemberDeclaration(ktDeclaration: KtDeclaration): IrDeclaration? =
|
||||||
when (ktDeclaration) {
|
when (ktDeclaration) {
|
||||||
is KtNamedFunction ->
|
is KtNamedFunction ->
|
||||||
FunctionGenerator(this).generateFunctionDeclaration(ktDeclaration)
|
FunctionGenerator(this).generateFunctionDeclaration(ktDeclaration)
|
||||||
@@ -50,7 +49,7 @@ class DeclarationGenerator(override val context: GeneratorContext) : Generator {
|
|||||||
is KtClassOrObject ->
|
is KtClassOrObject ->
|
||||||
generateClassOrObjectDeclaration(ktDeclaration)
|
generateClassOrObjectDeclaration(ktDeclaration)
|
||||||
is KtTypeAlias ->
|
is KtTypeAlias ->
|
||||||
generateTypeAliasDeclaration(ktDeclaration)
|
null
|
||||||
else ->
|
else ->
|
||||||
IrErrorDeclarationImpl(
|
IrErrorDeclarationImpl(
|
||||||
ktDeclaration.startOffsetSkippingComments, ktDeclaration.endOffset,
|
ktDeclaration.startOffsetSkippingComments, ktDeclaration.endOffset,
|
||||||
@@ -62,7 +61,7 @@ class DeclarationGenerator(override val context: GeneratorContext) : Generator {
|
|||||||
return generateClassOrObjectDeclaration(syntheticDeclaration)
|
return generateClassOrObjectDeclaration(syntheticDeclaration)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun generateClassMemberDeclaration(ktDeclaration: KtDeclaration, irClass: IrClass): IrDeclaration =
|
fun generateClassMemberDeclaration(ktDeclaration: KtDeclaration, irClass: IrClass): IrDeclaration? =
|
||||||
when (ktDeclaration) {
|
when (ktDeclaration) {
|
||||||
is KtAnonymousInitializer ->
|
is KtAnonymousInitializer ->
|
||||||
AnonymousInitializerGenerator(this).generateAnonymousInitializerDeclaration(ktDeclaration, irClass)
|
AnonymousInitializerGenerator(this).generateAnonymousInitializerDeclaration(ktDeclaration, irClass)
|
||||||
@@ -80,12 +79,6 @@ class DeclarationGenerator(override val context: GeneratorContext) : Generator {
|
|||||||
fun generateClassOrObjectDeclaration(ktClassOrObject: KtPureClassOrObject): IrClass =
|
fun generateClassOrObjectDeclaration(ktClassOrObject: KtPureClassOrObject): IrClass =
|
||||||
ClassGenerator(this).generateClass(ktClassOrObject)
|
ClassGenerator(this).generateClass(ktClassOrObject)
|
||||||
|
|
||||||
private fun generateTypeAliasDeclaration(ktDeclaration: KtTypeAlias): IrDeclaration =
|
|
||||||
IrTypeAliasImpl(
|
|
||||||
ktDeclaration.startOffsetSkippingComments, ktDeclaration.endOffset, IrDeclarationOrigin.DEFINED,
|
|
||||||
getOrFail(BindingContext.TYPE_ALIAS, ktDeclaration)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
fun generateGlobalTypeParametersDeclarations(
|
fun generateGlobalTypeParametersDeclarations(
|
||||||
irTypeParametersOwner: IrTypeParametersContainer,
|
irTypeParametersOwner: IrTypeParametersContainer,
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.ir.util.IrDeserializer
|
|||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.resolve.lazy.descriptors.findPackageFragmentForFile
|
import org.jetbrains.kotlin.resolve.lazy.descriptors.findPackageFragmentForFile
|
||||||
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
|
|
||||||
class ModuleGenerator(override val context: GeneratorContext) : Generator {
|
class ModuleGenerator(override val context: GeneratorContext) : Generator {
|
||||||
|
|
||||||
@@ -66,7 +67,7 @@ class ModuleGenerator(override val context: GeneratorContext) : Generator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (ktDeclaration in ktFile.declarations) {
|
for (ktDeclaration in ktFile.declarations) {
|
||||||
irFile.declarations.add(irDeclarationGenerator.generateMemberDeclaration(ktDeclaration))
|
irFile.declarations.addIfNotNull(irDeclarationGenerator.generateMemberDeclaration(ktDeclaration))
|
||||||
}
|
}
|
||||||
|
|
||||||
return irFile
|
return irFile
|
||||||
|
|||||||
+4
-4
@@ -24,7 +24,6 @@ import org.jetbrains.kotlin.ir.IrStatement
|
|||||||
import org.jetbrains.kotlin.ir.assertCast
|
import org.jetbrains.kotlin.ir.assertCast
|
||||||
import org.jetbrains.kotlin.ir.builders.Scope
|
import org.jetbrains.kotlin.ir.builders.Scope
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrTypeAliasImpl
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.*
|
import org.jetbrains.kotlin.ir.expressions.impl.*
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||||
@@ -472,9 +471,10 @@ class StatementGenerator(
|
|||||||
LocalClassGenerator(this).generateLocalClass(classOrObject)
|
LocalClassGenerator(this).generateLocalClass(classOrObject)
|
||||||
|
|
||||||
override fun visitTypeAlias(typeAlias: KtTypeAlias, data: Nothing?): IrStatement =
|
override fun visitTypeAlias(typeAlias: KtTypeAlias, data: Nothing?): IrStatement =
|
||||||
IrTypeAliasImpl(
|
IrBlockImpl(
|
||||||
typeAlias.startOffsetSkippingComments, typeAlias.endOffset, IrDeclarationOrigin.DEFINED,
|
// Compile local type aliases to empty blocks
|
||||||
getOrFail(BindingContext.TYPE_ALIAS, typeAlias)
|
typeAlias.startOffsetSkippingComments, typeAlias.endOffset,
|
||||||
|
context.irBuiltIns.unitType
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun visitClassLiteralExpression(expression: KtClassLiteralExpression, data: Nothing?): IrStatement =
|
override fun visitClassLiteralExpression(expression: KtClassLiteralExpression, data: Nothing?): IrStatement =
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.ir.declarations
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
|
|
||||||
|
|
||||||
interface IrTypeAlias : IrDeclaration {
|
|
||||||
override val descriptor: TypeAliasDescriptor
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.ir.declarations.impl
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrTypeAlias
|
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|
||||||
|
|
||||||
class IrTypeAliasImpl(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
override val descriptor: TypeAliasDescriptor
|
|
||||||
) :
|
|
||||||
IrDeclarationBase(startOffset, endOffset, origin),
|
|
||||||
IrTypeAlias {
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
|
||||||
return visitor.visitTypeAlias(this, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) {
|
|
||||||
// no children
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun <D> transformChildren(transformer: IrElementTransformer<D>, data: D) {
|
|
||||||
// no children
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -141,15 +141,6 @@ open class DeepCopyIrTreeWithSymbols(
|
|||||||
declaration.transformDeclarationsTo(this)
|
declaration.transformDeclarationsTo(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitTypeAlias(declaration: IrTypeAlias): IrTypeAlias =
|
|
||||||
IrTypeAliasImpl(
|
|
||||||
declaration.startOffset, declaration.endOffset,
|
|
||||||
mapDeclarationOrigin(declaration.origin),
|
|
||||||
declaration.descriptor
|
|
||||||
).apply {
|
|
||||||
transformAnnotations(declaration)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitSimpleFunction(declaration: IrSimpleFunction): IrSimpleFunction =
|
override fun visitSimpleFunction(declaration: IrSimpleFunction): IrSimpleFunction =
|
||||||
IrFunctionImpl(
|
IrFunctionImpl(
|
||||||
declaration.startOffset, declaration.endOffset,
|
declaration.startOffset, declaration.endOffset,
|
||||||
|
|||||||
@@ -226,10 +226,6 @@ class RenderIrElementVisitor(
|
|||||||
"inline".takeIf { isInline }
|
"inline".takeIf { isInline }
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun visitTypeAlias(declaration: IrTypeAlias, data: Nothing?): String =
|
|
||||||
"TYPEALIAS ${declaration.renderOriginIfNonTrivial()}${declaration.descriptor.ref()} " +
|
|
||||||
"type=${DECLARATION_RENDERER.renderType(declaration.descriptor.underlyingType)}"
|
|
||||||
|
|
||||||
override fun visitVariable(declaration: IrVariable, data: Nothing?): String =
|
override fun visitVariable(declaration: IrVariable, data: Nothing?): String =
|
||||||
"VAR ${declaration.renderOriginIfNonTrivial()}" +
|
"VAR ${declaration.renderOriginIfNonTrivial()}" +
|
||||||
"name:${declaration.name} type:${declaration.type.render()} flags:${declaration.renderVariableFlags()}"
|
"name:${declaration.name} type:${declaration.type.render()} flags:${declaration.renderVariableFlags()}"
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ interface IrElementTransformer<in D> : IrElementVisitor<IrElement, D> {
|
|||||||
declaration.also { it.transformChildren(this, data) }
|
declaration.also { it.transformChildren(this, data) }
|
||||||
|
|
||||||
override fun visitClass(declaration: IrClass, data: D) = visitDeclaration(declaration, data)
|
override fun visitClass(declaration: IrClass, data: D) = visitDeclaration(declaration, data)
|
||||||
override fun visitTypeAlias(declaration: IrTypeAlias, data: D) = visitDeclaration(declaration, data)
|
|
||||||
override fun visitFunction(declaration: IrFunction, data: D) = visitDeclaration(declaration, data)
|
override fun visitFunction(declaration: IrFunction, data: D) = visitDeclaration(declaration, data)
|
||||||
override fun visitSimpleFunction(declaration: IrSimpleFunction, data: D) = visitFunction(declaration, data)
|
override fun visitSimpleFunction(declaration: IrSimpleFunction, data: D) = visitFunction(declaration, data)
|
||||||
override fun visitConstructor(declaration: IrConstructor, data: D) = visitFunction(declaration, data)
|
override fun visitConstructor(declaration: IrConstructor, data: D) = visitFunction(declaration, data)
|
||||||
|
|||||||
@@ -49,9 +49,6 @@ abstract class IrElementTransformerVoid : IrElementTransformer<Nothing?> {
|
|||||||
open fun visitClass(declaration: IrClass) = visitDeclaration(declaration)
|
open fun visitClass(declaration: IrClass) = visitDeclaration(declaration)
|
||||||
final override fun visitClass(declaration: IrClass, data: Nothing?) = visitClass(declaration)
|
final override fun visitClass(declaration: IrClass, data: Nothing?) = visitClass(declaration)
|
||||||
|
|
||||||
open fun visitTypeAlias(declaration: IrTypeAlias) = visitDeclaration(declaration)
|
|
||||||
final override fun visitTypeAlias(declaration: IrTypeAlias, data: Nothing?) = visitTypeAlias(declaration)
|
|
||||||
|
|
||||||
open fun visitFunction(declaration: IrFunction) = visitDeclaration(declaration)
|
open fun visitFunction(declaration: IrFunction) = visitDeclaration(declaration)
|
||||||
final override fun visitFunction(declaration: IrFunction, data: Nothing?) = visitFunction(declaration)
|
final override fun visitFunction(declaration: IrFunction, data: Nothing?) = visitFunction(declaration)
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ interface IrElementVisitor<out R, in D> {
|
|||||||
|
|
||||||
fun visitDeclaration(declaration: IrDeclaration, data: D) = visitElement(declaration, data)
|
fun visitDeclaration(declaration: IrDeclaration, data: D) = visitElement(declaration, data)
|
||||||
fun visitClass(declaration: IrClass, data: D) = visitDeclaration(declaration, data)
|
fun visitClass(declaration: IrClass, data: D) = visitDeclaration(declaration, data)
|
||||||
fun visitTypeAlias(declaration: IrTypeAlias, data: D) = visitDeclaration(declaration, data)
|
|
||||||
fun visitFunction(declaration: IrFunction, data: D) = visitDeclaration(declaration, data)
|
fun visitFunction(declaration: IrFunction, data: D) = visitDeclaration(declaration, data)
|
||||||
fun visitSimpleFunction(declaration: IrSimpleFunction, data: D) = visitFunction(declaration, data)
|
fun visitSimpleFunction(declaration: IrSimpleFunction, data: D) = visitFunction(declaration, data)
|
||||||
fun visitConstructor(declaration: IrConstructor, data: D) = visitFunction(declaration, data)
|
fun visitConstructor(declaration: IrConstructor, data: D) = visitFunction(declaration, data)
|
||||||
|
|||||||
@@ -43,9 +43,6 @@ interface IrElementVisitorVoid : IrElementVisitor<Unit, Nothing?> {
|
|||||||
fun visitClass(declaration: IrClass) = visitDeclaration(declaration)
|
fun visitClass(declaration: IrClass) = visitDeclaration(declaration)
|
||||||
override fun visitClass(declaration: IrClass, data: Nothing?) = visitClass(declaration)
|
override fun visitClass(declaration: IrClass, data: Nothing?) = visitClass(declaration)
|
||||||
|
|
||||||
fun visitTypeAlias(declaration: IrTypeAlias) = visitDeclaration(declaration)
|
|
||||||
override fun visitTypeAlias(declaration: IrTypeAlias, data: Nothing?) = visitTypeAlias(declaration)
|
|
||||||
|
|
||||||
fun visitFunction(declaration: IrFunction) = visitDeclaration(declaration)
|
fun visitFunction(declaration: IrFunction) = visitDeclaration(declaration)
|
||||||
override fun visitFunction(declaration: IrFunction, data: Nothing?) = visitFunction(declaration)
|
override fun visitFunction(declaration: IrFunction, data: Nothing?) = visitFunction(declaration)
|
||||||
|
|
||||||
|
|||||||
-2
@@ -31,8 +31,6 @@ FILE fqName:<root> fileName:/delegatingConstructorCallToTypeAliasConstructor.kt
|
|||||||
overridden:
|
overridden:
|
||||||
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
|
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
|
||||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
|
||||||
TYPEALIAS typealias CT = Cell<T> type=Cell<T>
|
|
||||||
TYPEALIAS typealias CStr = Cell<String> type=Cell<kotlin.String>
|
|
||||||
CLASS CLASS name:C1 modality:FINAL visibility:public flags:[] superTypes:[<root>.Cell<kotlin.String>]
|
CLASS CLASS name:C1 modality:FINAL visibility:public flags:[] superTypes:[<root>.Cell<kotlin.String>]
|
||||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C1 flags:[]
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C1 flags:[]
|
||||||
CONSTRUCTOR visibility:public <> () returnType:<root>.C1 flags:[primary]
|
CONSTRUCTOR visibility:public <> () returnType:<root>.C1 flags:[primary]
|
||||||
|
|||||||
-4
@@ -31,7 +31,3 @@ FILE fqName:<root> fileName:/typeAliasesWithAnnotations.kt
|
|||||||
overridden:
|
overridden:
|
||||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
|
||||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
|
||||||
TYPEALIAS typealias TestTypeAlias = String type=kotlin.String
|
|
||||||
annotations:
|
|
||||||
CALL 'CONSTRUCTOR visibility:public <> (x:kotlin.String) returnType:<root>.TestAnn flags:[primary]' type=<root>.TestAnn origin=null
|
|
||||||
x: CONST String type=kotlin.String value="TestTypeAlias"
|
|
||||||
|
|||||||
+1
-11
@@ -1,23 +1,13 @@
|
|||||||
FILE fqName:<root> fileName:/typeAlias.kt
|
FILE fqName:<root> fileName:/typeAlias.kt
|
||||||
TYPEALIAS typealias Test1 = String type=kotlin.String
|
|
||||||
FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
|
FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
TYPEALIAS typealias TestLocal = String type=kotlin.String
|
BLOCK type=kotlin.Unit origin=null
|
||||||
annotations:
|
|
||||||
CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> (names:kotlin.Array<out kotlin.String>) returnType:kotlin.Suppress flags:[primary]' type=kotlin.Suppress origin=null
|
|
||||||
names: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
|
|
||||||
CONST String type=kotlin.String value="TOPLEVEL_TYPEALIASES_ONLY"
|
|
||||||
CLASS CLASS name:C modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
|
CLASS CLASS name:C modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
|
||||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C flags:[]
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C flags:[]
|
||||||
CONSTRUCTOR visibility:public <> () returnType:<root>.C flags:[primary]
|
CONSTRUCTOR visibility:public <> () returnType:<root>.C flags:[primary]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
|
DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
|
||||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]'
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]'
|
||||||
TYPEALIAS typealias TestNested = String type=kotlin.String
|
|
||||||
annotations:
|
|
||||||
CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> (names:kotlin.Array<out kotlin.String>) returnType:kotlin.Suppress flags:[primary]' type=kotlin.Suppress origin=null
|
|
||||||
names: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
|
|
||||||
CONST String type=kotlin.String value="TOPLEVEL_TYPEALIASES_ONLY"
|
|
||||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
|
||||||
overridden:
|
overridden:
|
||||||
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
|
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
|
||||||
|
|||||||
@@ -80,7 +80,6 @@ FILE fqName:<root> fileName:/kt16905.kt
|
|||||||
overridden:
|
overridden:
|
||||||
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
|
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
|
||||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
|
||||||
TYPEALIAS typealias OI = Outer.Inner type=Outer.Inner
|
|
||||||
FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Outer.Inner flags:[]
|
FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Outer.Inner flags:[]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
RETURN type=kotlin.Nothing from='FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Outer.Inner flags:[]'
|
RETURN type=kotlin.Nothing from='FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Outer.Inner flags:[]'
|
||||||
|
|||||||
-1
@@ -31,7 +31,6 @@ FILE fqName:<root> fileName:/specializedTypeAliasConstructorCall.kt
|
|||||||
overridden:
|
overridden:
|
||||||
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
|
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
|
||||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
|
||||||
TYPEALIAS typealias IntAlias = Cell<Int> type=Cell<kotlin.Int>
|
|
||||||
FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Cell<kotlin.Int> flags:[]
|
FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Cell<kotlin.Int> flags:[]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
RETURN type=kotlin.Nothing from='FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Cell<kotlin.Int> flags:[]'
|
RETURN type=kotlin.Nothing from='FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Cell<kotlin.Int> flags:[]'
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ FILE fqName:<root> fileName:/integerCoercionToT.kt
|
|||||||
overridden:
|
overridden:
|
||||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
|
||||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
|
||||||
TYPEALIAS typealias CInt32Var = CInt32VarX<Int> type=CInt32VarX<kotlin.Int>
|
|
||||||
PROPERTY name:value visibility:public modality:FINAL flags:[var]
|
PROPERTY name:value visibility:public modality:FINAL flags:[var]
|
||||||
FUN name:<get-value> visibility:public modality:FINAL <T_INT> ($receiver:<root>.CInt32VarX<<root>.<get-value>.T_INT>) returnType:<root>.<get-value>.T_INT flags:[]
|
FUN name:<get-value> visibility:public modality:FINAL <T_INT> ($receiver:<root>.CInt32VarX<<root>.<get-value>.T_INT>) returnType:<root>.<get-value>.T_INT flags:[]
|
||||||
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL flags:[var]
|
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL flags:[var]
|
||||||
|
|||||||
@@ -31,8 +31,6 @@ FILE fqName:<root> fileName:/typeAliasCtorForGenericClass.kt
|
|||||||
overridden:
|
overridden:
|
||||||
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
|
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
|
||||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
|
||||||
TYPEALIAS typealias B = A<X> type=A<X>
|
|
||||||
TYPEALIAS typealias B2 = A<A<T>> type=A<A<T>>
|
|
||||||
FUN name:bar visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
|
FUN name:bar visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
VAR name:b type:<root>.A<kotlin.Int> flags:[val]
|
VAR name:b type:<root>.A<kotlin.Int> flags:[val]
|
||||||
|
|||||||
Reference in New Issue
Block a user