Skip to content

Instantly share code, notes, and snippets.

@elect86
Created November 20, 2017 09:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elect86/f618124e211a937a3bb1969b8eb6e55e to your computer and use it in GitHub Desktop.
Save elect86/f618124e211a937a3bb1969b8eb6e55e to your computer and use it in GitHub Desktop.
Error:Kotlin: [Internal Error] org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Couldn't inline method call 'treeNode' into
local final fun <anonymous>(): kotlin.Unit defined in imgui.imgui.demo.layout_.invoke
{
treeNode("Child regions") {
var gotoLine = button("Goto")
text("Without border")
sameLine()
withItemWidth(100) {
gotoLine = gotoLine or inputInt("##Line", ::line, 0, 0, Itf.EnterReturnsTrue.i)
}
withChild("Sub1", Vec2(windowContentRegionWidth * 0.5f, 300), false, Wf.HorizontalScrollbar.i) {
for (i in 0 until 100) {
text("%04d: scrollable region", i)
if (gotoLine && line == i) setScrollHere()
}
if (gotoLine && line >= 100) setScrollHere()
}
sameLine()
withStyleVar(StyleVar.ChildWindowRounding, 5f) {
withChild("Sub2", Vec2(0, 300), true) {
text("With border")
columns(2)
for (i in 0..99) {
if (i == 50) nextColumn()
val text = "%08x".format(style.locale, i * 5731)
button(text, Vec2(-1f, 0f))
}
}
}
}
treeNode("Widgets Width") {
text("PushItemWidth(100)")
sameLine(); showHelpMarker("Fixed width.")
withItemWidth(100) { dragFloat("float##1", ::f) }
text("PushItemWidth(GetWindowWidth() * 0.5f)")
sameLine(); showHelpMarker("Half of window width.")
withItemWidth(windowWidth * 0.5f) { dragFloat("float##2", ::f) }
text("PushItemWidth(GetContentRegionAvailWidth() * 0.5f)")
sameLine(); showHelpMarker("Half of available width.\n(~ right-cursor_pos)\n(works within a column set)")
withItemWidth(contentRegionAvailWidth * 0.5f) { dragFloat("float##3", ::f) }
text("PushItemWidth(-100)")
sameLine(); showHelpMarker("Align to right edge minus 100")
withItemWidth(-100) { dragFloat("float##4", ::f) }
text("PushItemWidth(-1)")
sameLine(); showHelpMarker("Align to right edge")
withItemWidth(-1) { dragFloat("float##5", ::f) }
}
treeNode("Basic Horizontal Layout") {
textWrapped("(Use SameLine() to keep adding items to the right of the preceding item)")
// Text
text("Two items: Hello"); sameLine()
textColored(Vec4(1, 1, 0, 1), "Sailor")
// Adjust spacing
text("More spacing: Hello"); sameLine(0, 20)
textColored(Vec4(1, 1, 0, 1), "Sailor")
// Button
alignTextToFramePadding()
text("Normal buttons"); sameLine()
button("Banana"); sameLine()
button("Apple"); sameLine()
button("Corniflower")
// Button
text("Small buttons"); sameLine()
smallButton("Like this one"); sameLine()
text("can fit within a text block.")
// Aligned to arbitrary position. Easy/cheap column.
text("Aligned")
sameLine(150); text("x=150")
sameLine(300); text("x=300")
text("Aligned")
sameLine(150); smallButton("x=150")
sameLine(300); smallButton("x=300")
// Checkbox
checkbox("My", ::c1); sameLine()
checkbox("Tailor", ::c2); sameLine()
checkbox("Is", ::c3); sameLine()
checkbox("Rich", ::c4)
// Various
val items = arrayOf("AAAA", "BBBB", "CCCC", "DDDD")
withItemWidth(80f) {
combo("Combo", ::item, items); sameLine()
sliderFloat("X", ::f0, 0f, 5f); sameLine()
sliderFloat("Y", ::f1, 0f, 5f); sameLine()
sliderFloat("Z", ::f2, 0f, 5f)
}
withItemWidth(80f) {
text("Lists:")
for (i in 0..3) {
if (i > 0) sameLine()
withId(i) {
withInt(selection, i) {
listBox("", it, items)
}
}
//if (IsItemHovered()) SetTooltip("ListBox %d hovered", i);
}
}
// Dummy
val sz = Vec2(30)
button("A", sz); sameLine()
dummy(sz); sameLine()
button("B", sz)
}
treeNode("Groups") {
textWrapped("(Using BeginGroup()/EndGroup() to layout items. BeginGroup() basically locks the horizontal position. EndGroup() bundles the whole group so that you can use functions such as IsItemHovered() on it.)")
withGroup {
withGroup {
button("AAA")
sameLine()
button("BBB")
sameLine()
withGroup {
button("CCC")
button("DDD")
}
sameLine()
button("EEE")
}
if (isItemHovered()) setTooltip("First group hovered")
// Capture the group size and create widgets using the same size
val size = Vec2(itemRectSize)
val values = floatArrayOf(0.5f, 0.2f, 0.8f, 0.6f, 0.25f)
plotHistogram("##values", values, 0, "", 0f, 1f, size)
button("ACTION", Vec2((size.x - style.itemSpacing.x) * 0.5f, size.y))
sameLine()
button("REACTION", Vec2((size.x - style.itemSpacing.x) * 0.5f, size.y))
}
sameLine()
button("LEVERAGE\nBUZZWORD", size)
sameLine()
listBoxHeader("List", size)
selectable("Selected", true)
selectable("Not Selected", false)
listBoxFooter()
}
treeNode("Text Baseline Alignment") {
textWrapped("(This is testing the vertical alignment that occurs on text to keep it at the same baseline as widgets. Lines only composed of text or \"small\" widgets fit in less vertical spaces than lines with normal widgets)")
text("One\nTwo\nThree"); sameLine()
text("Hello\nWorld"); sameLine()
text("Banana")
text("Banana"); sameLine()
text("Hello\nWorld"); sameLine()
text("One\nTwo\nThree")
button("HOP##1"); sameLine()
text("Banana"); sameLine()
text("Hello\nWorld"); sameLine()
text("Banana")
button("HOP##2"); sameLine()
text("Hello\nWorld"); sameLine()
text("Banana")
button("TEST##1"); sameLine()
text("TEST"); sameLine()
smallButton("TEST##2")
alignTextToFramePadding() // If your line starts with text, call this to align it to upcoming widgets.
text("Text aligned to Widget"); sameLine()
button("Widget##1"); sameLine()
text("Widget"); sameLine()
smallButton("Widget##2"); sameLine()
button("Widget##3")
// Tree
val spacing = style.itemInnerSpacing.x
button("Button##1")
sameLine(0f, spacing)
treeNode("Node##1") { for (i in 0..5) bulletText("Item $i..") } // Dummy tree data
/* Vertically align text node a bit lower so it'll be vertically centered with upcoming widget.
Otherwise you can use SmallButton (smaller fit). */
alignTextToFramePadding()
// Common mistake to avoid: if we want to SameLine after TreeNode we need to do it before we add child content.
val nodeOpen = treeNode("Node##2")
sameLine(0f, spacing); button("Button##2")
if (nodeOpen) { // Dummy tree data
for (i in 0..5) bulletText("Item $i..")
treePop()
}
// Bullet
button("Button##3")
sameLine(0f, spacing)
bulletText("Bullet text")
alignTextToFramePadding()
bulletText("Node")
sameLine(0f, spacing); button("Button##4")
}
treeNode("Scrolling") {
textWrapped("(Use SetScrollHere() or SetScrollFromPosY() to scroll to a given position.)")
checkbox("Track", ::track)
pushItemWidth(100)
sameLine(130); track = track or dragInt("##line", ::trackLine, 0.25f, 0, 99, "Line = %.0f")
var scrollTo = button("Scroll To Pos")
sameLine(130); scrollTo = scrollTo or dragInt("##pos_y", ::scrollToPx, 1f, 0, 9999, "Y = %.0f px")
popItemWidth()
if (scrollTo) track = false
for (i in 0..4) {
if (i > 0) sameLine()
withGroup {
text("%s", if (i == 0) "Top" else if (i == 1) "25%" else if (i == 2) "Center" else if (i == 3) "75%" else "Bottom")
beginChild(getId(i), Vec2(windowWidth * 0.17f, 200f), true)
if (scrollTo)
setScrollFromPosY(cursorStartPos.y + scrollToPx, i * 0.25f)
for (line in 0..99)
if (track && line == trackLine) {
textColored(Vec4.fromColor(255, 255, 0), "Line %d", line)
setScrollHere(i * 0.25f) // 0.0f:top, 0.5f:center, 1.0f:bottom
} else
text("Line $line")
val scrollY = scrollY
val scrollMaxY = scrollMaxY
endChild()
text("%.0f/%.0f", scrollY, scrollMaxY)
}
}
}
treeNode("Horizontal Scrolling") {
bullet(); textWrapped("Horizontal scrolling for a window has to be enabled explicitly via the ImGuiWindowFlags_HorizontalScrollbar flag.")
bullet(); textWrapped("You may want to explicitly specify content width by calling SetNextWindowContentWidth() before Begin().")
sliderInt("Lines", ::lines, 1, 15)
pushStyleVar(StyleVar.FrameRounding, 3f)
pushStyleVar(StyleVar.FramePadding, Vec2(2f, 1f))
beginChild("scrolling", Vec2(0, itemsLineHeightWithSpacing * 7 + 30), true, Wf.HorizontalScrollbar.i)
for (line in 0 until lines) {
/* Display random stuff (for the sake of this trivial demo we are using basic button+sameLine.
If you want to create your own time line for a real application you may be better off
manipulating the cursor position yourself, aka using SetCursorPos/SetCursorScreenPos to position
the widgets yourself. You may also want to use the lower-level ImDrawList API) */
val numButtons = 10 + (line * if (line has 1) 9 else 3)
for (n in 0 until numButtons) {
if (n > 0) sameLine()
pushId(n + line * 1000)
val label = if (n % 15 == 0) "FizzBuzz" else if (n % 3 == 0) "Fizz" else if (n % 5 == 0) "Buzz" else "$n"
val hue = n * 0.05f
pushStyleColor(Col.Button, Color.hsv(hue, 0.6f, 0.6f))
pushStyleColor(Col.ButtonHovered, Color.hsv(hue, 0.7f, 0.7f))
pushStyleColor(Col.ButtonActive, Color.hsv(hue, 0.8f, 0.8f))
button(label, Vec2(40f + sin((line + n).f) * 20f, 0f))
popStyleColor(3)
popId()
}
}
val _scrollX = scrollX
val scrollMaxX = scrollMaxX
endChild()
popStyleVar(2)
var scrollXDelta = 0f
smallButton("<<"); if (isItemActive) scrollXDelta = -IO.deltaTime * 1000f; sameLine()
text("Scroll from code"); sameLine()
smallButton(">>"); if (isItemActive) scrollXDelta = IO.deltaTime * 1000f; sameLine()
text("%.0f/%.0f", _scrollX, scrollMaxX)
if (scrollXDelta != 0f) {
/* Demonstrate a trick: you can use begin() to set yourself in the context of another window (here
we are already out of your child window) */
beginChild("scrolling")
scrollX += scrollXDelta // TODO bug
end()
}
}
treeNode("Clipping") {
textWrapped("On a per-widget basis we are occasionally clipping text CPU-side if it won't fit in its frame. Otherwise we are doing coarser clipping + passing a scissor rectangle to the renderer. The system is designed to try minimizing both execution and CPU/GPU rendering cost.")
dragVec2("size", size, 0.5f, 0f, 200f, "%.0f")
textWrapped("(Click and drag)")
val pos = Vec2(cursorScreenPos)
val clipRect = Vec4(pos.x, pos.y, pos.x + size.x, pos.y + size.y)
invisibleButton("##dummy", size)
if (isItemActive && isMouseDragging()) offset += IO.mouseDelta
windowDrawList.addRectFilled(pos, Vec2(pos.x + size.x, pos.y + size.y), COL32(90, 90, 120, 255));
windowDrawList.addText(font, fontSize * 2f, Vec2(pos.x + offset.x, pos.y + offset.y),
COL32(255, 255, 255, 255), "Line 1 hello\nLine 2 clip me!".toCharArray(), 0, 0f, clipRect)
}
}
Cause: treeNode (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V:
@Lorg/jetbrains/annotations/NotNull;() // invisible, parameter 0
@Lorg/jetbrains/annotations/NotNull;() // invisible, parameter 1
L0
ALOAD 1
LDC "label"
INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull (Ljava/lang/Object;Ljava/lang/String;)V
ALOAD 2
LDC "block"
INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull (Ljava/lang/Object;Ljava/lang/String;)V
L1
LINENUMBER 100 L1
GETSTATIC imgui/ImGui.INSTANCE : Limgui/ImGui;
GETSTATIC imgui/ImGui.INSTANCE : Limgui/ImGui;
POP
ALOAD 1
INVOKEVIRTUAL imgui/ImGui.treeNode (Ljava/lang/String;)Z
IFEQ L2
L3
LINENUMBER 101 L3
ALOAD 2
INVOKEINTERFACE kotlin/jvm/functions/Function0.invoke ()Ljava/lang/Object;
POP
L4
LINENUMBER 102 L4
GETSTATIC imgui/ImGui.INSTANCE : Limgui/ImGui;
GETSTATIC imgui/ImGui.INSTANCE : Limgui/ImGui;
POP
INVOKEVIRTUAL imgui/ImGui.treePop ()V
L2
LINENUMBER 104 L2
RETURN
L5
LOCALVARIABLE this Limgui/functionalProgramming; L0 L5 0
LOCALVARIABLE label Ljava/lang/String; L0 L5 1
LOCALVARIABLE block Lkotlin/jvm/functions/Function0; L0 L5 2
LOCALVARIABLE $i$f$treeNode I L0 L5 3
MAXSTACK = 2
MAXLOCALS = 4
Cause: org.jetbrains.org.objectweb.asm.tree.analysis.AnalyzerException: Error at instruction 444: Cannot pop operand off an empty stack.
File being compiled and position: (376,13) in C:/Users/gBarbieri/IdeaProjects/imgui/src/main/kotlin/imgui/imgui/demo/layout_.kt
PsiElement: treeNode("Horizontal Scrolling") {
bullet(); textWrapped("Horizontal scrolling for a window has to be enabled explicitly via the ImGuiWindowFlags_HorizontalScrollbar flag.")
bullet(); textWrapped("You may want to explicitly specify content width by calling SetNextWindowContentWidth() before Begin().")
sliderInt("Lines", ::lines, 1, 15)
pushStyleVar(StyleVar.FrameRounding, 3f)
pushStyleVar(StyleVar.FramePadding, Vec2(2f, 1f))
beginChild("scrolling", Vec2(0, itemsLineHeightWithSpacing * 7 + 30), true, Wf.HorizontalScrollbar.i)
for (line in 0 until lines) {
/* Display random stuff (for the sake of this trivial demo we are using basic button+sameLine.
If you want to create your own time line for a real application you may be better off
manipulating the cursor position yourself, aka using SetCursorPos/SetCursorScreenPos to position
the widgets yourself. You may also want to use the lower-level ImDrawList API) */
val numButtons = 10 + (line * if (line has 1) 9 else 3)
for (n in 0 until numButtons) {
if (n > 0) sameLine()
pushId(n + line * 1000)
val label = if (n % 15 == 0) "FizzBuzz" else if (n % 3 == 0) "Fizz" else if (n % 5 == 0) "Buzz" else "$n"
val hue = n * 0.05f
pushStyleColor(Col.Button, Color.hsv(hue, 0.6f, 0.6f))
pushStyleColor(Col.ButtonHovered, Color.hsv(hue, 0.7f, 0.7f))
pushStyleColor(Col.ButtonActive, Color.hsv(hue, 0.8f, 0.8f))
button(label, Vec2(40f + sin((line + n).f) * 20f, 0f))
popStyleColor(3)
popId()
}
}
val _scrollX = scrollX
val scrollMaxX = scrollMaxX
endChild()
popStyleVar(2)
var scrollXDelta = 0f
smallButton("<<"); if (isItemActive) scrollXDelta = -IO.deltaTime * 1000f; sameLine()
text("Scroll from code"); sameLine()
smallButton(">>"); if (isItemActive) scrollXDelta = IO.deltaTime * 1000f; sameLine()
text("%.0f/%.0f", _scrollX, scrollMaxX)
if (scrollXDelta != 0f) {
/* Demonstrate a trick: you can use begin() to set yourself in the context of another window (here
we are already out of your child window) */
beginChild("scrolling")
scrollX += scrollXDelta // TODO bug
end()
}
}
The root cause was thrown at: MethodInliner.kt:753
at org.jetbrains.kotlin.codegen.inline.InlineCodegen.throwCompilationException(InlineCodegen.kt:132)
at org.jetbrains.kotlin.codegen.inline.InlineCodegen.performInline(InlineCodegen.kt:180)
at org.jetbrains.kotlin.codegen.inline.PsiInlineCodegen.genCallInner(InlineCodegen.kt:643)
at org.jetbrains.kotlin.codegen.CallGenerator$DefaultImpls.genCall(CallGenerator.kt:106)
at org.jetbrains.kotlin.codegen.inline.PsiInlineCodegen.genCall(InlineCodegen.kt:629)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.invokeMethodWithArguments(ExpressionCodegen.java:2301)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.invokeMethodWithArguments(ExpressionCodegen.java:2252)
at org.jetbrains.kotlin.codegen.Callable$invokeMethodWithArguments$1.invoke(Callable.kt:44)
at org.jetbrains.kotlin.codegen.Callable$invokeMethodWithArguments$1.invoke(Callable.kt:23)
at org.jetbrains.kotlin.codegen.OperationStackValue.putSelector(StackValue.kt:75)
at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:105)
at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:98)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.generateBlock(ExpressionCodegen.java:1197)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.generateBlock(ExpressionCodegen.java:1143)
at org.jetbrains.kotlin.codegen.CodegenStatementVisitor.visitBlockExpression(CodegenStatementVisitor.java:56)
at org.jetbrains.kotlin.codegen.CodegenStatementVisitor.visitBlockExpression(CodegenStatementVisitor.java:22)
at org.jetbrains.kotlin.psi.KtBlockExpression.accept(KtBlockExpression.java:44)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.genQualified(ExpressionCodegen.java:307)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.genStatement(ExpressionCodegen.java:372)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.gen(ExpressionCodegen.java:338)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.returnExpression(ExpressionCodegen.java:1588)
at org.jetbrains.kotlin.codegen.FunctionGenerationStrategy$FunctionDefault.doGenerateBody(FunctionGenerationStrategy.java:56)
at org.jetbrains.kotlin.codegen.ClosureGenerationStrategy.doGenerateBody(ClosureGenerationStrategy.kt:31)
at org.jetbrains.kotlin.codegen.FunctionGenerationStrategy$CodegenBased.generateBody(FunctionGenerationStrategy.java:76)
at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethodBody(FunctionCodegen.java:570)
at org.jetbrains.kotlin.codegen.inline.PsiSourceCompilerForInline.generateMethodBody(SourceCompilerForInline.kt:205)
at org.jetbrains.kotlin.codegen.inline.PsiSourceCompilerForInline.generateLambdaBody(SourceCompilerForInline.kt:147)
at org.jetbrains.kotlin.codegen.inline.ExpressionLambda.generateLambdaBody(LambdaInfo.kt:281)
at org.jetbrains.kotlin.codegen.inline.InlineCodegen.generateClosuresBodies(InlineCodegen.kt:311)
at org.jetbrains.kotlin.codegen.inline.InlineCodegen.inlineCall(InlineCodegen.kt:244)
at org.jetbrains.kotlin.codegen.inline.InlineCodegen.performInline(InlineCodegen.kt:171)
at org.jetbrains.kotlin.codegen.inline.PsiInlineCodegen.genCallInner(InlineCodegen.kt:643)
at org.jetbrains.kotlin.codegen.CallGenerator$DefaultImpls.genCall(CallGenerator.kt:106)
at org.jetbrains.kotlin.codegen.inline.PsiInlineCodegen.genCall(InlineCodegen.kt:629)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.invokeMethodWithArguments(ExpressionCodegen.java:2301)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.invokeMethodWithArguments(ExpressionCodegen.java:2252)
at org.jetbrains.kotlin.codegen.Callable$invokeMethodWithArguments$1.invoke(Callable.kt:44)
at org.jetbrains.kotlin.codegen.Callable$invokeMethodWithArguments$1.invoke(Callable.kt:23)
at org.jetbrains.kotlin.codegen.OperationStackValue.putSelector(StackValue.kt:75)
at org.jetbrains.kotlin.codegen.StackValueWithLeaveTask.putSelector(StackValue.kt:67)
at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:105)
at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:98)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.putStackValue(ExpressionCodegen.java:354)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.gen(ExpressionCodegen.java:339)
at org.jetbrains.kotlin.codegen.ExpressionCodegen.returnExpression(ExpressionCodegen.java:1588)
at org.jetbrains.kotlin.codegen.FunctionGenerationStrategy$FunctionDefault.doGenerateBody(FunctionGenerationStrategy.java:56)
at org.jetbrains.kotlin.codegen.FunctionGenerationStrategy$CodegenBased.generateBody(FunctionGenerationStrategy.java:76)
at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethodBody(FunctionCodegen.java:570)
at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethodBody(FunctionCodegen.java:333)
at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethod(FunctionCodegen.java:299)
at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethod(FunctionCodegen.java:177)
at org.jetbrains.kotlin.codegen.FunctionCodegen.gen(FunctionCodegen.java:148)
at org.jetbrains.kotlin.codegen.MemberCodegen.genSimpleMember(MemberCodegen.java:210)
at org.jetbrains.kotlin.codegen.ClassBodyCodegen.generateDeclaration(ClassBodyCodegen.java:168)
at org.jetbrains.kotlin.codegen.ClassBodyCodegen.generateBody(ClassBodyCodegen.java:84)
at org.jetbrains.kotlin.codegen.MemberCodegen.generate(MemberCodegen.java:142)
at org.jetbrains.kotlin.codegen.MemberCodegen.genClassOrObject(MemberCodegen.java:316)
at org.jetbrains.kotlin.codegen.MemberCodegen.genClassOrObject(MemberCodegen.java:300)
at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateClassOrObject(PackageCodegenImpl.java:156)
at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateClassesAndObjectsInFile(PackageCodegenImpl.java:86)
at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateFile(PackageCodegenImpl.java:119)
at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generate(PackageCodegenImpl.java:66)
at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.generatePackage(KotlinCodegenFacade.java:100)
at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.doGenerateFiles(KotlinCodegenFacade.java:78)
at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:45)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.generate(KotlinToJVMBytecodeCompiler.kt:450)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules(KotlinToJVMBytecodeCompiler.kt:152)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:158)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:61)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:107)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:51)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:92)
at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$$inlined$ifAlive$lambda$1.invoke(CompileServiceImpl.kt:380)
at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$$inlined$ifAlive$lambda$1.invoke(CompileServiceImpl.kt:96)
at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:892)
at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:96)
at org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.checkedCompile(CompileServiceImpl.kt:919)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.doCompile(CompileServiceImpl.kt:891)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:378)
at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: org.jetbrains.org.objectweb.asm.tree.analysis.AnalyzerException: Error at instruction 444: Cannot pop operand off an empty stack.
at org.jetbrains.kotlin.codegen.inline.MethodInliner$Companion.analyzeMethodNodeBeforeInline(MethodInliner.kt:753)
at org.jetbrains.kotlin.codegen.inline.MethodInliner$Companion.access$analyzeMethodNodeBeforeInline(MethodInliner.kt:722)
at org.jetbrains.kotlin.codegen.inline.MethodInliner.preprocessNodeBeforeInline(MethodInliner.kt:526)
at org.jetbrains.kotlin.codegen.inline.MethodInliner.markPlacesForInlineAndRemoveInlinable(MethodInliner.kt:399)
at org.jetbrains.kotlin.codegen.inline.MethodInliner.doInline(MethodInliner.kt:79)
at org.jetbrains.kotlin.codegen.inline.MethodInliner.access$doInline(MethodInliner.kt:41)
at org.jetbrains.kotlin.codegen.inline.MethodInliner$doInline$lambdaInliner$1.visitMethodInsn(MethodInliner.kt:236)
at org.jetbrains.org.objectweb.asm.tree.MethodInsnNode.accept(MethodInsnNode.java:133)
at org.jetbrains.org.objectweb.asm.tree.InsnList.accept(InsnList.java:162)
at org.jetbrains.org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:817)
at org.jetbrains.kotlin.codegen.inline.MethodInliner.doInline(MethodInliner.kt:310)
at org.jetbrains.kotlin.codegen.inline.MethodInliner.doInline(MethodInliner.kt:88)
at org.jetbrains.kotlin.codegen.inline.MethodInliner.doInline(MethodInliner.kt:68)
at org.jetbrains.kotlin.codegen.inline.InlineCodegen.inlineCall(InlineCodegen.kt:276)
at org.jetbrains.kotlin.codegen.inline.InlineCodegen.performInline(InlineCodegen.kt:171)
... 94 more
Caused by: org.jetbrains.org.objectweb.asm.tree.analysis.AnalyzerException: Error at instruction 444: Cannot pop operand off an empty stack.
at org.jetbrains.org.objectweb.asm.tree.analysis.Analyzer.analyze(Analyzer.java:298)
at org.jetbrains.kotlin.codegen.inline.MethodInliner$Companion.analyzeMethodNodeBeforeInline(MethodInliner.kt:750)
... 108 more
Caused by: java.lang.IndexOutOfBoundsException: Cannot pop operand off an empty stack.
at org.jetbrains.org.objectweb.asm.tree.analysis.Frame.pop(Frame.java:221)
at org.jetbrains.org.objectweb.asm.tree.analysis.Frame.execute(Frame.java:377)
at org.jetbrains.kotlin.codegen.inline.MethodInliner$Companion$analyzeMethodNodeBeforeInline$analyzer$1$newFrame$1.execute(MethodInliner.kt:743)
at org.jetbrains.org.objectweb.asm.tree.analysis.Analyzer.analyze(Analyzer.java:200)
... 109 more
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment