Commit Graph

148 Commits

Author SHA1 Message Date
Anna.Kozlova 9e0394a757 lambda constraints: proceed with return expressions (IDEA-175426)
lambda with formal types won't lead to additional constraint after return type constraint processing, thus it need to be processed additionally
2017-07-05 16:48:52 +02:00
Anna Kozlova 77f4894aae inference errors: make applicability error thread safe so multiple threads can perform overload resolution of parent method calls independently, save presentable error when substitutor cached only 2017-05-08 12:12:13 +03:00
Anna.Kozlova bdd3f7f3d6 pertinent to applicability: process return statements inside block lambda 2017-04-28 20:23:23 +02:00
Roman Shevchenko 6bd1b92c6e [tests] prepares Java tests for the language level raise 2017-03-24 13:19:01 +01:00
Anna.Kozlova e55fbf3f1d isEffectivelyFinal: disallow effectively final variables to be initialized twice (IDEA-165060) 2016-12-06 17:54:19 +01:00
Anna.Kozlova 936294e05d allow functional expressions in nested conditional expressions (IDEA-164828) 2016-12-01 16:52:02 +01:00
Anna.Kozlova 3797d3ea1c ensure ambiguity error presentation doesn't depend on previous calls to getSubstitutor() 2016-10-21 18:07:07 +02:00
Anna.Kozlova b560ee5910 lambda highlighting: if return statement has problem, try to highlight only corresponding return even if containing inference failed 2016-10-07 13:55:01 +02:00
Anna.Kozlova 62d25f9d05 new inference: provide incomplete inference results for lambda (IDEA-162035; IDEA-155230) 2016-10-06 16:21:05 +02:00
Anna.Kozlova 3332a677a6 allow functional interfaces in conditionals inside assignment or invocation contexts only 2016-10-04 18:45:14 +02:00
Anna Kozlova c95ba9968d testdata 2016-09-22 17:25:47 +03:00
Anna.Kozlova 9150e6fd4a clear error message (IDEA-154419) 2016-04-08 18:44:25 +02:00
Anna Kozlova c16a53a9fb do not open capture when method call type is calculated 2015-12-03 12:18:25 +01:00
Anna Kozlova 3a669178f5 do not open captured wildcards on substitution; don't capture wildcards on getExtendsTypes for type parameters and their consequences 2015-12-02 10:17:29 +01:00
Anna Kozlova 621795bbee isApplicability check based on pertinentToApplicability 2015-11-30 15:11:41 +01:00
Anna Kozlova 49dfdded70 new inference: don't push resolved vars in case of failed substitution 2015-11-24 10:30:21 +01:00
Anna Kozlova 138bd5a034 new inference: provide diagnostics on failed inference (strict subtyping constraints); don't resolve vars before incorporate - this way captures won't be opened too early 2015-11-24 10:30:21 +01:00
Anna Kozlova e7d095d85f new inference: provide diagnostics on failed inference (checked exceptions) 2015-11-24 10:30:21 +01:00
Anna Kozlova be2db1f940 new inference: report inference errors of containing call for lambdas 2015-11-20 21:47:13 +01:00
Anna Kozlova 61f120b30e new overload resolution: first check that collected methods are potentially compatible with args; for generic methods without specified type arguments this already means that they are applicable; for non generic methods (or raw method calls) expressions should be compatible with parameter types (formal parameter types = actual types as substitutor is known) (IDEA-147798) 2015-11-20 18:22:02 +01:00
Anna Kozlova 773e192f1a recursive getLambdaParameterType problem: don't check nested lambda body for unchecked exceptions, that's impossible anyway (IDEA-146161) 2015-10-09 17:17:09 +02:00
Roman Shevchenko 32a6761ede Cleanup (i18n; text corrected) 2015-07-20 12:06:25 +03:00
Anna Kozlova 30a12275a2 lambda: highlight containing method ambiguity on method name: this avoids lots of lines of lambda body to be highlighted and it would show errors even if lambda body contains errors actually caused by the ambiguity on the parent level (IDEA-141580) 2015-06-18 17:54:23 +03:00
Anna Kozlova 553ad77e46 overload resolution: reject java 8 varargs methods when they are checked by fixed arity and number of parameters doesn't match 2015-04-24 20:33:40 +02:00
Anna Kozlova 9fc640a8f0 ensure correct expression is checked during read before write variable check (IDEA-135937) 2015-02-20 21:37:28 +01:00
Anna Kozlova 925e9d1610 pertinent to applicability: reject nested lambdas if they target non proper type 2015-02-13 18:54:02 +01:00
Anna Kozlova af7da7a8f4 incompatible parameter types in lambda expression message expanded (IDEA-134941) 2015-01-07 17:10:09 +01:00
Anna Kozlova 8ce9831489 bad return type in lambda expression: requited type added; range corrected (IDEA-134942) 2015-01-07 16:07:27 +01:00
Anna Kozlova 145f701bc1 new overload resolution: integrate isPotentiallyCompatible in isApplicable checks 2014-11-26 17:42:30 +01:00
Anna Kozlova ddbaef9462 fix message for final locals used inside local/anonym classes in java 8 (IDEA-131949) 2014-10-29 18:05:52 +01:00
Anna Kozlova 33f7cb51f2 new inference: most specific check according to spec, fixed testdata after JDK-8043734 2014-09-04 13:45:03 +04:00
Anna Kozlova 83c2d36544 testdata for assignment to final vars inside lambda 2014-09-03 16:54:32 +04:00
Anna Kozlova 44253d03be forbid assignment to final variable inside lambda 2014-09-03 16:54:31 +04:00
Anna Kozlova 457091952f effectively final check (IDEA-128196) 2014-08-04 15:08:27 +02:00
Anna Kozlova 53cf6f6905 wording: warn about self references instead of "forward" ones 2014-07-02 12:26:17 +02:00
Max Medvedev 319bbf28a0 IDEA-125909 Groovy: trait methods accessed via 'super' are not resolved.
Use LinkedHashSet for PsiIntersectionType for order forcing.
2014-06-18 14:02:40 +04:00
Anna Kozlova 896c488a2f testdata to expression lambda 2014-05-01 15:33:11 +04:00
Anna Kozlova 8bad8079f6 lambda: do not skip generic method when non-generic method exist in the same class 2014-04-22 20:02:52 +02:00
Anna Kozlova b49d8e753f testdata 2014-04-22 20:02:40 +02:00
Anna Kozlova f1f6fcf53b functional interfaces: ignore methods with type parameters during abstract method choosing 2014-04-22 20:02:38 +02:00
Anna Kozlova a55db18089 lambda: accept intersection type when exactly one conjunct is functional 2014-04-22 20:02:37 +02:00
Anna Kozlova 76a9293609 testdata 2014-04-22 20:02:34 +02:00
Anna Kozlova 552dfe92a9 lambda: intersection type produces conjunction of abstract methods 2014-04-22 20:02:30 +02:00
Anna Kozlova bd9dbfc7d5 testdata 2014-04-22 20:02:29 +02:00
Anna Kozlova 9914757d15 warn about underscore identifier 2014-04-22 20:02:28 +02:00
Anna Kozlova 565b28a089 check for assignment to final field inside lambda (IDEA-123308) 2014-04-02 20:54:08 +02:00
Anna Kozlova d33575878b new inference: substitute resolved vars which e.g. did not participate in initial session (IDEA-123248) 2014-04-01 14:17:06 +02:00
Anna Kozlova 60acb4b9b2 IDEA-122616 2014-03-21 18:28:36 +01:00
Anna Kozlova 465325a6a6 new inference: nested varargs
(cherry picked from commit 0d293e439ffcbe97db98c1a1b8072e798d94323e)
2014-03-12 10:17:10 +01:00
Anna Kozlova 10760d9bbf new inference: process varargs as separate method candidate/separate phase
(cherry picked from commit fdd6f66268d29bb996a103f69180851b92947d21)
2014-03-12 10:15:03 +01:00