IR: Do not capture variables from method calls in ClosureAnnotator

To call a method of a class, you never need to supply any values of
local variables (they would always be provided to the constructor).
This commit is contained in:
Georgy Bronnikov
2019-11-22 16:26:06 +03:00
parent 344bc33096
commit 094de9fb5e
8 changed files with 51 additions and 0 deletions
@@ -189,6 +189,10 @@ class ClosureAnnotator(irFile: IrFile) {
private fun processMemberAccess(declaration: IrDeclaration) {
if (declaration.isLocal) {
if (declaration is IrSimpleFunction && declaration.parent is IrClass) {
return
}
val builder = closureBuilders[declaration]
builder?.let {
closuresStack.peek()?.include(builder)