Ilmir Usmanov
d17afddaa9
JVM_IR: Fix bridges generation for suspend functions
...
Use view's signature as jvm signature.
2020-01-20 16:00:34 +01:00
Ilmir Usmanov
2507e2b526
JVM_IR: Fix parents of $$forInline companions
2020-01-20 16:00:33 +01:00
Ilmir Usmanov
7167d5f75c
JVM_IR: Generate $$forInline companion for transformed crossroutines
2020-01-20 16:00:33 +01:00
Ilmir Usmanov
64c1446fbe
JVM_IR: Generate $$forInline companion for suspend inline functions
...
Set isInline flag for $$forInline functions. Otherwise, SMAP will not be generated
for inner objects/lambdas, leading to error in inliner.
2020-01-20 16:00:32 +01:00
Ilmir Usmanov
4ef2ecf9a9
JVM_IR: Add returns unit marker if suspend call returns unit
2020-01-20 16:00:32 +01:00
Dmitriy Novozhilov
5cb7cf040a
Update some testdata according switching compiler to 1.4
2020-01-20 16:41:46 +03:00
Mikhail Zarechenskiy
5c5635ce20
Fix codegen & bytecode tests after unifying exceptions in JVM backend
...
See KT-22275 for details
2020-01-20 16:36:03 +03:00
Mads Ager
1ed7e33f42
JVM_IR: Fix default argument bit mask for methods made static.
...
When called by reflection the bit mask will be generated
discounting dispatch/extension receivers. Make sure that the
interpretation of the bit mask is consistent for direct and
reflective calls.
In addition, this also fixes the modifiers on java 8 parameter
metadata for the dispatch and extension receivers for these
inline class methods.
2020-01-20 12:59:25 +01:00
Mads Ager
33a24bfd27
JVM_IR: Avoid using parent name in name of captures.
...
If parent is an anonymous object that could lead to the use
of names such as `$this$no name provided` which is invalid
in dex files.
2020-01-20 10:49:46 +01:00
Pavel Kirpichenkov
cb0b44273d
[NI] Check stub types in result type
...
An uninferred parameter stub may leak through calculation of CST(Inv<Uninferred Stub>, Nothing) into a result type.
A stub type in the result type means a type error. So we can afford recalculating
CST with stub-containing types filtered out, since its an error anyway.
This prevents stub types leakages and helps with reporting type error diagnostics.
KT-35914 Fixed
KT-35943 Fixed
2020-01-20 11:11:31 +03:00
Alexander Udalov
3c4e5d7615
Fix JvmFieldInInterfaceCompanion.kt for language version 1.4
...
Since 1.4, constant value is no longer written to the class file (and
thus cannot be read) for non-const properties. But in sources,
corresponding property descriptors still have the initializer which is
rendered to text. Therefore we disable the source-vs-binary check and
update the test data to check the new behavior.
2020-01-17 20:35:46 +01:00
Mikhail Zarechenskiy
58c235e722
Set up tests for fun interfaces for JVM backend for now
2020-01-17 19:37:48 +03:00
Mikhail Zarechenskiy
76a78fe918
FIC: render fun before interfaces in descriptor renderer
2020-01-17 19:37:48 +03:00
Mikhail Zarechenskiy
8350cf7d14
FIC: rename FunctionConversion -> FunctionalConversion
2020-01-17 19:37:47 +03:00
Mikhail Zarechenskiy
70094884ca
FIC: support suspend conversions in jvm codegen
2020-01-17 19:36:11 +03:00
Mikhail Zarechenskiy
b98d8bd7c1
Regenerate tests after rebase on master, add FIR tests
2020-01-17 19:36:11 +03:00
Mikhail Zarechenskiy
3849b5e723
FIC: add codegen tests, adapt previously tests for SAMs
2020-01-17 19:36:09 +03:00
Mikhail Zarechenskiy
b7c43fc7db
Refactoring: move test folder out of "inline classes" folder
...
It was added there by mistake
2020-01-17 19:36:08 +03:00
Mikhail Zarechenskiy
0e90d538df
FIC: propagate info about conversions for deserialized classes
2020-01-17 19:36:08 +03:00
Mikhail Zarechenskiy
fc32e8b017
FIC: Add synthetic constructors for fun interfaces aka explicit FIC
2020-01-17 19:36:05 +03:00
Mikhail Zarechenskiy
0f242a9931
FIC: Support conversions for suspend functions
2020-01-17 19:36:04 +03:00
Mikhail Zarechenskiy
f43769c50d
FIC: Add diagnostic tests
2020-01-17 19:36:03 +03:00
Mikhail Zarechenskiy
0ee977c42e
FIC: Support base version of conversions in JVM backend
...
Proper support for JVM backend will be in the further commmits
2020-01-17 19:36:02 +03:00
Mikhail Zarechenskiy
c71c1d45c6
FIC: Make SAM conversions also for fun interfaces, add base test
2020-01-17 19:36:01 +03:00
Mikhail Zarechenskiy
55935cc98a
FIC: introduce language feature, modifiers checks and basic tests
2020-01-17 19:36:00 +03:00
Mikhail Zarechenskiy
4aa195e912
FIC: Parse fun keyword in front of interface as a modifier
2020-01-17 19:35:05 +03:00
Georgy Bronnikov
174b3db723
IR: capture more type parameters for local functions.
...
Types of value parameters and captured variables, even unused, need to
be considered.
2020-01-17 19:20:19 +03:00
Victor Petukhov
437a26684d
NI: Prefer nullable lower bound to flexible one when substitution of type variable is performed and remember flexibility of type parameters based on flexibility of its upper bounds
...
^KT-32435 Fixed
2020-01-17 19:16:09 +03:00
Steven Schäfer
a49ed1eca2
JVM IR: Generate interface delegations for specialized interface defaults
2020-01-17 18:19:26 +03:00
Steven Schäfer
8746d08dd5
JVM IR: Don't skip bridge generation for concrete fake overrides
2020-01-17 18:19:26 +03:00
Alexander Udalov
463728a96a
Fix compiler test on Throws+delegation for 1.4
...
No exceptions are generated for delegation in 1.4 (see KT-35834).
2020-01-17 12:47:20 +01:00
Alexander Udalov
de683c0768
JVM IR: mute more tests after advancing language to 1.4
2020-01-17 12:47:20 +01:00
Dmitry Petrov
933ac3a16b
Fix nullable number comparisons in JS
2020-01-17 14:14:59 +03:00
Dmitry Petrov
f8341ad7eb
JVM: Update tests for IEEE 754 comparisons
2020-01-17 14:14:59 +03:00
Dmitry Petrov
d5ff1047a5
JVM: Fix IEEE 754 comparison generation for boxed numbers
2020-01-17 14:14:58 +03:00
Alexander Udalov
26f435eb90
JVM IR: mute tests which fail after advancing language to 1.4
2020-01-17 12:07:30 +01:00
Alexander Udalov
e7864c7351
Fix inlineCallsStaticMethodFromOtherPackage.kt by disabling related language feature
...
This test is not possible for 1.4, where protected calls from public
inline functions are prohibited.
2020-01-17 12:07:30 +01:00
Dmitriy Novozhilov
76b3964e96
Update testdata according to change compiler version to 1.4
2020-01-17 10:33:50 +03:00
Mikhail Zarechenskiy
4f74515508
[NI] Fix CST calculation for covariant type projections
2020-01-16 17:18:20 +03:00
pyos
6e6f4d0503
IR: close over the set of captured type parameters
2020-01-16 16:37:40 +03:00
Ilya Gorbunov
9566f329f0
Mute FIR test failures and adjust failing test data due to KT-35948
2020-01-16 15:36:19 +03:00
Ilya Gorbunov
0f6df5971b
Mute tests failing in JS_IR backend due to KT-35944
2020-01-16 15:36:16 +03:00
Ilya Gorbunov
ac790bea71
Reorganize diagnostics tests with stdlib and reflect
...
DiagnosticsTestWithStdLib now require stdlib only.
Move test data accordingly.
The only test that required kotlin-reflect is transformed into
codegen box test.
2020-01-16 15:35:58 +03:00
Ilya Gorbunov
ec6fdc5d4d
Fix noStdlib cli test
...
Replace 'isExternal' with 'name', since 'name' is still available in builtins and 'isExternal' is only accessible with a proper stdlib dependency.
2020-01-16 15:33:16 +03:00
Ilya Gorbunov
8af43155c3
Remove reflect API not actually supported in K/JS
...
#KT-32186
2020-01-16 15:33:16 +03:00
Alexander Udalov
621936e951
Do not generate Throws attribute for delegated members from Kotlin interfaces
...
#KT-31763 Fixed
#KT-35834
2020-01-16 12:43:09 +01:00
Pavel Kirpichenkov
0d393e3fd7
[NI] Update filtering of constraints with equal types
...
Make check for synthetic nullability constraint status before skipping
new constraint with nonunique type.
2020-01-16 12:01:06 +03:00
Pavel Kirpichenkov
2896642f94
[NI] Consider synthetic lower nullability constraint non-proper
2020-01-16 12:01:06 +03:00
Denis Zharkov
676c99b933
NI: Fix exception during callable references overload resolution
...
^KT-35847 Fixed
2020-01-16 10:49:49 +03:00
Mikhail Zarechenskiy
588259a034
Add feature that allows references to synthetic properties with warning
...
See KT-35933 for details
2020-01-16 09:37:34 +03:00