Ilmir Usmanov
0c0710bb79
Fix outer class accesses inside suspendImpl functions
...
We need to generate this$0 fields to get to the outer class and generate
accesses to these fields inside suspendImpl function.
#KT-46214 Fixed
2021-04-27 10:44:18 +02:00
Mikhael Bogdanov
dfc6d85aee
Enable runtime string concatenation by default (for -Xjvm-target=9 or greater)
...
#KT-42522 Fixed
2021-04-27 09:08:28 +02:00
Ilmir Usmanov
dc2485ae71
Support suspend functions as superinterfaces
...
Forbid mixing suspend and non-suspend functional supertypes.
Since JVM BE generates suspend functional types as non-suspend ones
with SuspendFunction marker interface, there is not way to distinguish
non-suspend functional type from suspend one if they are mixed.
#KT-18707 Fixed
2021-04-26 22:14:32 +02:00
Dmitriy Novozhilov
9cb740bfdb
Fix tests broken in c6fa3634
2021-04-26 15:11:46 +03:00
Steven Schäfer
a1c1a32515
JVM: Fix unsigned literals in API version < 1.5
2021-04-26 15:11:45 +03:00
Mark Punzalan
1835185b16
FIR: Remove duplicated diagnostics on annotations on types.
2021-04-26 15:11:43 +03:00
Mark Punzalan
e69b729e21
FIR checker: Create a new kind of checker FirTypeChecker and add
...
FirSuspendModifierChecker to report WRONG_MODIFIER_TARGET for `suspend`
on non-functional types.
2021-04-26 15:11:41 +03:00
Mark Punzalan
b88913af1d
FIR checker: Report WRONG_MODIFIER_TARGET for suspend on
...
non-functional types.
2021-04-26 15:11:39 +03:00
Mark Punzalan
9a4742c08d
FIR: Properly build nullable suspend function types, and aggregate
...
modifiers and annotations within KtTypeReference/REFERENCE_TYPE nodes.
2021-04-26 15:11:38 +03:00
Mark Punzalan
9cf5ac1fbd
FIR: Render "?" on nullable function types.
2021-04-26 15:11:37 +03:00
Mikhail Glukhikh
29d2a6acee
FIR: fold String arguments inside string concatenation call
...
Related to KT-28006
2021-04-26 12:50:57 +03:00
Mikhail Glukhikh
f278de8768
FIR: don't call toString() inside string concatenations
2021-04-26 12:50:55 +03:00
Igor Chevdar
7dcdbf283b
[box-tests] Added test
2021-04-26 11:53:27 +05:00
Alexander Udalov
0c3f2eefe0
Migrate bytecodeListing tests to new test infrastructure
2021-04-23 17:58:16 +02:00
Alexander Udalov
7e170770ea
Minor, move around bytecode listing tests
2021-04-23 17:58:16 +02:00
Mikhail Glukhikh
5c224ad17c
FIR: fix positioning in fun interface checker
2021-04-23 17:29:34 +03:00
Артём
393a19db54
FIR: introduce FunInterfaceDeclarationChecker
2021-04-23 17:29:25 +03:00
Victor Petukhov
867d7b5bca
Allow type variable fixation into intersection type if it isn't meaningless (i.e. has one or more final classes, or two or more open classes)
...
^KT-46186 Fixed
2021-04-23 15:12:13 +03:00
Ilmir Usmanov
f7a9bc3521
Minor. Make test actually suspend and add a test without suspension
2021-04-23 03:50:08 +02:00
pyos
23ffbe4d9e
JVM_IR: do not box inline classes in suspend multifile bridges
2021-04-23 03:49:47 +02:00
pyos
7d95943b8b
JVM_IR: do not box inline classes in suspend synthetic accessors
2021-04-23 03:49:43 +02:00
Jinseong Jeon
24d792fb49
FIR checker: warn useless elvis
2021-04-22 13:10:54 +03:00
Alexander Udalov
b2005302dc
JVM, JVM IR: erase generic SAM supertypes
...
Also, do not try to use invokedynamic on SAM calls with intersection
types, because intersection type is not allowed as an immediate type
projection of a supertype, and constructing a fake override in
LambdaMetafactoryArgumentsBuilder led to an exception. This fixes the
problem which was worked around earlier in e6c089ef , effectively
reverting that commit.
The main motivation for this change is that LambdaMetafactory also
doesn't generate generic signature for SAM wrapper classes at runtime.
Since these classes are synthetic, nobody should rely on the fact that
they have generic supertypes, which was observable only via Java
reflection.
#KT-46149 Fixed
#KT-46238 Fixed
2021-04-22 10:53:15 +02:00
Mikhail Glukhikh
e6b9935df9
FIR: drop source-based check from InferenceUtils
2021-04-22 10:26:47 +03:00
Dmitry Petrov
5324cbe729
Minor: update tests
2021-04-21 19:10:32 +03:00
Steven Schäfer
8c9ad81c76
Psi2Ir: Fold constants when generating IR
...
This is necessary to avoid stack overflow errors on large constant
expressions.
2021-04-21 19:10:31 +03:00
Steven Schäfer
d3d4e94cd6
JVM: Fix constant folding for unsigned values
2021-04-21 19:10:31 +03:00
Dmitry Petrov
732405895f
Add tests for KT-45308
2021-04-21 17:36:12 +03:00
Dmitry Petrov
f228c3bb04
Add tests for KT-45236
2021-04-21 17:24:41 +03:00
pyos
e6d923f65c
FIR: rename HIDDEN to INVISIBLE_REFERENCE
...
Some of them should be INVISIBLE_MEMBER though
2021-04-21 16:18:21 +03:00
Alexander Udalov
7fe10e27a1
Minor, fix failing codegen tests on different JDKs
...
#KT-46238
2021-04-21 14:43:10 +02:00
Mikhail Glukhikh
e0c8a6658b
FIR: handle annotations on non-containers more precisely
2021-04-21 13:22:10 +03:00
Alexander Udalov
27ddc31f15
Ignore codegen test using streams on Android
2021-04-21 11:39:08 +02:00
Dmitry Petrov
59de12c609
Minor: mute bytecode text check in some box tests failing in FIR
2021-04-21 11:27:12 +03:00
Dmitry Petrov
f519150c08
JVM_IR KT-46189 lower tailrec functions after local declarations
2021-04-21 11:27:11 +03:00
Alexander Udalov
21e9bd7ea2
Add regression tests for obsolete issues
...
#KT-9304
#KT-14961
#KT-16549
#KT-21080
#KT-28234
#KT-30102
#KT-31994
#KT-34291
#KT-38099
#KT-41174
#KT-44622
#KT-44701
#KT-44781
#KT-44849
#KT-44978
#KT-45081
#KT-45286
#KT-45383
#KT-45444
#KT-45907
2021-04-20 21:24:29 +02:00
Alexander Udalov
e6c089ef40
IR: fix SAM conversion for types with contravariant intersection argument type
...
In the added test, the problem was that the SAM type as computed by
`SamTypeFactory.createByValueParameter` was `Consumer<{BaseClass &
BaseInterface}>`, which was latter approximated in psi2ir during the
KotlinType->IrType conversion to `Consumer<out Any?>` (here:
https://github.com/JetBrains/kotlin/blob/3034d9d791cf1f9033104e12448e0d262d3bc3ce/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ArgumentsGenerationUtils.kt#L606 ),
because intersection type argument is approximated to `out Any?`.
To avoid this, replace intersection type in immediate arguments of a SAM
type with the common supertype of its components at the same place where
we're getting rid of projections.
#KT-45945 Fixed
2021-04-20 17:31:14 +02:00
Andrey Zinovyev
5fc1514104
[FIR][LightTree] Better expression identification
...
And some refactoring
Regenerate IDE parts
2021-04-20 18:13:06 +03:00
Andrey Zinovyev
2f7d6da22f
[FIR][LightTree] Generate and fix missing tests
...
Add TYPE_PARAMETERS_LIST positioning
Use whole branch as source in when branches
2021-04-20 18:13:05 +03:00
Andrey Zinovyev
b9ae22207e
[FIR] Fix tests data for diagnostic tests
...
For tests failed after light tree changes
2021-04-20 18:13:03 +03:00
Andrey Zinovyev
ee48fc320d
[FIR][LightTree] Mark fake nodes in FOR loop
...
+ fix bunch of tests
2021-04-20 18:13:02 +03:00
Andrey Zinovyev
0a68edf3bd
[FIR][LightTree] More fixes in diagnostic positioning
...
Keep tree padding for modifiers
More REFERENCE_EXPRESSIONS kinds
Fix source for some call expressions
2021-04-20 18:13:01 +03:00
Andrey Zinovyev
27766c2575
[FIR] Consistent isLocal for objects inside Enum entries
2021-04-20 18:12:51 +03:00
Andrey Zinovyev
088db0e138
[FIR] Report SEALED_CLASS_CONSTRUCTOR_CALL on expression
2021-04-20 18:12:46 +03:00
Andrey Zinovyev
dcbb1fb22b
[FIR][LightTree] Extract syntax errors from subtrees
2021-04-20 18:12:45 +03:00
Igor Yakovlev
e4870740e1
[LC] Fixed light classes nullability for Kotlin 1.5
...
Fixed #KT-44472
2021-04-20 15:21:12 +02:00
Igor Yakovlev
63160293fb
[LC] Fix invalid nullability for properties
...
Fixed #KT-46097 and #KT-41671
2021-04-20 15:21:12 +02:00
Alexander Udalov
4fffed4165
Improve test on equals/hashCode for KProperty accessors
...
Remove duplication & unnecessary checks, check equality in both
directions, check hashCode, add more cases, rename variables for
clarity.
#KT-13490
2021-04-19 20:39:54 +02:00
Xin Wang
c959b271a4
Override "hashCode" and "equals" for Getter and Setter to fix KT-13490
2021-04-19 20:39:54 +02:00
Dmitry Petrov
46d5e974df
JVM_IR KT-46160 don't use LambdaMetafactory for mutifile class members
2021-04-19 19:32:34 +03:00