Commit Graph

881 Commits

Author SHA1 Message Date
Anna.Kozlova
382b78aeca unrelated defaults: check if current class contains explicit method (IDEA-164732) 2016-12-02 11:51:07 +01:00
Anna.Kozlova
936294e05d allow functional expressions in nested conditional expressions (IDEA-164828) 2016-12-01 16:52:02 +01:00
Anna.Kozlova
a17be30b79 include package local methods into method hierarchy (IDEA-164557) 2016-12-01 10:39:31 +01:00
Anna.Kozlova
049a253fdf inference: don't erase types when target type is parameterized with unbounded wildcards only, in this case no unchecked warning would be generated and the types won't be affected by unchecked warning clause 2016-11-23 11:53:29 +01:00
Anna.Kozlova
becb6c7387 inference: mark call unchecked required when proper types are compared (IDEA-164243) 2016-11-21 19:33:20 +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
ccb61093af overload resolution: don't choose most specific method based on boxing property for vararg position (IDEA-163597) 2016-11-17 17:10:53 +01:00
Anna.Kozlova
39aa837db3 inference: don't distinguish parameterizations with 2 different interfaces (IDEA-163950) 2016-11-15 18:11:31 +01:00
Anna.Kozlova
b8e4985205 don't erase method invocation type iff unchecked conversion was required during additional constraints processing (IDEA-163503) 2016-11-03 16:38:40 +01:00
Anna.Kozlova
bf259fed79 unrelated defaults when one interface overrides 2 unrelated (IDEA-163469) 2016-11-02 15:51:14 +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
12554167e7 inference on incomplete code (EA-90195 - AIOOBE: PsiTypesUtil.getParameterType) 2016-10-20 19:04:25 +02:00
Anna.Kozlova
41c2429966 new inference: postpone unresolved variables in favor to variables with proper equals bound 2016-10-11 10:27:29 +02:00
Anna.Kozlova
98094c72de lambda: ensure deep nested lambdas get target types from top level inference (IDEA-157314) 2016-10-07 13:55:01 +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
031f71c5b3 redundant cast: don't highlight conditional with functional branches (IDEA-161971) 2016-10-04 18:45:14 +02:00
Anna.Kozlova
3332a677a6 allow functional interfaces in conditionals inside assignment or invocation contexts only 2016-10-04 18:45:14 +02:00
peter
53867e057f IDEA-161862 Lambda Expressions not showing as implementations of an interface 2016-09-29 11:31:20 +02:00
Anna Kozlova
c95ba9968d testdata 2016-09-22 17:25:47 +03:00
Anna Kozlova
926d7063f5 fix testdata 2016-09-19 18:50:55 +03:00
Anna Kozlova
b8f0e626b9 java 8 diamonds: include constructor's type parameters in inference constraints (IDEA-160918) 2016-09-19 17:43:55 +03: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
peter
d408fdc798 IDEA-161250 Semicolon added in the middle of code 2016-09-15 12:03:42 +02: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
1bece25b95 inference: when unchecked conversion was applied, resolve variables against raw substitutor 2016-08-17 13:53:02 +03:00
peter
9776d5a28d speedup functional expression search (IDEA-159107)
* filter inapplicable expressions without loading AST if possible, via approximate resolve
* for that, store the approximate call chains in index
* iterate over files once, not for each empty marker Runnable interface separately
* don't rely on generic method parameter index: it's huge, memory-hungry and works only in Java
2016-08-13 12:12:19 +02:00
peter
e8ea2598f3 fun expr search: minor improvements after reviews 2016-08-13 12:12:19 +02:00
Anna.Kozlova
369c9a24b4 diamonds: fix conflicting names between constructor and class type parameters (rename the constructor type parameters) 2016-08-09 15:52:11 +02:00
Anna.Kozlova
0e3d077bfe fix inheritance of abstract and default methods when multiple defaults are present 2016-08-09 15:52:11 +02:00
Anna Kozlova
8ac15c13de check context for functional expressions once (IDEA-159362) 2016-08-08 08:35:27 +02:00
Anna Kozlova
ccf3beba42 check diamond applicability over static factory underneath (IDEA-159287) 2016-08-08 08:35:27 +02:00
peter
522e0b9c2d don't visit jdk Stream API usages when searching for unrelated functional interface implementations 2016-08-03 12:49:11 +02:00
peter
c71a1e7136 IDEA-158267 Parameter completion overwrites the following lambda declaration ' () -> {}' 2016-07-27 12:15:56 +02:00
peter
22b9dc61a6 fin functional expressions of SAM interfaces related to the given one 2016-07-23 23:05:56 +02:00
peter
2a93e063bd rewrite functional expression search to use stub index 2016-07-22 17:41:21 +02:00
Anna.Kozlova
035b6d9d1f lambda return type inconsistency: highlight all found errors (IDEA-158853) 2016-07-21 19:03:45 +02:00
peter
1c451db9ad a test that lambdas in constructor calls are found 2016-07-21 12:16:42 +02:00
peter
0a4f995460 find lambdas passed into vararg methods 2016-07-21 12:16:41 +02: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
3cfd5be8c0 bombed test for resolution with cycle 2016-06-29 16:18:27 +03:00
Anna Kozlova
7968b2bbbb apply capture conversion for captured wildcard bound according to the direct supertype of parameterized type specification (IDEA-157586) 2016-06-22 15:24:15 +03:00
Anna Kozlova
3805d51554 subtyping constraint: apply capture conversion for captured wildcard bound according to the direct supertype of parameterized type specification 2016-06-22 15:24:15 +03:00
Anna Kozlova
a330f9c2f7 inference: treeWalkUp if overload is done under current argumentList caused by lambda parameter type inference (IDEA-157676) 2016-06-22 15:24:15 +03:00
Anna Kozlova
1fcb534fcb highlight diamonds as type parameter list (IDEA-156859) 2016-06-06 17:52:24 +03:00
Anna Kozlova
3e7b1dca62 conditional: treat nulls separately and accept them as numeric/boolean branches (IDEA-157025) 2016-06-03 15:28:58 +03:00
Anna Kozlova
9c95fa5524 don't try to infer from top if overloaded flag is on (IDEA-156937) 2016-06-02 17:01:51 +03:00