Commit Graph

695 Commits

Author SHA1 Message Date
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
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