Fix for KT-13182: Regression: compiler internal error at inline

#KT-13182 Fixed
This commit is contained in:
Michael Bogdanov
2016-07-26 11:12:17 +03:00
parent 99cdc41ab6
commit 9b9abb2e10
4 changed files with 40 additions and 2 deletions
@@ -262,7 +262,8 @@ public class MethodInliner {
owner + "." + name + ", info " + transformationInfo;
InliningContext parent = inliningContext.getParent();
boolean shouldRegenerate = transformationInfo.shouldRegenerate(isSameModule);
if (shouldRegenerate || (parent != null && parent.isContinuation())) {
boolean isContinuation = parent != null && parent.isContinuation();
if (shouldRegenerate || isContinuation) {
assert shouldRegenerate || inlineCallSiteInfo.getOwnerClassName().equals(transformationInfo.getOldClassName())
: "Only coroutines can call their own constructors";
@@ -270,7 +271,7 @@ public class MethodInliner {
AnonymousObjectTransformationInfo info = (AnonymousObjectTransformationInfo) transformationInfo;
AnonymousObjectTransformationInfo oldInfo = inliningContext.findAnonymousObjectTransformationInfo(owner);
if (oldInfo != null) {
if (oldInfo != null && isContinuation) {
info = oldInfo;
}