Commit Graph

157 Commits

Author SHA1 Message Date
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
Anna Kozlova
621795bbee isApplicability check based on pertinentToApplicability 2015-11-30 15:11:41 +01:00
Anna Kozlova
e740dbe245 testdata for IDEA-148553 2015-11-27 18:04:56 +01:00
Anna Kozlova
e43fad4277 captured wildcards: don't open unpredictably, treat as type, not type argument (IDEA-148348) 2015-11-26 19:23:09 +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
b4396c8f98 new inference: register incompatible message if inference fails (IDEA-131882; to be extended); filter out candidates if inference had failed for them 2015-11-19 20:43:59 +01:00
Anna Kozlova
e1f9d33a32 testdata for IDEA-147873 2015-11-13 16:07:17 +01:00