New J2K: make post-processing aware of other files which are being converted

Before post-processing was able to handle only one converting file at once
So, some conversions (like (field, getter, setter) to Kotlin property)
was not able to work when converting class hierarchy was split into
multiple files.
Also, inferring nullability for a set of files was broken

#KT-19569 fixed
#KT-34266 fixed
#KT-32518 fixed
This commit is contained in:
Ilya Kirillov
2019-10-11 00:33:10 +03:00
parent 999918d499
commit b350515237
29 changed files with 498 additions and 165 deletions
@@ -0,0 +1,31 @@
package test;
public class B {
public String getFromB1() {
return "";
}
public String getFromB2() {
return "";
}
public void setFromB2(String value) {
}
public String getFromB3() {
return "";
}
public void setFromB3(String value) {
}
public String getFromB4() {
return "";
}
public void setFromB4(String value) {
}
public void setFromB5(String value) {
}
}
@@ -0,0 +1,20 @@
package test
open class B {
val fromB1: String
get() = ""
var fromB2: String?
get() = ""
set(value) {}
var fromB3: String?
get() = ""
set(value) {}
var fromB4: String?
get() = ""
set(value) {}
open fun setFromB5(value: String?) {}
}
@@ -0,0 +1,57 @@
package test;
public abstract class C extends B implements I {
private final int mySomething1;
private int mySomething6;
C(int something1) {
mySomething1 = something1;
}
@Override
public int getSomething1() {
return mySomething1;
}
@Override
public int getSomething2() {
return 0;
}
@Override
public int getSomething3() {
return 0;
}
@Override
public void setSomething3(int value) {
}
@Override
public int getSomething4() {
return 0;
}
@Override
public void setSomething5(int value) {
}
public int getSomething6() {
return mySomething6;
}
@Override
public void setSomething6(int value) {
mySomething6 = value;
}
public String getFromB5() {
return "";
}
@Override
public void setFromB5(String value) {
super.setFromB5(value);
}
}
@@ -0,0 +1,34 @@
package test
abstract class C internal constructor(override val something1: Int) : B(), I {
private var mySomething6 = 0
override val something2: Int
get() = 0
override var something3: Int
get() = 0
set(value) {}
override fun getSomething4(): Int {
return 0
}
override fun setSomething5(value: Int) {}
fun getSomething6(): Int {
return mySomething6
}
override fun setSomething6(value: Int) {
mySomething6 = value
}
fun getFromB5(): String {
return ""
}
override fun setFromB5(value: String?) {
super.setFromB5(value)
}
}
@@ -0,0 +1,21 @@
package test;
public interface I {
int getSomething1();
int getSomething2();
int getSomething3();
void setSomething3(int value);
int getSomething4();
void setSomething4(int value);
int getSomething5();
void setSomething5(int value);
void setSomething6(int value);
}
@@ -0,0 +1,13 @@
package test
interface I {
val something1: Int
val something2: Int
var something3: Int
fun getSomething4(): Int
fun setSomething4(value: Int)
fun getSomething5(): Int
fun setSomething5(value: Int)
fun setSomething6(value: Int)
}
@@ -0,0 +1,7 @@
package test;
public interface I1 extends I {
void setSomething1(int value);
int getSomething6();
}
@@ -0,0 +1,6 @@
package test
interface I1 : I {
fun setSomething1(value: Int)
val something6: Int
}