Commit Graph

75 Commits

Author SHA1 Message Date
Anna Kozlova
04b7efb5cd don't calculate substitution for overload resolution applicability checks 2018-01-22 17:07:38 +03:00
Anna.Kozlova
1d6641db80 overload resolution: check method hiding for static only (IDEA-183712)
non-static methods should already be covered by same signatures check
2017-12-13 14:10:59 +01:00
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