Eclipse uses a different compiler, which often produces better error messages.
But what does the JLS say?
OP: Please post a complete class with that code in and which compiles.
javac WontCompile.java
WontCompile.java:5: error: incompatible types: bad return type in lambda expression
Callable<Integer> c = () -> {};
^
missing return value
1 error
If I replace the {} with 999 it compiles all right. JDK1.8.0_121 from Oracle.