[java-intention] When creating a new method, declare it with fresh generic type to allow more flexible inference

Fixes IDEA-314907 code generation: return type not recognized by idea when it is a generic type

GitOrigin-RevId: 878d6f9d48315fdadb499a65dc8cfe5db57234d7
This commit is contained in:
Tagir Valeev
2023-03-17 18:30:16 +01:00
committed by intellij-monorepo-bot
parent 39b49e151c
commit fb57f4c33f
3 changed files with 54 additions and 3 deletions

View File

@@ -0,0 +1,26 @@
// "Create method 'list'" "true-preview"
import java.util.List;
class MainService {
public List<Data> list() {
<selection><caret>return null;</selection>
}
}
class MainController {
private final MainService service = new MainService();
public Wrapper<List<Data>> listData() {
return Wrapper.wrap(service.list());
}
}
class Wrapper<T> {
private T data;
public static <T> Wrapper<T> wrap(T t) {
Wrapper<T> res = new Wrapper<>();
res.data = t;
return res;
}
}
interface Data {}

View File

@@ -0,0 +1,23 @@
// "Create method 'list'" "true-preview"
import java.util.List;
class MainService {
}
class MainController {
private final MainService service = new MainService();
public Wrapper<List<Data>> listData() {
return Wrapper.wrap(service.<caret>list());
}
}
class Wrapper<T> {
private T data;
public static <T> Wrapper<T> wrap(T t) {
Wrapper<T> res = new Wrapper<>();
res.data = t;
return res;
}
}
interface Data {}