Commit Graph

1016 Commits

Author SHA1 Message Date
Anna.Kozlova 8b768f2e94 inference: skip constraints and everything dependant above overload resolution 2018-11-15 16:31:25 +01:00
Anna.Kozlova c4393bfa0e inference: skip constraints that depend on ignored constraints
when type of lambda parameter is calculated, the containing lambda doesn't end in the constraints set; if some other constraints depend on it's output variables, inside those constraints e.g. method calls may be cached based on incomplete inference results which would lead to blinking of highlighting
2018-11-14 15:18:08 +01:00
peter 1c50ca6d08 java completion: remove irrelevant suggestions after Unresolved:: (IDEA-201798)
to enable chain completion, which only works when there are no other suggestions
2018-11-08 09:22:18 +01:00
Anna.Kozlova af3e15a689 highlight method call: don't ignore args with applicable calls as they may still cause parent call incompatibility
IDEA-201175
2018-10-25 16:20:56 +02:00
Anna.Kozlova 50b66d9d4b method reference overloads: second search should provide actual parameter types with 1 offset (IDEA-200218) 2018-10-22 17:02:20 +02:00
Anna.Kozlova 9aa64b30d9 inference: allow child session inference if containing method is not generics 2018-10-19 17:52:43 +02:00
peter c9694995ac IDEA-199875 Rank println higher than print 2018-10-05 11:25:23 +02:00
Anna.Kozlova 779291d906 ensure fresh variables for the same context don't conflict by names (IDEA-196642) 2018-08-06 19:35:12 +02:00
Anna.Kozlova fbb178fb85 inference: check intersection type for raw conversion separately (IDEA-196523) 2018-08-01 11:52:03 +02:00
Anna.Kozlova 16f0977481 diamonds: simulate resolved constructor with generated static factory (IDEA-195813) 2018-07-23 19:20:55 +02:00
Anna.Kozlova 378ea0e334 don't fail to attach fixes on invalid code
EA-122929 - IOE: PsiJavaParserFacadeImpl.createExpressionFromText
2018-07-16 10:43:52 +02:00
Anna.Kozlova f739ddf3d4 inference: ensure all type parameters are processed on upUp bound incorporation (IDEA-194839) 2018-07-02 17:15:28 +02:00
Anna Kozlova 201de8dd01 redundant cast: trim too long messages (IDEA-182666) 2018-06-19 13:18:27 +03:00
Anna Kozlova dc43909e2c ensure no inference from not inferred var (IDEA-193828) 2018-06-13 21:00:17 +03:00
Anna Kozlova c43b6f20de completion: check parent overloads for constructor calls as well (IDEA-187354) 2018-06-05 17:13:42 +03:00
Anna Kozlova ab271fcb5b inference: partially resolve before erasure for target type inference
IDEA-192208
2018-05-28 18:54:01 +03:00
Anna Kozlova c9d3d04e73 method ref: ensure capture conversion on first arg of second search 2018-05-22 15:48:15 +03:00
Anna.Kozlova c4ada244b2 method refs: don't ignore applicability errors (IDEA-191467) 2018-05-17 11:28:24 +02:00
peter de6c52c7a0 IDEA-187747 Suggest Collectors.joining() collector for String stream 2018-05-02 16:32:48 +02:00
Anna.Kozlova 51a2d549b2 highlight only method name on unhandled exception (IDEA-190912) 2018-04-25 21:11:38 +02:00
Anna.Kozlova 74f6d68ea3 inference for method references: register new variables for raw access
IDEA-189883, IDEA-188976: according to the 15.13.1 search for member is performed in the parameterization (non-raw) type which is a subtype of the first parameter type, in this case no additional variables are required as the type contains type arguments
2018-04-11 10:19:16 +02:00
Anna.Kozlova aad9fe81c2 show error for type arguments on array creation (IDEA-189766) 2018-04-09 15:07:49 +02:00
Anna.Kozlova 686c13fd01 inference: fix index for non-proper captured wildcard bounds (IDEA-188487) 2018-03-19 17:48:41 +01:00
Anna.Kozlova e75b0faed2 inference: ensure erasure flag is pushed to the container expression
IDEA-185316
2018-03-14 17:39:04 +01:00
Anna.Kozlova 51f6813ee3 valid static method reference on class's inheritor (IDEA-187974) 2018-03-09 11:44:47 +01:00
Anna.Kozlova 36b1e622eb inference: skip bounds checking for captured fresh variables (IDEA-187943) 2018-03-08 19:06:30 +01:00
Anna.Kozlova 877b2424ce inference: don't process lambda return expressions for void return type
those lambda return expressions can't influence containing call inference according to lambda constraint; which means that no additional inference variables could be propagated during inference process hence exception constraints could operate with proper types which are in fact type parameters - which would lead to unhandled exceptions on the top level (IDEA-187930)
2018-03-08 11:53:52 +01:00
Anna Kozlova 424081efe0 interface static methods in method refs by subclass error (IDEA-187330) 2018-03-07 08:02:41 +01:00
Anna Kozlova f295742259 interface static methods in method refs by subclass error (IDEA-187330) 2018-03-07 08:02:41 +01:00
Anna.Kozlova bca21ba8c6 inference: substitution for captures (IDEA-186844) 2018-02-19 18:36:42 +01:00
Tagir Valeev 4234f0d140 EffectiveFinal tests reported in IDEA-154224, IDEA-163280, IDEA-171790 2018-02-08 13:21:31 +07:00
Anna.Kozlova be6d0a2981 false positive in redundant cast: applicable method with inference error (IDEA-186224) 2018-02-07 09:44:28 +01:00
Anna Kozlova f1536bb969 use lambda to avoid context remapping (IDEA-185448)
for anonymous class this expressions have to be encoded to point to outer class, for lambda expressions there is no need for that. Leave unchanged (array initializer) for old java versions
2018-01-30 19:38:53 +03:00
Anna Kozlova ca1d8a348c postpone highlighting on conditions when errors occur on containing call
poly conditional expression receives type from context, if context contains errors, it's better to highlight those first (IDEA-185540)
2018-01-30 11:33:49 +03:00
Anna Kozlova 04b7efb5cd don't calculate substitution for overload resolution applicability checks 2018-01-22 17:07:38 +03:00
Anna Kozlova e037922937 applicability: get call expr from anonymous class (IDEA-184965) 2018-01-15 20:27:05 +01:00
peter 9c671df7d1 complete Collectors methods inside collect() call (IDEA-181449) 2018-01-08 18:52:37 +01:00
Anna.Kozlova 52bd45c9b2 reject functional expressions as conditional condition (IDEA-184667) 2018-01-08 17:05:50 +01:00
Anna.Kozlova 20ea015d3e inference: ensure to distinguish new fresh variables of the same node 2017-12-22 10:05:44 +01:00
Anna.Kozlova 15020a138d enum constants resolution cached (IDEA-183841) 2017-12-18 10:23:01 +01:00
peter 9ad8c63df4 java completion: lambda items should be higher than recently selected items (IDEA-183824) 2017-12-15 20:12:49 +01:00
Anna.Kozlova 9e20e117d6 skip inference for incompatible method references
EA-103416 - assert: PsiMethodReferenceCompatibilityConstraint.getSubstitutor
2017-12-14 18:45:49 +01: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
peter beb4f6dba7 move completion suggestions before lambda only when they really match specific expected type (IDEA-183592) 2017-12-12 17:55:37 +01:00
Anna.Kozlova 1fc76eb779 calc types by applicability constraints if inference fails
include all inference variables for resolve and ignore additional constraints checks if the inference is going to failure; this way if (expr()) would get type of the 'standalone' expression instead of expression with boolean as expected type
2017-12-07 15:51:06 +01:00
Anna.Kozlova 6180b5b337 inference: check substituted intersection type during resolution 2017-12-06 14:54:24 +01:00
Anna.Kozlova e67bf2488b method references: do not prefer varargs from first search (IDEA-182018) 2017-11-13 16:41:50 +01:00
peter 76641748e0 java completion: prefer lambdas over method references (IDEA-181662) 2017-11-07 21:51:31 +01:00
Anna.Kozlova a2e13fee96 inference: check glb conflicts after flatten in intersection type(IDEA-181017) 2017-10-25 18:01:56 +02:00
Anna.Kozlova c8f8341d2f don't treat static method as concrete in hierarchy (IDEA-180930) 2017-10-25 18:01:56 +02:00