Victor Petukhov
bfb46befa5
Mark projection of a nullable captured type as not null during simplification constrains with it and a nullable type variable
...
^KT-41913 Fixed
2020-09-23 17:15:57 +03:00
Dmitriy Novozhilov
10e7c0f1b2
[TEST] Fix long literal in testdata broken in 4374c06
2020-09-23 15:22:03 +03:00
Dmitriy Novozhilov
896103b94b
[FIR] Properly resolve implicit invoke calls
...
#KT-41990 Fixed
2020-09-23 14:05:11 +03:00
Dmitriy Novozhilov
4374c06537
[FIR] Approximate all integer literals which resolved in independent mode
...
#KT-42016
2020-09-23 14:05:10 +03:00
Dmitriy Novozhilov
5efd533f55
[FIR] Desugar unary plus and minus as part of integer literal
...
#KT-42016
2020-09-23 14:05:09 +03:00
Mikhail Glukhikh
b64b32e06b
FIR: keep captured types in substitution scope
2020-09-23 09:00:57 +03:00
Mikhail Glukhikh
b7059a3eeb
FIR: perform type approximation when completion isn't required
2020-09-23 09:00:57 +03:00
Mikhail Glukhikh
0310272738
FIR: perform more proper type approximation in completion
...
Note: test data change is questionable here
2020-09-23 09:00:57 +03:00
Mikhail Glukhikh
14cfc62745
FIR: fix calculation of type arguments for bare types
2020-09-23 09:00:57 +03:00
Mikhail Glukhikh
3c3aa3210e
FIR: use FROM_EXPRESSION, not FOR_SUBTYPING capt. types in substitution
2020-09-23 09:00:56 +03:00
Pavel Kirpichenkov
fdc134ff66
[NI] Use compatibility mode for KT-41934
2020-09-22 15:06:12 +03:00
Pavel Kirpichenkov
896fbbd1a3
[NI] Add extra ordering for ready-for-fixation variables
...
Helps fixing to more specific type in the following situations:
Type1 <: Var1
Var2 <: Var1
Var2 <: Type2
Type1 and Type2 may also be nullable and non-nullable versions of the same type.
Note that no additional constraints can be inferred from such constraints before fixation.
Resulting types for variables will always Type1 and Type2 may also be nullable and non-nullable versions of the same type.
Fixing Var1 first will make Var2's type more specific while fixing Var2 first
will make Var1's type less specific. The first is preferrable in general.
2020-09-22 15:06:12 +03:00
Mark Punzalan
8cac3f654c
[FIR] Handle pre/postfix dec/increment of labeled expression
2020-09-22 11:06:27 +03:00
Alexander Udalov
6f622920e7
Minor, deduplicate matching JVM_OLD/JVM_IR duplicateJvmSignature tests
2020-09-21 18:49:36 +02:00
Mads Ager
05c662ec55
[JVM_IR] Remove line numbers from delegated member functions.
...
This fixes smart step into for delegated member functions.
Additionally, we align on the string "memberFunctionName(...)"
for expression non-null checks for both JVM_IR and JVM
backends.
2020-09-21 18:49:08 +02:00
Leonid Startsev
5f0e7c3c3f
Check return type of internal @PublishedApi functions in Explicit API mode
...
#KT-38981 Fixed
2020-09-21 17:03:06 +03:00
Mikhail Glukhikh
a9972913a6
[FIR TEST] Add some FIR_IDENTICAL to fix recently changed tests
2020-09-21 16:20:37 +03:00
Dmitry Savvinov
6db70bb97d
Minor: fix forgotten testdata after 6a55475392
2020-09-18 16:42:49 +03:00
Dmitry Savvinov
6a55475392
Dont show warning for KT-21515 with LV>=1.3
2020-09-17 18:33:19 +03:00
Dmitriy Novozhilov
d4891cb464
[FIR] Move Jsr305State from FirSession to separate component
2020-09-17 17:23:25 +03:00
Лихолетов Михаил
cfc1ebb4be
[FIR] Support several annotation argument diagnostics
2020-09-16 16:53:31 +03:00
Mikhail Glukhikh
0c13d3197c
[FIR] Fix non-serializable type argument at the end of resolve
2020-09-16 16:53:29 +03:00
Victor Petukhov
17db188b0e
Add regression test for already fixed issue KT-41396
2020-09-16 14:02:32 +03:00
Victor Petukhov
8cabfda832
Add regression test for already fixed issue KT-41885
2020-09-15 19:03:16 +03:00
Mikhail Glukhikh
6fd3b011ca
[FIR] Simplify substitution for unsafe-variant type parameter types
...
#KT-41792 Fixed
2020-09-14 18:08:31 +03:00
Mikhail Glukhikh
3b828ac62b
[FIR] Bad test data fixes (around captured types)
2020-09-14 18:08:27 +03:00
Mikhail Glukhikh
cf5480a398
[FIR] Questionable test data fixes (around captured types)
2020-09-14 18:08:26 +03:00
Mikhail Glukhikh
4605a65f41
[FIR] Good test data fixes (around captured types)
2020-09-14 17:56:39 +03:00
Dmitriy Novozhilov
535898c8a4
[FIR] Fix processing integer operator calls for not integer types
2020-09-14 10:57:10 +03:00
Dmitriy Novozhilov
a528deef0a
[FIR] Update testdata due to previous commit and KT-37638
...
JavaSymbolProvider looks for available class names using KotlinJavaPsiFacade
which don't return package private java classes which lays in files
with names that don't match with class names, so we can not build FIR
for such classes
2020-09-11 12:13:34 +03:00
Dmitriy Novozhilov
1dc3c93efa
[FIR] Don't assume types with not found symbol as error types
2020-09-11 12:13:33 +03:00
Dmitriy Novozhilov
7f692be11e
[FIR] Properly detect callable reference type according conversions
2020-09-11 12:13:33 +03:00
Victor Petukhov
bcd33da6f8
Don't check an argument type during passing it to vararg in the named form to avoid false positives if the argument type is type variable yet
...
^KT-41144 Fixed
2020-09-10 19:38:26 +03:00
Jinseong Jeon
5fdd06676f
FIR: discriminate candidates with suspend conversion
2020-09-10 11:31:24 +03:00
Jinseong Jeon
6de8ba40c1
FIR: initial support of suspend conversion on arguments
2020-09-10 11:31:24 +03:00
Jinseong Jeon
49679f3145
FIR: map arguments for overloading indexed access operator
2020-09-10 11:25:36 +03:00
Victor Petukhov
685d16ec68
NI: don't do substitution for unsupported callable descriptors to use as callable references
...
^KT-41729 Fixed
2020-09-09 18:00:41 +03:00
Mikhail Glukhikh
db2e3f219f
[FIR] Keep bare type for type alias case
2020-09-09 12:16:09 +03:00
Mikhail Glukhikh
a7da0d5080
[FIR] Approximate exotic return types for public declarations
2020-09-03 14:24:31 +03:00
Jinseong Jeon
bf918e6184
FIR: hide local types if needed
2020-09-03 14:24:31 +03:00
Pavel Kirpichenkov
873224dfbc
[NI] Use new type substitutor for known type parameters
...
Use known type parameters substitutor after substitutor for fresh variables.
The old logic of substituions had the following order:
- replace known type parameters
- replace type parameters with type variables
- complete inference
- replace type variables with inferred types
According to the updated logic, replacement goes as follows:
- replace type parameters with type variables
- replace known type parameters; if they were variables, this will effectively remove them from inference
- complete inference
- replace remaining type variables with inferred types
Support projection substitution in new type substitutor.
It is needed for correct interaction with old type substitutor.
Old type substitutors can contain mappings constructor -> projection
which couldn't be expressed correctly with existing substitutor API in some cases.
^KT-41386 Fixed
2020-08-31 17:53:46 +03:00
Dmitriy Novozhilov
09ed0c3e82
[FIR-TEST] Update testdata
2020-08-28 10:59:54 +03:00
Dmitriy Novozhilov
b21a0213df
[NI] Get rid of FE 1.0 types in AbstractTypeApproximator
2020-08-28 10:59:51 +03:00
Dmitriy Novozhilov
f247cc3165
[NI] Properly detecting suitability of candidate for builder inference
...
#KT-41430 Fixed
2020-08-28 10:34:18 +03:00
Dmitriy Novozhilov
9cde42e2bc
[NI] Fix shouldRunCompletion for builder inference session
...
#KT-41308 Fixed
#KT-41363
2020-08-27 16:51:12 +03:00
Dmitriy Novozhilov
e98cbf81cf
[NI] Don't always complete builder inference lambda in FULL mode
...
#KT-41164 Fixed
2020-08-27 16:51:11 +03:00
vldF
cb627952b2
[FIR] Checkers performance improvement
...
[FIR] Checkers performance improvement
2020-08-25 14:20:30 +03:00
Arsen Nagdalian
8b4e8a2c0c
Diagnostics: add diagnostic for reporting contract description blocks in old frontend
2020-08-25 12:58:39 +03:00
Nick
05cfb654ba
[FIR] Fix removeAtInt test
2020-08-24 13:38:43 +03:00
Nick
aeae898b94
[FIR] Fix issues with properties' fake sources
2020-08-24 11:06:45 +03:00