Commit Graph

73 Commits

Author SHA1 Message Date
Anna.Kozlova 6bb976899e overload resolution: resolve conflicts with static methods in super interfaces 2017-10-24 10:57:06 +02:00
Anna.Kozlova 14cb19fa39 overload resolution: accept unqualified calls of static interface methods (IDEA-180236) 2017-10-09 15:00:48 +02:00
Anna.Kozlova dec0d16597 overload resolution: adapt return types before comparing (IDEA-177065) 2017-08-07 18:28:03 +02:00
Anna Kozlova d31ca80cac testdata for IDEA-158047 2017-05-10 20:35:34 +03:00
Anna Kozlova 77f4894aae inference errors: make applicability error thread safe so multiple threads can perform overload resolution of parent method calls independently, save presentable error when substitutor cached only 2017-05-08 12:12:13 +03:00
Anna.Kozlova b893701408 overload resolution: same signatures should not check return types, etc already processed in hierarchical signatures (IDEA-172129) 2017-04-28 20:23:23 +02:00
Anna.Kozlova 16b0cce4f6 overload resolution: don't skip static method conflicts in classes in hierarchy (IDEA-171617) 2017-04-19 14:01:07 +02:00
Anna.Kozlova 9dfdd49e17 find class or interface to search the method: stop when accessible method is found even with static problem (IDEA-169504) 2017-03-15 10:41:42 +01:00
Anna.Kozlova af3deb08fe overload resolution: ensure cleanup both branches of conditional (IDEA-169142) 2017-03-06 15:14:54 +01:00
Anna.Kozlova 8f533a3edc overload resolution: don't ignore method with incorrect number of parameters when it overrides vararg method (IDEA-165829) 2016-12-27 11:29:37 +01:00
Anna.Kozlova ccb61093af overload resolution: don't choose most specific method based on boxing property for vararg position (IDEA-163597) 2016-11-17 17:10:53 +01:00
Anna.Kozlova 3797d3ea1c ensure ambiguity error presentation doesn't depend on previous calls to getSubstitutor() 2016-10-21 18:07:07 +02:00
Anna Kozlova f4dae32d7f overload resolution: prefer candidates with functional formal type if lambda is passed; this way conflict would be resolved and nested error would be shown instead 2016-09-16 08:34:15 +03:00
Anna Kozlova 1bece25b95 inference: when unchecked conversion was applied, resolve variables against raw substitutor 2016-08-17 13:53:02 +03: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 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 1bc380f6fd overload resolution: skip static correctness check during overload resolution (IDEA-154187) 2016-04-06 12:51:57 +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 bf5cd076c1 new inference: avoid inferring partly raw types (in case of unchecked conversion resolve to eq/low bound or null if only upper is present) as these types won't be treated as wildcard parameterized ever (IDEA-150167) 2016-03-24 11:48:06 +01:00
Anna.Kozlova c5c96608b7 most specific check for proper functional types fixed 2016-03-21 19:35:58 +01:00
Anna.Kozlova a3aca75748 overload resolution: testdata for java 8 bug 2016-03-21 19:35:58 +01:00
Anna.Kozlova dcbb728074 testdata for IDEA-153076 2016-03-16 15:35:39 +01:00
Anna Kozlova 7cfcb1bb69 testdata based on IDEA-152768 2016-03-14 17:48:06 +01:00
Anna Kozlova 8b16402ca3 overload resolution: proceed with additional constraints when qualifier type is calculated (IDEA-151409) 2016-02-19 19:18:43 +01:00
Anna Kozlova 779d43a6df testdata for IDEA-151823 2016-02-19 19:18:43 +01:00
Anna Kozlova a6625994fb overload resolution: don't skip errors from another context (IDEA-151119) 2016-02-02 14:38:40 +03:00
Anna Kozlova a035c14d75 overload resolution: don't include constraints on functional expressions into applicability check during overload resolution (IDEA-150745) 2016-01-26 17:30:03 +03:00
Anna Kozlova a166bd1059 overload resolution: infer most specific agains formal param types substituted against site substitutor, including param bounds (IDEA-150773) 2016-01-25 18:52:15 +03:00
Anna Kozlova 883f7f3f39 overload resolution: apply site substitution before potential compatibility check (IDEA-150807) 2016-01-25 18:52:15 +03:00
Anna Kozlova 3baa03058b overload resolution: ensure all list of parameters is checked during most specific check of varargs methods (IDEA-150224) 2016-01-11 16:36:11 +01:00
Anna Kozlova d9aeacbf48 overload resolution: don't prefer generic to raw substitution (IDEA-149289) 2015-12-28 10:27:00 +01:00
Anna Kozlova c81d887251 ensure potential compatible for pertinent to applicability: when number of parameters is wrong methods which are not potentially compatible are not filtered (IDEA-149103) 2015-12-09 19:28:03 +01:00
Anna Kozlova b580d8eccb AIOOBE 2015-12-03 19:11:09 +01:00
Anna Kozlova e8111b751e new overload resolution: don't treat array type of functional interfaces as functional interface (IDEA-148726) 2015-12-02 17:56:08 +01:00
Anna Kozlova 878ac5560e overload resolution: boxing should ignore null types (IDEA-148692) 2015-11-30 19:45:19 +01:00
Anna Kozlova 621795bbee isApplicability check based on pertinentToApplicability 2015-11-30 15:11:41 +01:00
Anna Kozlova 169b42916e new inference: don't treat void as primitive type to boxing 2015-11-25 12:25:02 +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 d13663483d overload resolution: choose one of overload equivalent abstract methods arbitrarily (IDEA-146261) 2015-10-12 20:15:40 +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 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 c111105d30 cache diamond inference results 2015-09-30 10:59:13 +02: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
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 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 303edac35e functional type erasure: check if resulted type functional (IDEA-142341) 2015-07-07 14:55:14 +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 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