Commit Graph

161 Commits

Author SHA1 Message Date
anna
c64013e004 lambda: check more specific method based on lambda return types 2013-02-27 16:07:30 +01:00
anna
4bf90bf26d lambda: testdata 2013-02-26 21:20:52 +01:00
anna
b562064e02 lambda: conditional inference updated 2013-02-25 18:44:13 +01:00
anna
a684c033a1 lambda: replace raw inference from lambda with Object when it doesn't matter (IDEA-101788) 2013-02-25 14:12:42 +01:00
anna
6edc546e65 lambda: void compatibility guess 2013-02-20 21:30:51 +01:00
anna
a82225975a lambda/method refs: check functional interface accessibility 2013-02-20 20:41:07 +01:00
anna
9634bb390e lambda: stop inference from lambda if return type retrieval leads to second lambda inference; do not cache types during this calculation 2013-02-20 20:41:06 +01:00
anna
def5e21e6a lambda: restore void-compatibility checks 2013-02-20 20:41:05 +01:00
anna
3b4e3818e6 lambda: correct inference for vararg place > params.len (IDEA-101169) 2013-02-15 14:00:03 +01:00
anna
b0a04ac5d2 lambda: preserve partial substitutor data during substitute 2013-02-12 17:42:24 +01:00
anna
f9565522cb split tests according to expected language level 2013-02-08 11:34:24 +01:00
Anna Kozlova
42d2b33230 lambda: choose more specific by return type fix (IDEA-99969); check cyclic inference when not on raw 2013-01-29 14:43:26 +04:00
Anna Kozlova
f1c1c6ee42 support @FunctionalInterface 2013-01-28 16:21:22 +04:00
anna
1cc7b6ee11 lambda: check unhandled exceptions for method references; disable surround with try/catch accordingly (IDEA-98966) 2013-01-14 16:51:11 +01:00
anna
c892ea7f32 java 8: resolve conflicts choosing more specific return type (IDEA-98845) 2013-01-11 18:55:34 +01:00
anna
6f2878cdf7 java 8: intersection type casts (IDEA-98843) 2013-01-11 16:09:23 +01:00
anna
5a15076bd6 lambda: check lambda return type compatibility before more specific checks (IDEA-97870) 2012-12-20 15:32:39 +01:00
anna
bd4346cea8 lambda: use incomplete substitutor when calc functional interface (IDEA-97038) 2012-12-18 20:26:31 +01:00
anna
d9fb83d631 lambda: accept raw functional interfaces when there are no params 2012-12-18 13:07:31 +01:00
anna
963b2ed293 lambda: relax incompatible return type in case of void functional types 2012-12-17 17:32:29 +01:00
anna
44ab4d534a lambda: infer functional interface from enum constants (IDEA-97596) 2012-12-17 17:32:28 +01:00
anna
e775459321 lambda: nested lambda return statements exclusion 2012-10-15 16:20:57 +02:00
Anna Kozlova
289ee1d04c lambda: do not override already inferred types from parent (IDEA-92733) 2012-10-12 17:31:16 +02:00
anna
5c170f7eb5 hide "illegal forward reference" warning for lambda (IDEA-91986) 2012-09-25 11:34:17 +02:00
anna
4adc3db92c lambda: return type compatibility test 2012-09-18 09:16:09 +02:00
Anna Kozlova
5a6fdedb9a lambda: check parameters if they use free names (IDEA-91502) 2012-09-13 17:53:30 +04:00
Anna Kozlova
94dd1967d1 lambda: check return compatibility according to expected lambda type; test fixed 2012-09-12 12:59:30 +04:00
Anna Kozlova
943d901fff lambda: do not accept ? as type argument for return value (IDEA-91369) 2012-09-12 00:03:42 +04:00
Anna Kozlova
11a2faaf14 lambda: allow raw types when no inference was performed 2012-09-10 12:54:44 +04:00
Anna Kozlova
5a546b640c lambda: missed return statement error; do not use containing method return type for lambda inference 2012-09-10 12:54:43 +04:00
Anna Kozlova
2a91b03499 testdata for IDEA-90998 2012-09-06 19:17:34 +04:00
Anna Kozlova
262fcbafad extend lambda valid context: conditional expressions (IDEA-91140) 2012-09-06 19:10:16 +04:00
Anna Kozlova
d474aa3f1c lambda: take into account substitution interface with method -> functional interface;
do not infer return type parameters when lambda parameter type was calculated, no substitution caching here (IDEA-90875)
2012-09-06 13:07:11 +04:00
Anna Kozlova
f73177c04e lambda: correct message when lambda params are incompatible (IDEA-91016) 2012-09-04 21:05:05 +04:00
Anna Kozlova
d83b1f12c7 lambda: skip conditional condition during inference from return value 2012-09-04 21:05:03 +04:00
Anna Kozlova
2996ce4b20 lambda: simple inference in case of conditional expressions (IDEA-90812) 2012-09-03 21:27:11 +04:00
Anna Kozlova
c7781bb05f lambda: take care of diamonds 2012-09-03 18:27:49 +04:00
Anna Kozlova
8797c54ace lambda: get info for return types from type arguments 2012-09-03 12:42:35 +04:00
Anna Kozlova
b199a1b76c lambda & raw types 2012-08-31 18:40:56 +04:00
Anna Kozlova
1d0922ead8 lambda: lambda on vararg place 2012-08-31 15:34:20 +04:00
Anna Kozlova
2c05b4d750 lambda: functional interface can contain multiple default methods 2012-08-31 15:34:16 +04:00
Anna Kozlova
a386c22bc3 lambda check for ambiguity: prefer functional interfaces without type param dependencies (commented) 2012-08-28 12:20:49 +04:00
Anna Kozlova
ece63f3c92 correct lambda inference inside new expressions 2012-08-28 12:20:48 +04:00
Anna Kozlova
a85c808676 lambda: do not warn about unhandled exceptions from lambda on call site 2012-08-27 15:50:42 +04:00
Anna Kozlova
9c4504cfdf lambda: do not even try to infer from return value when value depends on params 2012-08-27 15:20:21 +04:00
Anna Kozlova
cf4b4e6831 eliminateWildcards -> GenericsUtil; lambda: eliminate wildcards before formal types declaration (IDEA-90578) 2012-08-24 21:24:08 +04:00
Anna Kozlova
a5c50473a3 lambda: skip some cyclic inference cases 2012-08-21 17:06:23 +04:00
Anna Kozlova
a0d858fa5b lambda: effectively final parameters: copy in final variable if needed - never make implicitly final 2012-08-21 14:39:41 +04:00
Anna Kozlova
b6a278b60f lambda return type checks: consider void-compatible/value-compatible block 2012-08-20 16:59:18 +04:00
Anna Kozlova
122cccf567 lambda: correct error reporting according to b.50 2012-08-20 15:26:47 +04:00