Denis Zharkov
59bd7364ab
Enhance bounds for type parameters after loops disconnection
...
Otherwise behavior might change because enhancement may force computation
for other type parameters in cases like:
class A<X extends Y, Y extends X> {}
See the test:
org.jetbrains.kotlin.checkers.DiagnosticsTestGenerated.Tests.J_k#testRecursiveRawUpperBound3
2020-10-08 14:00:10 +03:00
Denis Zharkov
6661814e40
Do not enhance star projections for bounds of raw types
...
We have an invariant that their lower bound is always
SomeType<Any?> and their upper bound is SomeType<*>.
Ehancing the latter to SomeType<out Any> making
lower bound not being a subtype of upper bound that breaks contract
for flexible types (fails with exception)
2020-10-08 14:00:10 +03:00
Denis Zharkov
2964d52640
Add test case for codeanalysis annotation
2020-10-08 14:00:09 +03:00
Denis Zharkov
dfb1cb8642
Minor. Rename UnknownNullness -> NullnessUnknown
2020-10-08 14:00:09 +03:00
Denis Zharkov
0b958c8ac5
Fix annotation name in test data to DefaultNullnessUnknown
2020-10-08 14:00:09 +03:00
Denis Zharkov
f3a490ee16
Support compiler flag -Xcodeanalysis-annotations
2020-10-08 14:00:09 +03:00
Denis Zharkov
6c37574fce
Rename Jsr305State -> JavaTypeEnhancementState
...
Also, rename some of the properties
It's needed to store status for codeanalysis annotation in that class
2020-10-08 14:00:08 +03:00
Denis Zharkov
2f04a1505d
Support enhancement for unbounded wildcards from codeanalysis annotations
2020-10-08 14:00:07 +03:00
Denis Zharkov
392ef9aa2b
Support type arguments enhancement from type parameters bounds
...
Currently, only works for codeanalysis annotations because
type parameters bounds are enhanced only for them
2020-10-08 14:00:07 +03:00
Denis Zharkov
e9e05c53e1
Support enhancement for type parameter based types
...
Load them as non-flexible when a relevant type parameter has non-flexible upper bound
(Currently, it only works for case of codeanalysis annotations)
2020-10-08 14:00:07 +03:00
Denis Zharkov
e27501497b
Support codeanalysis annotations on type parameters bounds
2020-10-08 14:00:06 +03:00
Denis Zharkov
82d39dd86a
Add basic support for default codeanalysis annotations
2020-10-08 14:00:06 +03:00
Denis Zharkov
517cc84f4d
Add initial support for codeanalysis annotations
2020-10-08 14:00:06 +03:00
Mikhail Glukhikh
beac3757bc
[IR text test] Minor: add forgotten .fir.txt file
2020-10-08 10:33:58 +03:00
Alexander Udalov
2f003bdcb5
Minor, add regression test
...
#KT-42527
2020-10-07 21:31:43 +02:00
pyos
dd1682510f
JVM_IR: generate accessors for inherited abstract members too
...
#KT-41468 Fixed
2020-10-07 21:23:18 +02:00
pyos
98088f739d
PSI2IR: do not generate when subjects multiple times
...
`in x` is represented as `<subject expression> in x` in psi, so
generating the entire call and then replacing the argument with a read
of a temporary results in redundant regenerations of the subject.
#KT-42054 Fixed
#KT-42455 Fixed
2020-10-07 17:22:25 +03:00
Alexander Udalov
e280416fe2
Minor, add regression test
2020-10-07 14:31:01 +02:00
pyos
a6c62d3339
JVM_IR: do not inherit delegated property trackers
...
This is no longer needed now that lambdas are generated before
`$$delegatedProperties`.
2020-10-07 14:30:36 +02:00
pyos
1190457759
JVM_IR: fix copying of receivers when unboxing inline class parameters
...
If an extension receiver is copied into a normal parameter, this may
later cause default argument masks to be shifted.
2020-10-07 13:21:50 +02:00
pyos
adcbfc7b4c
IR: add an emptiness check to all unsigned until loops
...
Unlike signed integers, a larger unsigned type does not mean a lower
minimum value, so `x - 1` can overflow even if `x` is casted to a larger
type.
#KT-42186 Fixed
2020-10-07 12:53:00 +02:00
pyos
4a03006162
Generate min/max constants as non-const in ranges tests
...
in order to make them appear as unknown values to codegen.
2020-10-07 12:53:00 +02:00
Pavel Punegov
260f66183c
Don't ignore the test on JS backend as it doesn't fail any more.
2020-10-07 12:22:49 +03:00
Pavel Punegov
a439860e12
Replace IGNORE_BACKENDs to TARGET_BACKEND for the Java test
2020-10-07 12:18:09 +03:00
Pavel Punegov
4d8ca074bc
Ignore test for the full reflection in Native
2020-10-07 12:18:09 +03:00
Pavel Punegov
33d28b44fa
Unmute typeOf tests in Native backend
2020-10-07 12:18:09 +03:00
Mikhail Glukhikh
aa4a042612
[FIR2IR] Use deepest matching symbol also for synthetic properties
...
#KT-42359 Fixed
2020-10-07 10:43:43 +03:00
Mikhail Glukhikh
fb4f27e136
[FIR2IR] Add test for problematic KT-42359
2020-10-07 10:43:38 +03:00
Jinseong Jeon
49307e243c
FIR deserializer: load annotations on default accessors
2020-10-07 09:46:40 +03:00
Mads Ager
a37f16d7a2
[IR] Do not generate line numbers for synthesized data class members.
...
Fixes KT-41903.
2020-10-06 19:53:47 +02:00
Mikhael Bogdanov
5048471835
Properly check default kind on inheriting from old DefaultImpls scheme
2020-10-06 18:10:44 +02:00
pyos
a6d5c02d9b
JVM_IR: add a transformChildren call to PropertyReferenceLowering
...
#KT-42354 Fixed
2020-10-06 17:06:34 +02:00
Dmitry Petrov
b1bd138afb
JVM_IR fix inline class <-> collection stubs issues
...
Move collectionStubMethodLowering before jvmInlineClassPhase, and make
them interact properly.
Note that some issues still remain in inline class <-> special bridges
interaction.
KT-40187 KT-42469
2020-10-06 17:08:24 +03:00
Mikhael Bogdanov
ed5c2b0565
Add tests for data class runtime string concatenation
...
#KT-35176
2020-10-06 13:20:41 +02:00
Mikhael Bogdanov
eb32a6ddbd
Add test for for kt42457 wrong behaviour. Align runtime concatenation with it
...
#KT-42457
2020-10-06 13:20:40 +02:00
Mikhael Bogdanov
39cde978d0
Minor. Rename test folder
2020-10-06 07:14:39 +02:00
Mikhael Bogdanov
d2c4be18a0
Rename runtime-string-concat option into 'string-concat'
2020-10-06 07:14:39 +02:00
Roman Artemev
a52e045c91
[IR BE] Remap references in default arg value in inner class constructor
...
Make sure that there is no reference into zombie declarations.
- fix KT-40771
- add test
2020-10-06 00:06:47 +03:00
Ilya Chernikov
d7e0649d93
Automatically add -- after script/expression in kotlin runner
...
#KT-37987 fixed
2020-10-05 22:35:58 +02:00
Mikhael Bogdanov
b27955d268
Wrong specialization diagnostic is reported on java default inheritance
2020-10-05 20:09:21 +02:00
Jinseong Jeon
2d001a46fc
FIR CFG traverser: do not skip graph enter node
...
#KT-42348 fixed
2020-10-05 19:48:12 +03:00
Jinseong Jeon
a154cf4c45
FIR checker: reproduce KT-42348
2020-10-05 19:48:11 +03:00
Jinseong Jeon
7af564c9f2
FIR: fix vararg remapping that merged named vararg
2020-10-05 12:33:03 +03:00
Mikhail Glukhikh
3cd552cb43
[FIR2IR] Process anonymous object nested classes correctly
...
#KT-42373 Fixed
2020-10-05 12:06:53 +03:00
Mikhail Glukhikh
76cdf97b6d
[FIR2IR] Set facade class for backing field properly #KT-42384 Fixed
2020-10-05 12:06:52 +03:00
Ilmir Usmanov
5e02a4efd7
Mark implicit receiver as captured if the function is expression
...
#KT-40260 Fixed
#KT-42280 Fixed
2020-10-05 09:36:54 +02:00
Jinseong Jeon
380226cba0
FIR2IR: correct dispatch receiver inside inner class constructor
2020-10-05 09:12:19 +03:00
Jinseong Jeon
aa488eabc9
FIR2IR: distinguish constructor when picking return target
2020-10-05 09:09:39 +03:00
Victor Petukhov
6c1dc43d25
Add check already fixed variables in PostponedArgumentInputTypesResolver during adding constraints on them and using inside a functional type
...
^KT-42374 Fixed
2020-10-02 18:31:54 +03:00
Dmitry Petrov
941a506885
Add test for inline classes implementing collection interfaces
...
KT-40186
2020-10-02 14:06:07 +03:00