Created
November 20, 2017 09:00
-
-
Save elect86/f618124e211a937a3bb1969b8eb6e55e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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