mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
inline chained calls: ensure qualifiers with side effects are preserved (IDEA-199990; IDEA-147989)
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
|
||||
class MyObjBuilder {
|
||||
private NewType memberVar1;
|
||||
|
||||
public NewType convertToNewType(LegacyType arg) {
|
||||
return new NewType();
|
||||
}
|
||||
|
||||
public MyObjBuilder memberVar1(LegacyType arg) {
|
||||
memberVar1(convertToNewType(arg));
|
||||
return this;
|
||||
}
|
||||
|
||||
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();
|
||||
MyObj obj = MyObj.builder()
|
||||
.mem<caret>berVar1(lt)
|
||||
.memberVar2();
|
||||
}
|
||||
}
|
||||
|
||||
class NewType {
|
||||
}
|
||||
|
||||
class MyObj {
|
||||
public static MyObjBuilder builder() {
|
||||
return new MyObjBuilder();
|
||||
}
|
||||
}
|
||||
|
||||
class LegacyType {}
|
||||
@@ -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 {}
|
||||
@@ -4,6 +4,7 @@ import java.util.function.Function;
|
||||
class B<T> {
|
||||
|
||||
void foo(B<? extends CharSequence> sequences){
|
||||
sequences.bar(t -> t);
|
||||
Object t1 = null;
|
||||
}
|
||||
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
class Outer {
|
||||
|
||||
public void checkIt() {
|
||||
Inner inner = new Inner();
|
||||
inner.step1().step2().st<caret>ep3();
|
||||
System.out.println(" INNER.I = " + inner.i);
|
||||
}
|
||||
|
||||
class Inner {
|
||||
int i = 3;
|
||||
|
||||
public Inner step1() {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Inner step2() {
|
||||
i = 2;
|
||||
return this;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void step3() {
|
||||
}
|
||||
}
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
class Outer {
|
||||
|
||||
public void checkIt() {
|
||||
Inner inner = new Inner();
|
||||
inner.step1().step2();
|
||||
System.out.println(" INNER.I = " + inner.i);
|
||||
}
|
||||
|
||||
class Inner {
|
||||
int i = 3;
|
||||
|
||||
public Inner step1() {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Inner step2() {
|
||||
i = 2;
|
||||
return this;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user