inline chained calls: ensure qualifiers with side effects are preserved (IDEA-199990; IDEA-147989)

This commit is contained in:
Anna.Kozlova
2018-10-08 18:57:16 +02:00
parent 291c5cb03b
commit 15ed2e8384
8 changed files with 150 additions and 6 deletions
@@ -0,0 +1,38 @@
class MyObjBuilder {
private NewType memberVar1;
public NewType convertToNewType(LegacyType arg) {
return new NewType();
}
public MyObjBuilder memberVar1(NewType arg) {
this.memberVar1 = arg;
return this;
}
public MyObj memberVar2() {
return new MyObj();
}
}
class Main {
public static void main(String[] args) {
LegacyType lt = new LegacyType();
MyObjBuilder myObjBuilder = MyObj.builder();
myObjBuilder.memberVar1(myObjBuilder.convertToNewType(lt));
MyObj obj = myObjBuilder
.memberVar2();
}
}
class NewType {
}
class MyObj {
public static MyObjBuilder builder() {
return new MyObjBuilder();
}
}
class LegacyType {}