Commit Graph

868 Commits

Author SHA1 Message Date
Anna Kozlova 88586f6ab9 method refs: captured wildcard at receiver position
EA-77434 - assert: PsiMethodReferenceCompatibilityConstraint.getParameterizedTypeSubstitutor
2016-01-04 19:25:03 +01:00
Anna Kozlova 105f33870f method references with qualifier with captured wildcard type: retrieve upper bound as it is done for method calls 2015-12-30 18:56:58 +01:00
Anna Kozlova 6aa61227df method reference: replace raw substitutor from second search with inferred substitutor and don't forget super class substitution (IDEA-149488) 2015-12-30 15:29:56 +01:00
Anna Kozlova 242cd356a7 method reference: additional diagnostics for invalid method references (IDEA-149688) 2015-12-29 16:46:58 +01:00
Anna Kozlova 210217ecfa new inference: already resolved vars can't have bounds problems (IDEA-149740) 2015-12-29 16:46:58 +01:00
Anna Kozlova 46ce9ed914 testdata for IDEA-149774 2015-12-28 19:07:22 +01:00
Anna Kozlova c4711f94ef testdata for IDEA-149709 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 29e713bb7e testdata for IDEA-149670 2015-12-28 14:57:27 +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 aa70efc9a4 testdata for IDEA-149224 2015-12-28 10:27:00 +01:00
Anna Kozlova 132bb137a1 don't show error on method reference if functional expression is located inside invalid context without target functional type 2015-12-10 19:52:16 +01:00
Anna Kozlova 3f72d428a8 method references: show candidates if overload resolution failed (IDEA-148974) 2015-12-10 17:01:55 +01:00
Anna Kozlova a04d90243b method reference: preserve all conflicts to have navigation target 2015-12-10 17:01:55 +01:00
Anna Kozlova 7249fd8179 lambda: missed ground type for target functional type (IDEA-149053) 2015-12-09 22:03:56 +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 a15905ae13 conditional expression type: check poly expression first (IDEA-148965) 2015-12-08 09:37:18 +01:00
Anna Kozlova b580d8eccb AIOOBE 2015-12-03 19:11:09 +01:00
Anna Kozlova 65194fd5f0 testdata for IDEA-127215 2015-12-03 19:11:09 +01:00
Anna Kozlova 4768643b60 new inference: capture implicit param types (IDEA-132716) 2015-12-03 19:11:09 +01:00
Anna Kozlova 36ea2f9041 testdata for IDEA-148841 2015-12-03 15:27:26 +01:00
Anna Kozlova c16a53a9fb do not open capture when method call type is calculated 2015-12-03 12:18:25 +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 2bb333cd43 testdata for IDEA-136325 2015-12-02 15:42:02 +01:00
Anna Kozlova 5ac3bde398 testdata for IDEA-148093 2015-12-02 15:42:02 +01:00
Anna Kozlova 5dad1d7009 new inference: process captured wildcard with array type bound 2015-12-02 10:57:27 +01:00
Anna Kozlova 3a669178f5 do not open captured wildcards on substitution; don't capture wildcards on getExtendsTypes for type parameters and their consequences 2015-12-02 10:17:29 +01:00
Anna Kozlova f5228ff75b new inference: don't start inference if new expression contains type args (IDEA-148621) 2015-11-30 19:45:19 +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 e740dbe245 testdata for IDEA-148553 2015-11-27 18:04:56 +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 169b42916e new inference: don't treat void as primitive type to boxing 2015-11-25 12:25:02 +01:00
Anna Kozlova fc288cf04d new inference: don't add primitive equals bounds 2015-11-24 20:00:29 +01:00
Anna Kozlova 952a9be315 additional testdata for nested lambda inference 2015-11-24 20:00:29 +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 138bd5a034 new inference: provide diagnostics on failed inference (strict subtyping constraints); don't resolve vars before incorporate - this way captures won't be opened too early 2015-11-24 10:30:21 +01:00
Anna Kozlova e7d095d85f new inference: provide diagnostics on failed inference (checked exceptions) 2015-11-24 10:30:21 +01:00
Anna Kozlova be2db1f940 new inference: report inference errors of containing call for lambdas 2015-11-20 21:47:13 +01:00
Anna Kozlova 6bec6fdf0f testdata IDEA-131282 2015-11-20 21:47:13 +01:00
Anna Kozlova 61f120b30e new overload resolution: first check that collected methods are potentially compatible with args; for generic methods without specified type arguments this already means that they are applicable; for non generic methods (or raw method calls) expressions should be compatible with parameter types (formal parameter types = actual types as substitutor is known) (IDEA-147798) 2015-11-20 18:22:02 +01:00
Anna Kozlova b4396c8f98 new inference: register incompatible message if inference fails (IDEA-131882; to be extended); filter out candidates if inference had failed for them 2015-11-19 20:43:59 +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 e1f9d33a32 testdata for IDEA-147873 2015-11-13 16:07:17 +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 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