Commit Graph

125 Commits

Author SHA1 Message Date
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
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
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
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
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
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
3966e55bbf testdata for IDEA-154278 2016-04-06 21:17:37 +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
Anna.Kozlova
0e808d9aff highlight invalid method call: search for most probable argument-cause (IDEA-151202) 2016-03-24 15:58:41 +01:00
Anna.Kozlova
034012ae4e overload resolution: clear inference errors from nested calls when top level expression is abadoned as non-applicable (IDEA-150718; IDEA-153222) 2016-03-18 15:50:22 +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
930df16f98 inference: propagate variable renames through the call hierarchy; calculate tooltips in tests (IDEA-151948) 2016-02-22 20:05:58 +01:00
Anna Kozlova
f09865ef1d convert to diamonds: raise a problem if containing method can't be resolved (IDEA-151540) 2016-02-22 15:59:38 +01:00
Anna Kozlova
ef90033b1a testdata 2016-02-18 19:47:21 +01:00
Anna Kozlova
0ac147ad95 inference: check glb with captured wildcard: if not assignable check if it is an interface 2016-02-17 17:24:41 +01:00
Anna Kozlova
42d50e32fe testdata for IDEA-150688 2016-02-17 14:44:12 +01:00
Anna Kozlova
17743c0a87 unchecked warning: mark as unchecked if passed to strict subtyping (IDEA-151302) 2016-02-17 14:44:12 +01:00
Anna Kozlova
8fdf37e038 inference: skip unchecked warning for types based on inference variables (IDEA-151761) 2016-02-16 18:15:03 +01:00
Anna Kozlova
a530fe132f inference: don't erase inference variables (IDEA-151750) 2016-02-16 15:57:18 +01:00
Anna Kozlova
1f640238e0 inference: retrieve type from containing call if the corresponding method is not generics (IDEA-151443) 2016-02-09 20:09:10 +01:00
Anna Kozlova
ff21fd0ea5 calculate transitive inference variable's dependencies (IDEA-151170) 2016-02-03 16:10:26 +03:00
Anna Kozlova
c06f66ab26 SOE with numeric conditional expressions when expression inside is not standalone
EA-78419 - SOE: InferenceSessionContainer.infer
2016-01-27 13:57:06 +03:00
Anna Kozlova
7b2e554b0a inference: cache erasure flag together with partial inference (IDEA-150802) 2016-01-25 18:52:15 +03:00
Anna Kozlova
15f3eac8a2 inference:incorporation optimization: skip variable's bound incorporation if the phase didn't change these bounds 2016-01-19 12:56:50 +01:00
Anna Kozlova
ae64c30eb9 inference: ensure to convert disjunction type to lub (IDEA-150364) 2016-01-14 16:18:20 +01:00
Anna Kozlova
46ce9ed914 testdata for IDEA-149774 2015-12-28 19:07:22 +01:00
Anna Kozlova
adaa0f09b7 new inference: pull erased flag through nested calls (IDEA-133613) 2015-12-28 19:07:22 +01:00
Anna Kozlova
2be1c64a13 new inference: correct capture incorporation (IDEA-149807) 2015-12-28 19:07:22 +01:00
Anna Kozlova
a15905ae13 conditional expression type: check poly expression first (IDEA-148965) 2015-12-08 09:37:18 +01:00
Anna Kozlova
5dad1d7009 new inference: process captured wildcard with array type bound 2015-12-02 10:57:27 +01:00
Anna Kozlova
621795bbee isApplicability check based on pertinentToApplicability 2015-11-30 15:11:41 +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
49dfdded70 new inference: don't push resolved vars in case of failed substitution 2015-11-24 10:30:21 +01:00
Anna Kozlova
d32e6ec080 new inference: start inference from top to bottom; ensure getTargetType doesn't perform any inference; cache intermediate results 2015-11-19 10:47:21 +01:00
Anna Kozlova
fcf8e6f373 move inference error from element to method candidate to avoid overload method pollution; show inference error in the editor if applicability check was successful; register inference error if variable has incompatible upper bounds (IDEA-145106) 2015-11-16 10:05:50 +01:00
Anna Kozlova
03d4334430 eliminate wildcards elimination in flattening intersection types (IDEA-143194); fully follow specification in determining target type - javac would be fixed (JDK-8142876), eclipse already obeys the spec 2015-11-12 20:14:15 +01:00
Anna Kozlova
59b55c3c00 new inference, incorporation step: ignore type arguments in bounds, retrieve upper bounds of captured wildcards (IDEA-145244) 2015-11-11 17:35:32 +01:00
Anna Kozlova
99338ada50 incorporation: deal with PsiType.NULL (IDEA-147529) 2015-11-10 18:45:36 +01:00
Anna Kozlova
c798f3ab6b inference variables: ensure variable is not mixed with type parameter for recursive calls (IDEA-147639) 2015-11-09 19:08:30 +01:00
Anna Kozlova
289aea179d isPertinentToApplicability: check class type parameters if constructor is called with diamonds (IDEA-147619) 2015-11-09 19:08:30 +01:00
Anna Kozlova
6e853bf571 new inference: stop at first common supertypes pair during incorporation of upper bounds (IDEA-147393) 2015-11-05 15:24:18 +01:00
Anna Kozlova
ec5f440e09 subtyping constraint: accept array types if left type is assignable from array, e.g Serializable (IDEA-146592) 2015-10-20 20:58:49 +02:00
Anna Kozlova
d5a31ea205 inference: incorporation with capture and fresh variables (IDEA-145566) 2015-09-28 20:18:34 +02:00
Anna Kozlova
a811f9668e new inference for enum constants (IDEA-144973) 2015-09-10 15:55:05 +03:00
Anna Kozlova
984b65ef65 new inference: incorporation with capture: treat type param's extends bounds as one as glb (IDEA-142145) 2015-09-02 17:04:31 +03:00
Anna Kozlova
c0de8d22c6 new inference: reject array upper bounds which contradict with another class type bound (IDEA-144159) 2015-08-20 19:31:03 +02:00