Commit Graph

168 Commits

Author SHA1 Message Date
Anna Kozlova
c9d3d04e73 method ref: ensure capture conversion on first arg of second search 2018-05-22 15:48:15 +03:00
Anna.Kozlova
c4ada244b2 method refs: don't ignore applicability errors (IDEA-191467) 2018-05-17 11:28:24 +02:00
Anna.Kozlova
74f6d68ea3 inference for method references: register new variables for raw access
IDEA-189883, IDEA-188976: according to the 15.13.1 search for member is performed in the parameterization (non-raw) type which is a subtype of the first parameter type, in this case no additional variables are required as the type contains type arguments
2018-04-11 10:19:16 +02:00
Anna.Kozlova
aad9fe81c2 show error for type arguments on array creation (IDEA-189766) 2018-04-09 15:07:49 +02:00
Anna.Kozlova
9e20e117d6 skip inference for incompatible method references
EA-103416 - assert: PsiMethodReferenceCompatibilityConstraint.getSubstitutor
2017-12-14 18:45:49 +01:00
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