Commit Graph

672 Commits

Author SHA1 Message Date
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
e484d54fb8 missed usages of method references (IDEA-147828) 2015-11-12 12:36:59 +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
c29f92472e inferred type check for raw constraints (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
a73d1238ff testdata for IDEA-147511 2015-11-06 16:21:29 +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
2d21b7777e method reference: don't start containing class parameter type inference for receiver-reference; corresponding substitutor should be already known (IDEA-146604; IDEA-147223) 2015-11-03 17:10:58 +01:00
Anna Kozlova
0deaf6d6a5 recursive substitutors: additional constraints substitution should not repeat already performed substitution with site substitutor (IDEA-146841) 2015-10-26 18:56:03 +01:00
Anna Kozlova
47c3c2bbc1 null types (IDEA-146740) 2015-10-26 13:50:02 +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
peter
5d31a4c147 IDEA-146512 Code completion adds unnecessary type parameter 2015-10-17 12:36:37 +02:00
Anna Kozlova
d13663483d overload resolution: choose one of overload equivalent abstract methods arbitrarily (IDEA-146261) 2015-10-12 20:15:40 +02:00
Anna Kozlova
773e192f1a recursive getLambdaParameterType problem: don't check nested lambda body for unchecked exceptions, that's impossible anyway (IDEA-146161) 2015-10-09 17:17:09 +02:00
Anna Kozlova
c000624704 overload resolution: treat default methods as abstract; don't include static interface methods in conflict resolution when target expression type does not correspond to the containing interface (IDEA-146055) 2015-10-07 19:36:05 +02:00
Anna Kozlova
2b4d30bc16 diamonds: additional diagnostics for cases when constructor is unresolved (IDEA-146028) 2015-10-06 17:36:58 +02:00
Anna Kozlova
010dd7c48d testdata for IDEA-136708 2015-10-05 11:51:32 +02:00
Anna Kozlova
75c14f25b6 testdata for IDEA-138752 2015-10-05 11:51:30 +02:00
Anna Kozlova
4ed1c43acf testdata for IDEA-140686 2015-10-02 20:32:08 +02:00
Anna Kozlova
2a27f86b79 new inference: don't clear foreign caches - remove only expressions which were added 2015-10-02 20:32:07 +02:00
Anna Kozlova
197110ff95 overload resolution: provide type parameter bounds with site substitutor to correctly compare types during most specific check (IDEA-144463) 2015-10-02 12:05:27 +02:00
Anna Kozlova
e5979eaa35 diamonds: ensure new expression with diamond is treated as poly expression; ensure that site substitutions for constructor refs are ignored as they always contain raw substitutions 2015-09-30 17:35:12 +02:00
Anna Kozlova
c111105d30 cache diamond inference results 2015-09-30 10:59:13 +02:00
Anna Kozlova
d5a31ea205 inference: incorporation with capture and fresh variables (IDEA-145566) 2015-09-28 20:18:34 +02:00
Anna Kozlova
2da2ff75fa don't reject static method of interfaces imported via static imports (IDEA-145504) 2015-09-25 15:43:09 +03:00
Anna Kozlova
7d92ec966f new overload resolution: reject candidates with applicability level less than asked (IDEA-145505) 2015-09-24 19:58:55 +03:00
peter
c70ab42653 fix finding lambdas implementing JDK interfaces 2015-09-23 13:48:55 +02:00
Anna Kozlova
8b322fadb7 static methods of interfaces: accept calls on type parameters with exact one interface bound (IDEA-145269) 2015-09-18 14:37:14 +03:00
Anna Kozlova
76c7aaf56e new inference inside enum constants (IDEA-145211) 2015-09-17 13:42:49 +03:00
Anna Kozlova
99a54a3e76 resolve/overload resolution: collect static methods of interface called on foreign class/instance but filter them out during overload resolution (IDEA-145187) 2015-09-17 13:42:45 +03:00
Anna Kozlova
f61de7a241 method refs: ensure inference from captured return type (IDEA-145152) 2015-09-16 18:53:31 +03:00
Anna Kozlova
a811f9668e new inference for enum constants (IDEA-144973) 2015-09-10 15:55:05 +03:00
Anna Kozlova
7f043d56d1 testdata for IDEA-144840 2015-09-07 15:50:24 +03:00
Anna Kozlova
962225c53e isApplicable for raw qualifiers: it's enough to erasure left type, then right type should be able to assign there, so method reference type/lambda type won't be lost during erasure (IDEA-144547) 2015-09-04 14:10:35 +03:00
Anna Kozlova
5f45a046ea testdata for IDEA-106848 2015-09-03 20:30:59 +03:00
Anna Kozlova
f741a6a366 testdata for IDEA-132253 2015-09-03 17:22:31 +03:00
Anna Kozlova
eb638c67d7 testdata for IDEA-133920 2015-09-03 17:22:29 +03:00
Anna Kozlova
8f4768f3b3 testdata for IDEA-136401 2015-09-03 17:22:27 +03:00
Anna Kozlova
f1919cf246 testdata for IDEA-144386 2015-09-03 17:22:25 +03:00
Anna Kozlova
3893b9f6d4 new inference: collect additional constraints from lambda return expressions when lambda parameters are already fixed; process constraints without input variables before others, so their 'return' expressions could influence next rounds; testdata (IDEA-144596) 2015-09-03 17:22:22 +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
9a7d951e1e new inference: caching resolve result during getTargetType inference (IDEA-142733; IDEA-140035; IDEA-133385) 2015-09-02 17:04:29 +03:00
Anna Kozlova
ed06d3ff72 preserve captured wildcards during non wildcard parameterization (IDEA-132690) 2015-09-01 16:30:52 +03:00
Anna Kozlova
21e2fd41c0 non wildcard parameterization: workaround problems caused by different parameterizations of the same class during glb algorithm (IDEA-132690) 2015-09-01 16:30:50 +03:00
Anna Kozlova
14cfc1680c unrelated defaults false negative (IDEA-144518) 2015-08-31 19:09:55 +03:00
Anna Kozlova
2df4481722 fix intersection types in receiver position (IDEA-144472) 2015-08-31 19:09:52 +03:00
Anna Kozlova
98408c72f6 overload resolution: reject more specific inference contradicting site substitution 2015-08-26 12:08:47 +03:00
Anna Kozlova
a93ad570ca semantic cast to &Serializable for functional expressions is not redundant even if expression is inside parenthesis (IDEA-143922) 2015-08-20 19:31:05 +02:00