Commit Graph

163 Commits

Author SHA1 Message Date
Anna.Kozlova
1fc76eb779 calc types by applicability constraints if inference fails
include all inference variables for resolve and ignore additional constraints checks if the inference is going to failure; this way if (expr()) would get type of the 'standalone' expression instead of expression with boolean as expected type
2017-12-07 15:51:06 +01:00
Anna.Kozlova
e67bf2488b method references: do not prefer varargs from first search (IDEA-182018) 2017-11-13 16:41:50 +01:00
Anna.Kozlova
9728678ff4 method references: don't swallow errors during method ref inference (IDEA-179706) 2017-09-29 14:31:21 +02:00
Anna.Kozlova
643e046c85 EA-107704 - assert: InferenceSession.<init> 2017-09-26 14:33:30 +02:00
Anna.Kozlova
1699697000 testdata for IDEA-175280 2017-07-03 16:53:16 +02:00
Anna Kozlova
088510d098 skip warnings for constructor refs with varargs (IDEA-174074) 2017-06-27 19:47:53 +03:00
Anna Kozlova
12c350758d Interface.super method calls: ensure valid qualifier (IDEA-173888)
forbid calls to super methods which are overridden in direct superinterfaces
2017-06-05 14:34:18 +03:00
Anna Kozlova
011b8e4e10 checked exception constraints: ensure ground type (IDEA-173200) 2017-05-22 11:25:29 +03:00
Anna Kozlova
728ed62ed0 testdata for IDEA-157350 2017-05-10 20:35:34 +03:00
Anna Kozlova
ee0e90d92c provide applicability substitutor when inference fails for parent expression 2017-05-08 22:58:02 +03: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
c4d213ba26 method references: don't infer Object when no constraint exist for 'raw' reference (IDEA-171922) 2017-04-26 16:28:04 +02:00
Anna.Kozlova
c322dd3807 method reference: registry option to skip unsound capture conversion specified in the spec but ignored by the javac, to be changed in the next spec version (IDEA-171488) 2017-04-18 15:03:44 +02:00
Anna.Kozlova
a3dca1423c method references: exclude type parameter used in return types only (IDEA-171480) 2017-04-18 15:03:44 +02:00
Anna.Kozlova
3da240cba6 method reference: distinguish captured wildcards by target parameters (IDEA-170340) 2017-03-28 10:09:30 +02:00
Roman Shevchenko
6bd1b92c6e [tests] prepares Java tests for the language level raise 2017-03-24 13:19:01 +01:00
Roman Shevchenko
1abffecba5 Cleanup (warnings, formatting) 2017-03-24 13:18:59 +01:00
Anna.Kozlova
9c3ebf16aa method reference: include super substitutor into method reference substitutor when referenced method has no type parameters (IDEA-169134) 2017-03-07 09:15:29 +01:00
Anna.Kozlova
abfa41efdf applicability error: check inferred types by applicability substitutor (IDEA-167275) 2017-02-13 14:10:51 +01:00
Anna.Kozlova
178e834fb9 checked exception compatibility constraint: don't substitute with inferred variables as types are already constructed based on substituted values, so avoid dbl substitution which leads to errors in case of references to the containing method (IDEA-166104) 2017-01-02 12:27:12 +01:00
Anna.Kozlova
341b97a5b2 exact method refs: mark as not exact if on raw type 2016-12-23 19:37:48 +01:00
Anna.Kozlova
575a0740a9 method refs: ensure raw substitutor is not used for second search case to build return type constraints (IDEA-165239) 2016-12-14 11:31:36 +01:00
Anna.Kozlova
ec82847b4e resolve for method reference qualifier should prefer classes in case of constructor refs (IDEA-164165) 2016-11-18 17:58:54 +01:00
Anna.Kozlova
80a5866b23 super expression rules should not apply to this expressions (IDEA-163303) 2016-10-28 18:23:21 +02:00
Anna.Kozlova
9bcbdb68cb inference: register inference error when nested inference don't start as cached session already had errors 2016-10-21 18:07:07 +02: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
f4dae32d7f overload resolution: prefer candidates with functional formal type if lambda is passed; this way conflict would be resolved and nested error would be shown instead 2016-09-16 08:34:15 +03:00
Anna Kozlova
2ec75e05a1 method refs: prefer unhandled exception to wrong return type error (IDEA-160251) 2016-08-25 17:36:03 +03:00
Anna.Kozlova
3ee60dba1d method ref: ensure top substitutor is not overridden with raw replacement from second method ref search (IDEA-158636) 2016-07-18 14:57:04 +02:00
Anna Kozlova
1193a54876 warn about unused parameter if method is used locally as method reference as it could be transformed to equivalent lambda (IDEA-157988) 2016-06-29 20:32:32 +03:00
Anna.Kozlova
f64bd14441 method refs: site substitution should not replace session setup (IDEA-154722) 2016-04-14 12:28:44 +02:00
Anna.Kozlova
d780e31bdf inference: ensure foreign variables do not participate in inference process, e.g. variables from method reference overload resolution (IDEA-154622) 2016-04-13 21:11:02 +02:00
Anna.Kozlova
9086115347 method ref: type parameter instantiation (IDEA-154645) 2016-04-13 12:30:54 +02:00
Anna.Kozlova
f139c4cef4 new inference: check provided lower bounds on type parameters, in case of fresh variables they declare the type hierarchy and otherwise constrains won't agree (IDEA-153642) 2016-03-29 16:51:50 +02:00
Anna Kozlova
119449501b testdata for IDEA-152659 2016-03-09 14:23:53 +01:00
Anna Kozlova
1e764c9961 inference: skip lambda content and all its dependants when lambda type parameter type is calculated 2016-03-03 11:39:53 +01:00
Anna Kozlova
3434d9cc47 method reference: capture wildcards of new expressions (IDEA-152115) 2016-02-25 19:42:52 +01:00
Anna Kozlova
ea9e4ba63c method reference on getClass: fix method reference constraint 2016-02-01 16:53:20 +03:00
Anna Kozlova
e6357ca1dd method refs: fix getClass() return type in case of method references 2016-02-01 16:53:20 +03:00
Anna Kozlova
0d1cca1cd1 inference: force incorporation after reduce 2016-01-19 20:46:08 +01:00
Anna Kozlova
0926ee29c1 TypeName.super checks for classes fixed (IDEA-150141) 2016-01-14 18:42:40 +01:00
Anna Kozlova
88586f6ab9 method refs: captured wildcard at receiver position
EA-77434 - assert: PsiMethodReferenceCompatibilityConstraint.getParameterizedTypeSubstitutor
2016-01-04 19:25:03 +01:00
Anna Kozlova
105f33870f method references with qualifier with captured wildcard type: retrieve upper bound as it is done for method calls 2015-12-30 18:56:58 +01:00
Anna Kozlova
6aa61227df method reference: replace raw substitutor from second search with inferred substitutor and don't forget super class substitution (IDEA-149488) 2015-12-30 15:29:56 +01:00
Anna Kozlova
242cd356a7 method reference: additional diagnostics for invalid method references (IDEA-149688) 2015-12-29 16:46:58 +01:00
Anna Kozlova
132bb137a1 don't show error on method reference if functional expression is located inside invalid context without target functional type 2015-12-10 19:52:16 +01:00
Anna Kozlova
3f72d428a8 method references: show candidates if overload resolution failed (IDEA-148974) 2015-12-10 17:01:55 +01:00
Anna Kozlova
4768643b60 new inference: capture implicit param types (IDEA-132716) 2015-12-03 19:11:09 +01:00
Anna Kozlova
36ea2f9041 testdata for IDEA-148841 2015-12-03 15:27:26 +01:00
Anna Kozlova
5ac3bde398 testdata for IDEA-148093 2015-12-02 15:42:02 +01:00