Commit Graph

840 Commits

Author SHA1 Message Date
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
Anna Kozlova
d9c65ce4ee ensure functional interface is found if assigned to field in another file (IDEA-156592) 2016-05-31 20:21:14 +03:00
Anna Kozlova
99fe682d0b Revert: overload resolution: don't prefer concrete over abstract if the signatures are not override-equivalent (2bedb80d81) 2016-05-31 11:44:10 +03:00
Anna Kozlova
2bedb80d81 overload resolution: don't prefer concrete over abstract if the signatures are not override-equivalent 2016-05-30 11:28:01 +03:00
Anna Kozlova
7f8b5f8952 redundant cast: process branches of conditional expressions with respect to expected type for functional expressions (IDEA-156480) 2016-05-25 18:40:17 +03:00
peter
dc64af7f22 IDEA-156379 Suggested "collect(Collectors.toList())" ignores static Collectors import 2016-05-24 15:21:50 +02:00
Anna.Kozlova
107abaf891 good code red: applicability check for non-generic method requires types calculation 2016-05-20 21:44:12 +02:00
Anna.Kozlova
ce58f62d19 lambda.isValueCompatible should not cache inference results for calls inside lambda body as they may depend on incomplete top level inference where LambdaExpressionCompatibilityConstraint is reduced (IDEA-156311) 2016-05-20 18:52:45 +02:00
Anna.Kozlova
ad6352ce0b upcoming changes to the spec and javac (JDK-8145614; JDK-8142876) 2016-05-20 18:52:45 +02:00
Anna.Kozlova
25352dce0b avoid checks over not applicable methods (IDEA-156196) 2016-05-19 16:47:28 +02:00
peter
d167a4e820 don't suggest break/continue inside lambda/anonymous inside a loop (IDEA-CR-10869) 2016-05-19 10:58:51 +02:00
Anna.Kozlova
3dd26b5936 testdata on partially raw types inferred by javac 2016-05-09 19:42:35 +02:00
Anna.Kozlova
d85c70d870 invocation type inference: don't create fresh variables for all type parameters but only for those where wildcards are used in return type (IDEA-155627; IDEA-151220; IDEA-151387) 2016-05-06 18:00:16 +02:00
peter
20f69c8111 remove wrong capture treatment: the completion result is incorrect (IDEA-155188) 2016-05-03 14:25:59 +02:00
peter
80ad8e9ebd IDEA-154276 Suggest method references to constructors of implementing classes when Supplier<AnAbstractClass> is expected 2016-05-02 08:58:57 +02:00
Anna.Kozlova
b936f89275 redundant cast: ensure cast is not removed if operand changes it's type 2016-04-29 14:41:28 +02:00
Anna.Kozlova
f36501444c clear diamond inference errors when overload resolution fails 2016-04-28 11:39:38 +02:00
Anna.Kozlova
bebf4975e6 change signature: expand expr lambda to block lambda when exception should be caught; don't expand method ref to lambda when only unchecked exceptions were added (IDEA-152386) 2016-04-28 11:39:38 +02:00
peter
85601ec30c support captured types in incomplete overloaded lambda completion (IDEA-155188) 2016-04-26 10:23:35 +02:00
peter
3b725bc33e IDEA-155188 Lambda auto completion for incomplete overloaded method fails 2016-04-25 20:45:38 +02:00
Anna.Kozlova
e588d2285a highlighting: don't add warning for nested lambda when problem is inside upper level (IDEA-155192) 2016-04-25 14:41:56 +02:00
Anna.Kozlova
5d6351b1ec diamonds: don't accept inferred types when error appeared during inference (IDEA-154619) 2016-04-21 18:39:23 +02:00
Anna.Kozlova
e07b25baba testdata for IDEA-153701 2016-04-21 14:33:04 +02:00
Anna.Kozlova
401ec5dbfa redundant cast: restoring call by top level, let's search by arg list offset in order to avoid finding method calls from qualifiers 2016-04-20 17:49:29 +02:00
Anna.Kozlova
ee4f41b14c don't open captures on type computation (IDEA-154968) 2016-04-20 17:49:29 +02:00
Anna.Kozlova
2dead05e6b treeWalkUp: stop at member level to avoid skipping anonymous classes 2016-04-19 20:02:32 +02:00
Anna.Kozlova
c09caae28e treat conditional expressions with new expressions with diamonds inside as poly
EA-76546 - assert: InferenceSessionContainer.treeWalkUp
2016-04-19 19:05:54 +02:00
Anna.Kozlova
abf32b50d5 don't calculate type of method expression which is located on the left side of assignment - assignment is invalid anyway
(EA-77049 - assert: PsiMethodCallExpressionImpl$TypeEvaluator.fun)
2016-04-19 19:05:54 +02:00
Anna.Kozlova
4c06b785c0 testdata for IDEA-154861 2016-04-18 12:54:50 +02:00
Anna.Kozlova
43fc40c4a5 anonym -> lambda, redundant cast, redundant type args: process top level overloads (IDEA-152766);
rearrange utils
2016-04-15 18:43:24 +02:00
Anna.Kozlova
09f46115cf redundant cast: special processing for functional expressions as enum args (IDEA-154354) 2016-04-15 18:43:24 +02:00
Anna.Kozlova
320aeb7b5e inference: erasure functional type for raw substitutors (IDEA-154759) 2016-04-14 20:59:13 +02: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
1466b0155e bad code green: reject return type constraint if unchecked conversion was applied during applicability check and return type is type parameter 2016-04-11 21:51:18 +02:00
Anna.Kozlova
9150e6fd4a clear error message (IDEA-154419) 2016-04-08 18:44:25 +02:00
Anna.Kozlova
a8ad27f8a9 no need to check unrelated concrete for same named constructors in the hierarchy (IDEA-154377) 2016-04-08 18:44:25 +02:00
Anna.Kozlova
0ed05632ff ensure non-initialized fields used inside lambdas are rejected if lambda is inside class initializer only (IDEA-154305) 2016-04-07 15:13:00 +02:00
Anna.Kozlova
3966e55bbf testdata for IDEA-154278 2016-04-06 21:17:37 +02:00
Anna.Kozlova
0ca2e9cdd6 don't pass erasure flag through inference process 2016-04-06 17:15:12 +02:00
Anna.Kozlova
1bc380f6fd overload resolution: skip static correctness check during overload resolution (IDEA-154187) 2016-04-06 12:51:57 +02:00