speedup functional expression search (IDEA-159107)

* filter inapplicable expressions without loading AST if possible, via approximate resolve
* for that, store the approximate call chains in index
* iterate over files once, not for each empty marker Runnable interface separately
* don't rely on generic method parameter index: it's huge, memory-hungry and works only in Java
This commit is contained in:
peter
2016-08-13 12:12:19 +02:00
parent e8ea2598f3
commit 9776d5a28d
12 changed files with 762 additions and 678 deletions
@@ -13,6 +13,6 @@ interface MyStream {
class Test {
{
Arrays.stream().map(p -> "a");
Arrays.stream(1).map(p -> "a");
}
}
@@ -0,0 +1,13 @@
interface I {
int a();
}
class A<Z> {
void foo(I i);
}
class C<X, Y, SR extends A<Y>> {
void bar(SR t) {
t.foo(() -> 1);
}
}
@@ -0,0 +1,5 @@
class C {
{
pkg.p1.p2.p3.Util.foo(() -> {});
}
}