Commit Graph

982 Commits

Author SHA1 Message Date
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
Anna.Kozlova c35fa1891b if client iterates through candidates of call resolve results and start inference for one of them, then cached top level session should be rejected if it corresponds to another candidate 2016-04-06 12:51:57 +02:00
Anna.Kozlova cd9c406260 don't cache substitutors during processing of all candidates (blinking red code) 2016-04-05 21:03:27 +02:00
peter 99bb53c9f6 no irrelevant java completion inside comments (IDEA-153683) 2016-04-04 16:42:04 +02:00
Anna.Kozlova 2f0bfeb404 testdata for IDEA-153999 2016-04-01 16:53:23 +02:00
Anna.Kozlova c1c40665ce erasure type of new expression if diamonds were used and during applicability check unchecked conversion was applied (IDEA-154009) 2016-04-01 16:53:23 +02:00
Anna.Kozlova e6426783b4 new inference: forget nested states when expressions were processed second time (IDEA-153897) 2016-03-30 21:02:16 +02:00
Anna.Kozlova cc72bd0319 inference: restore probably partial raw inference as this way expected raw types are preserved and Objects won't be inferred in place where raw types were expected 2016-03-30 12:15:25 +02:00
Anna.Kozlova d5613fae7f testdata for IDEA-153632 2016-03-29 21:17:55 +02:00