Commit Graph

644 Commits

Author SHA1 Message Date
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
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
Anna Kozlova 08c0a88251 functional type: find common super type of intersection type's conjuncts (IDEA-144145) 2015-08-20 16:01:58 +02:00
Anna Kozlova 6b08a2da04 testdata for IDEA-140035 2015-08-19 12:34:39 +02:00
Anna Kozlova 4518420113 don't correct substitution if not applicable, e.g. for unresolved functional types 2015-08-18 19:15:37 +02:00
Anna Kozlova a1601f1d22 deoptimize so overriding methods from object marked as abstract won't get lost (IDEA-143141) 2015-08-18 12:34:42 +02:00
Anna Kozlova 0da30526fd error for not accessible types mentioned by inferred functional type (IDEA-143417) 2015-08-18 12:34:31 +02:00
Anna Kozlova 8c2a945f80 testdata for IDEA-143390 2015-08-12 08:14:31 -07:00
Anna Kozlova 1df6b8e711 new inference: ensure erased target type if substitutor was raw (IDEA-143183) 2015-07-29 10:02:59 +02:00
Anna Kozlova 3a9f429d3e method references on lambda parameters for incomplete code (EA-66008 - assert: InferenceSession.collectApplicabilityConstraints) 2015-07-22 12:34:09 +02:00
Roman Shevchenko 32a6761ede Cleanup (i18n; text corrected) 2015-07-20 12:06:25 +03:00
Roman Shevchenko de416d4f7f Cleanup (test moved to a correct location) 2015-07-18 23:13:56 +03:00
Anna Kozlova 7bec688369 lambda: don't reject value compatibility for lambdas with control flow problems inside (IDEA-142107) 2015-07-14 18:38:43 +03:00
Anna Kozlova 8a9e5ae9db A.super.field should not accept super interface (IDEA-140646) 2015-07-07 18:18:30 +03:00
Anna Kozlova 303edac35e functional type erasure: check if resulted type functional (IDEA-142341) 2015-07-07 14:55:14 +03:00
Anna Kozlova 024f917277 method refs: return type check fix for raw constructor (IDEA-142302) 2015-07-06 17:37:31 +03:00
peter 1294ec93f4 IDEA-140728 Suggest to automatically fill parameter of Stream#collect() method calls with standard Collectors instances 2015-07-03 18:25:08 +02:00
Anna Kozlova fe400fc988 method refs: infer 'diamond' if constructor ref type is raw (IDEA-142142) 2015-07-02 20:08:10 +03:00
Roman Shevchenko d926c3cca3 Cleanup (highlighting tests unified) 2015-07-01 00:21:44 +03:00
Anna Kozlova 7f0692d0f2 lambda valueCompatible check: don't evaluate constant expressions which could lead to reference resolution during overload check = caching possible wrong refs (IDEA-141808) 2015-06-24 11:11:03 +03:00
Anna Kozlova 6fd53851a0 report unrelated defaults when 2 default methods provided; abstract/default otherwise (IDEA-141714) 2015-06-23 12:05:22 +03:00
Anna Kozlova 30a12275a2 lambda: highlight containing method ambiguity on method name: this avoids lots of lines of lambda body to be highlighted and it would show errors even if lambda body contains errors actually caused by the ambiguity on the parent level (IDEA-141580) 2015-06-18 17:54:23 +03:00
Anna Kozlova 74f9ac5a46 method ref: don't check method reference qualifier against functional interface (IDEA-141343) 2015-06-11 16:46:12 +03:00
Anna Kozlova 9bc2885c4c new inference: collect during inference substitutor from inference variables and replace them with type parameters at the very end, excluding foreign variables so e.g. no essential dependency would get overridden by type parameter from sibling call (IDEA-140387) 2015-06-03 22:26:28 +02:00
Anna Kozlova fc175ce1a8 overload resolution: compare functional interfaces for specific if they are not assignable (IDEA-140987) 2015-06-02 17:58:59 +02:00
Anna Kozlova 7b0c5b6d05 new inference: check equals/upper/low bounds consistency 2015-05-29 14:48:27 +02:00
Anna Kozlova a21990d31e overload resolution with varargs: don't prefer promitive varargs when no arg is provided (IDEA-140759) 2015-05-27 22:01:03 +02:00
Anna Kozlova f18948a3a2 testdata for IDEA-140586 2015-05-21 21:53:42 +02:00
Anna Kozlova db72cccc97 method refs: missed qualifier substitution for return type (IDEA-140539) 2015-05-21 14:11:26 +02:00