Mikhail Glukhikh
2cbdad0bb1
FIR2IR: insert implicit cast of receiver to Any for interface Any calls
2021-02-08 14:28:26 +03:00
Mikhail Glukhikh
694d69fbfa
FIR2IR: select return target inside accessor properly
2021-02-08 14:28:24 +03:00
pyos
64c5608f31
FIR: expect nullable type for elvis LHS
2021-02-08 13:00:22 +03:00
Ilmir Usmanov
cd189c0812
JVM_IR. Do not unbox Result in inline lambda
...
Since JVM_IR generates inline lambdas differently from old backend,
in this case, it generates them as normal functions.
Thus, there is no need to unbox the lambda argument.
#KT-44671 Fixed
2021-02-04 20:22:20 +01:00
Svyatoslav Kuzmich
c9cb7bc0fd
[JS IR] Update tests
2021-02-04 16:16:41 +03:00
Dmitriy Novozhilov
29b96aa15d
[Test] Properly merge box against java testdata into codegen/box
...
Previous commit about it was 3199ce03 and it was completely wrong
2021-02-04 10:53:50 +03:00
Alexander Udalov
acd8c4503b
Do not generate $suspendImpl for JvmDefault functions in interfaces
...
#KT-44533 Fixed
2021-02-03 21:37:58 +01:00
Ilmir Usmanov
5f71cd5476
Minor. Mute test on FIR
2021-02-03 19:18:29 +01:00
Ilmir Usmanov
02f845636e
JVM_IR: Box generic Result parameter in suspend lambda
...
#KT-44527 Fixed
2021-02-03 19:18:27 +01:00
Ilmir Usmanov
a30a961cf5
Minor. Throw exceptions in test coroutine builders
2021-02-03 19:18:24 +01:00
Ilya Gorbunov
87e130e77a
Remove obsolete diagnostics suppression
...
The diagnostic NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS is now
obsolete because internal constructors of inline classes became allowed.
2021-02-03 18:23:53 +03:00
Dmitriy Novozhilov
ebced14db2
[FIR] Implement suppressing diagnostics with @Suppress
2021-02-03 18:10:48 +03:00
Denis.Zharkov
d901ceb734
FIR: Fix loading Java annotations with Class[]-typed methods
2021-02-03 15:05:22 +03:00
Dmitry Petrov
ab20a8ffff
JVM_IR indy-lambdas: minor updates and fixes
...
KT-44278 KT-26060 KT-42621
2021-02-03 14:16:25 +03:00
Dmitry Petrov
088448043a
JVM_IR indy-lambdas: don't use indy for big arity lambdas
...
KT-44278 KT-26060 KT-42621
2021-02-03 14:16:24 +03:00
Dmitry Petrov
d94912ed62
JVM_IR indy-lambdas: initial implementation and tests
...
KT-44278 KT-26060 KT-42621
2021-02-03 14:16:22 +03:00
Ilya Goncharov
de3678a805
[JS IR] Add test with fun interface call inside lambda
...
^KT-44433 fixed
2021-02-03 12:13:53 +03:00
Ilya Goncharov
d6e74b9620
[JS IR] Use local scope for SAM if there are scopes
...
[JS IR] Use private for top level sam wrappers and local otherwise
^KT-44433 fixed
2021-02-03 12:13:52 +03:00
pyos
8277c96933
FIR: copy nullability when mapping type alias arguments
2021-02-03 08:38:56 +03:00
Mads Ager
6a959fefd0
[JVM_IR] Fix accessibility bridges for static protected fields.
...
Super-qualifiers have to be taken into account. Otherwise, too
few accessibility bridges will be generated which can lead to
binary compatibility issues.
2021-02-02 12:46:08 -08:00
Dmitriy Novozhilov
4bf6e58f2b
[TD] Fix directive order in codegen testdata
2021-02-02 20:37:47 +03:00
Dmitriy Novozhilov
a4e9ab90a0
[Test] Migrate :tests-different-jdk on runners which are using JUnit5
2021-02-02 17:54:51 +03:00
Dmitriy Novozhilov
3199ce03a6
[Test] Merge box against java testdata into codegen black box testsdata
2021-02-02 17:54:49 +03:00
Dmitriy Novozhilov
e62b118351
[TD] Ignore JS backends in boxAgainstJava tests
2021-02-02 17:54:49 +03:00
Dmitriy Novozhilov
99cb85ab00
[Test] Merge box against java tests into codegen black box tests
2021-02-02 17:54:47 +03:00
Dmitriy Novozhilov
49c2bfe637
[Test] Enable SMAP dump handler in boxInline tests
2021-02-02 17:53:53 +03:00
Dmitriy Novozhilov
64a300bfcd
[TD] Update testdata according to previous commit
2021-02-02 17:53:52 +03:00
Dmitriy Novozhilov
8973e3f362
[TD] Update fir directives in boxInline tests
2021-02-02 17:50:07 +03:00
Dmitriy Novozhilov
fc83dc17fe
[Test] Support USE_OLD_INLINE_CLASSES_MANGLING_SCHEME directive
2021-02-02 17:50:06 +03:00
Dmitriy Novozhilov
0768a7089c
[TD] Fix friend modules
2021-02-02 17:50:06 +03:00
Dmitriy Novozhilov
5075484c8e
[TD] Update directives in kotlinAgainstKotlin testdata
2021-02-02 17:50:05 +03:00
Dmitriy Novozhilov
5c8d555808
[Test] Move KotlinAgainstKotlin tests under BlackBoxCodegen tests
2021-02-02 17:50:05 +03:00
Mikhael Bogdanov
1ea4fa4464
Fix android test with type annotations. Remove obsolete JVM 8 flavors
...
Remove some new test cause their originals would be executed on JvmTarget6OnJvm8
2021-02-02 14:32:50 +01:00
Mikhael Bogdanov
c13f38f6df
Support proper frame maps for enumValues
2021-02-02 14:32:50 +01:00
Mikhael Bogdanov
1a044e5af4
Support proper frame maps for enum valueOf
2021-02-02 14:32:50 +01:00
Mikhael Bogdanov
16928d6e3f
Don't remove checkcast for reified values
...
#KT-35511 Fixed
2021-02-02 14:32:50 +01:00
Mikhail Glukhikh
465261e611
FIR: don't create intersection override for duplicating symbols
2021-02-02 16:25:08 +03:00
Alexander Udalov
5480faf5c5
Add tests for issues fixed in JVM IR and other obsolete issues
...
#KT-6007
#KT-16445
#KT-17753
#KT-22488
#KT-23881
#KT-24135
#KT-26360
#KT-27427
#KT-27449
#KT-27830
#KT-28042
#KT-29595
#KT-30708
#KT-32793
2021-02-01 18:29:59 +01:00
Mads Ager
593fb8770b
[FIR] Fix lookup order for statics in super chains
...
The order was reversed and the static in the top-most class
in the inheritance hierarchy would be found instead of the
lowest one.
2021-02-01 18:32:55 +03:00
Dmitry Petrov
4ec369ac5b
JVM_IR fix special bridge generation for inline classes
2021-02-01 17:57:58 +03:00
Alexander Udalov
8172ae5d89
Fix codegen test classLiteralWithExpectedType.kt on Android
...
Similar to changes in d022bb0248 , this test started to fail because
`AnnotationTarget.TYPE` is mapped to `ElementType.TYPE_USE` if JVM
target is >= 1.8. In codegen tests on Android, we're running the
emulator of version 19 which is less than 26, where `TYPE_USE` has first
appeared.
2021-02-01 15:54:01 +01:00
pyos
ad53fc931e
JVM: optimize temporary kotlin.jvm.internal.Refs as well
...
i.e. remove the condition that there must be an LVT entry. Such
temporary `Ref`s can be created, for example, by the JVM_IR backend
if a lambda inlined at an IR level (e.g. argument to `assert`/`Array`)
is the target of a non-local return from a function inlined at bytecode
level (e.g. `run`):
IntArray(n) { i ->
intOrNull?.let { return@IntArray it }
someInt
}
->
val `tmp$0` = IntArray(n)
for (i in 0 until `tmp$0`.size) {
var `tmp$1`: Int
do {
intOrNull?.let {
`tmp$1` = it // causes `tmp$1` to become an IntRef
break
}
`tmp$1` = someInt
} while (false)
`tmp$0`[i] = `tmp$1`
}
2021-02-01 15:51:31 +01:00
pyos
0f2ca5d84c
JVM_IR: support non-local break/continue in the inliner
...
Not in the frontend or psi2ir, though, so this not a complete
implementation of KT-1436, but rather a part of it that is currently
useful to make other code compile. In particular, lambdas passed to
array constructors and JVM-style `assert` are inlined as IR returnable
blocks, which are then converted into `do { ... } while (false)` loops,
so non-local returns from them become non-local `break`s.
2021-02-01 15:51:31 +01:00
Alexander Udalov
d022bb0248
Switch default JVM target to 1.8
...
#KT-29405 Fixed
2021-02-01 11:54:04 +01:00
Mikhael Bogdanov
9f9c8e3d77
Mute stream api test on Android
2021-01-29 18:22:16 +01:00
Mikhael Bogdanov
be9ef8f3c8
Remove obsolete DxChecker
2021-01-29 17:47:37 +01:00
Dmitry Petrov
5d7dc5fa39
JVM_IR indy-SAM conversions: minor updates
...
See: KT-44575 KT-44577
KT-44278 KT-26060 KT-42621
2021-01-29 12:59:48 +03:00
Dmitry Petrov
f34224ecee
JVM_IR indy-SAM conversions: tests for function references equality
...
(SAM conversion using LambdaMetafactory is not used for function refs).
KT-44278 KT-26060 KT-42621
2021-01-29 12:59:48 +03:00
Dmitry Petrov
f0abd8bc68
JVM_IR indy-SAM conversions: prohibit in crossinline lambdas
...
KT-44278 KT-26060 KT-42621
2021-01-29 12:59:47 +03:00
Dmitry Petrov
ad1d80d700
JVM_IR indy-SAM conversions: add more tests
...
KT-44278 KT-26060 KT-42621
2021-01-29 12:59:47 +03:00