Move Inner Class to Upper Level: Fix replacement of outer class instances used in inner class constructor calls

#KT-13928 Fixed
This commit is contained in:
Alexey Sedunov
2016-09-29 16:36:54 +03:00
parent c76c834009
commit 86c123164a
8 changed files with 71 additions and 36 deletions
@@ -0,0 +1,3 @@
class InnerClass(private val test: Test) {
fun fun1() {}
}
@@ -0,0 +1,14 @@
class Test {
val test = InnerClass(this)
}
fun main(args: Array<String>) {
val test = Test()
val innerClass = InnerClass(test)
innerClass.fun1()
}
fun Test.foo() {
InnerClass(this)
}
@@ -0,0 +1,17 @@
class Test {
inner class <caret>InnerClass {
fun fun1() {}
}
val test = InnerClass()
}
fun main(args: Array<String>) {
val test = Test()
val innerClass = test.InnerClass()
innerClass.fun1()
}
fun Test.foo() {
InnerClass()
}
@@ -0,0 +1,6 @@
{
"mainFile": "test.kt",
"type": "MOVE_KOTLIN_NESTED_CLASS",
"withRuntime": "true",
"outerInstanceParameter": "test"
}