dotlin-org/dotlin

IrGetClassImpl is not supported

eggnstone opened this issue · 1 comments

Could you clarify what this is about and how to workaround it?
Thanks! :)

Exception in thread "main" kotlin.NotImplementedError: An operation is not implemented: IrGetClassImpl is not supported
        at org.dotlin.compiler.backend.steps.ir2ast.ir.IrUtilsKt.todo(IrUtils.kt:261)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitElement(IrDartAstTransformer.kt:33)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitElement(IrDartAstTransformer.kt:30)
        at org.jetbrains.kotlin.ir.visitors.IrElementVisitor$DefaultImpls.visitExpression(IrElementVisitor.kt:156)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitExpression(IrDartAstTransformer.kt:575)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitExpression(IrDartAstTransformer.kt:572)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitExpression(IrDartAstTransformer.kt:30)
        at org.jetbrains.kotlin.ir.visitors.IrElementVisitor$DefaultImpls.visitGetClass(IrElementVisitor.kt:270)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitGetClass(IrDartAstTransformer.kt:322)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitGetClass(IrDartAstTransformer.kt:319)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitGetClass(IrDartAstTransformer.kt:30)
        at org.jetbrains.kotlin.ir.expressions.IrGetClass.accept(IrGetClass.kt:22)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionKt.accept(IrToDartExpression.kt:647)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionKt$acceptAsReceiverOf$1.invoke(IrToDartExpression.kt:680)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionKt$acceptAsReceiverOf$1.invoke(IrToDartExpression.kt:660)
        at org.dotlin.compiler.backend.util.UtilsKt.runWith(Utils.kt:45)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionKt.acceptAsReceiverOf(IrToDartExpression.kt:660)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionKt.access$acceptAsReceiverOf(IrToDartExpression.kt:1)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionTransformer$visitFunctionAccess$optionalReceiver$2.invoke(IrToDartExpression.kt:71)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionTransformer$visitFunctionAccess$optionalReceiver$2.invoke(IrToDartExpression.kt:68)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionTransformer.visitFunctionAccess$lambda$1(IrToDartExpression.kt:68)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionTransformer.access$visitFunctionAccess$lambda$1(IrToDartExpression.kt:53)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionTransformer$visitFunctionAccess$optionalInfixReceiver$2.invoke(IrToDartExpression.kt:77)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionTransformer$visitFunctionAccess$optionalInfixReceiver$2.invoke(IrToDartExpression.kt:77)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionTransformer.visitFunctionAccess$lambda$4(IrToDartExpression.kt:77)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionTransformer.visitFunctionAccess(IrToDartExpression.kt:204)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionTransformer.visitFunctionAccess(IrToDartExpression.kt:53)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitFunctionAccess(IrDartAstTransformer.kt:294)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitFunctionAccess(IrDartAstTransformer.kt:30)
        at org.jetbrains.kotlin.ir.visitors.IrElementVisitor$DefaultImpls.visitCall(IrElementVisitor.kt:206)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitCall(IrDartAstTransformer.kt:80)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitCall(IrDartAstTransformer.kt:77)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitCall(IrDartAstTransformer.kt:30)
        at org.jetbrains.kotlin.ir.expressions.IrCall.accept(IrCall.kt:25)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionKt.accept(IrToDartExpression.kt:647)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionTransformer.visitFunctionAccess$accept(IrToDartExpression.kt:158)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionTransformer.visitFunctionAccess(IrToDartExpression.kt:164)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionTransformer.visitFunctionAccess(IrToDartExpression.kt:53)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitFunctionAccess(IrDartAstTransformer.kt:294)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitFunctionAccess(IrDartAstTransformer.kt:30)
        at org.jetbrains.kotlin.ir.visitors.IrElementVisitor$DefaultImpls.visitCall(IrElementVisitor.kt:206)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitCall(IrDartAstTransformer.kt:80)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitCall(IrDartAstTransformer.kt:77)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitCall(IrDartAstTransformer.kt:30)
        at org.jetbrains.kotlin.ir.expressions.IrCall.accept(IrCall.kt:25)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartExpressionKt.accept(IrToDartExpression.kt:647)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartStatementTransformer.visitWhen(IrToDartStatement.kt:89)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartStatementTransformer.visitWhen(IrToDartStatement.kt:55)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitWhen(IrDartAstTransformer.kt:560)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitWhen(IrDartAstTransformer.kt:30)
        at org.jetbrains.kotlin.ir.expressions.IrWhen.accept(IrWhen.kt:25)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartStatementKt.accept(IrToDartStatement.kt:345)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartStatementKt.accept(IrToDartStatement.kt:346)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartFunctionBodyTransformer.visitBlockBody(IrToDartFunctionBody.kt:45)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartFunctionBodyTransformer.visitBlockBody(IrToDartFunctionBody.kt:33)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitBlockBody(IrDartAstTransformer.kt:53)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitBlockBody(IrDartAstTransformer.kt:30)
        at org.jetbrains.kotlin.ir.expressions.IrBlockBody.accept(IrBlockBody.kt:24)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartFunctionBodyKt.accept(IrToDartFunctionBody.kt:62)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartFunctionBodyKt.accept$default(IrToDartFunctionBody.kt:59)
        at org.dotlin.compiler.backend.steps.ir2ast.DartAstTransformContext.transformBy(DartAstTransformContext.kt:70)
        at org.dotlin.compiler.backend.steps.ir2ast.DartAstTransformContext.transformBy(DartAstTransformContext.kt:93)
        at org.dotlin.compiler.backend.steps.ir2ast.DartAstTransformContext.transformBy$default(DartAstTransformContext.kt:89)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartClassMemberTransformer.visitSimpleFunction(IrToDartClassMember.kt:49)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartClassMemberTransformer.visitSimpleFunction(IrToDartClassMember.kt:46)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitSimpleFunction(IrDartAstTransformer.kt:453)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitSimpleFunction(IrDartAstTransformer.kt:30)
        at org.jetbrains.kotlin.ir.declarations.IrSimpleFunction.accept(IrSimpleFunction.kt:36)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartClassMemberKt.acceptAsClassMember(IrToDartClassMember.kt:192)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartDeclarationTransformer$visitClass$members$3.invoke(IrToDartDeclaration.kt:147)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartDeclarationTransformer$visitClass$members$3.invoke(IrToDartDeclaration.kt:147)
        at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210)
        at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:787)
        at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:817)
        at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:808)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartDeclarationTransformer.visitClass(IrToDartDeclaration.kt:148)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartDeclarationTransformer.visitClass(IrToDartDeclaration.kt:42)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitClass(IrDartAstTransformer.kt:97)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitClass(IrDartAstTransformer.kt:30)
        at org.jetbrains.kotlin.ir.declarations.IrClass.accept(IrClass.kt:64)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartDeclarationKt.accept(IrToDartDeclaration.kt:224)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartCompilationUnitTransformer.visitFile(IrToDartCompilationUnit.kt:36)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrToDartCompilationUnitTransformer.visitFile(IrToDartCompilationUnit.kt:32)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitFile(IrDartAstTransformer.kt:282)
        at org.dotlin.compiler.backend.steps.ir2ast.transformer.IrDartAstTransformer.visitFile(IrDartAstTransformer.kt:30)
        at org.jetbrains.kotlin.ir.declarations.IrFile.accept(IrFile.kt:30)
        at org.dotlin.compiler.backend.steps.ir2ast.IrToDartAstKt.irToDartAst(IrToDartAst.kt:66)
        at org.dotlin.compiler.KotlinToDartCompiler.generateDartCode(KotlinToDartCompiler.kt:173)
        at org.dotlin.compiler.KotlinToDartCompiler.compile(KotlinToDartCompiler.kt:103)
        at org.dotlin.compiler.KotlinToDartCompiler.compile$default(KotlinToDartCompiler.kt:83)
        at org.dotlin.compiler.KotlinToDartCompiler.compile(KotlinToDartCompiler.kt:78)
        at org.dotlin.compiler.cli.command.Compile.run(Compile.kt:37)
        at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:198)
        at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:18)
        at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:400)
        at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:397)
        at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:415)
        at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:440)
        at org.dotlin.compiler.Dotlin.main(Main.kt:26)

I assume you put an expression like MyClass::class somewhere in your Kotlin code? Because that's not supported yet 👍 (Will be tracked in #25 under "Reflection")