Don't remove nullability assertions of anonymous object transformation

#KT-19910 Fixed
This commit is contained in:
Mikhael Bogdanov
2017-09-01 15:02:36 +02:00
parent 599113b30f
commit 1cf8ee9433
4 changed files with 61 additions and 3 deletions
@@ -82,8 +82,12 @@ class MethodInliner(
//substitute returns with "goto end" instruction to keep non local returns in lambdas
val end = Label()
val isTransformingAnonymousObject = nodeRemapper is RegeneratedLambdaFieldRemapper
transformedNode = doInline(transformedNode)
removeClosureAssertions(transformedNode)
if (!isTransformingAnonymousObject) {
//don't remove assertion in transformed anonymous object
removeClosureAssertions(transformedNode)
}
transformedNode.instructions.resetLabels()
val resultNode = MethodNode(
@@ -93,7 +97,7 @@ class MethodInliner(
val visitor = RemapVisitor(
resultNode, remapper, nodeRemapper,
/*copy annotation and attributes*/
nodeRemapper is RegeneratedLambdaFieldRemapper
isTransformingAnonymousObject
)
try {
transformedNode.accept(visitor)