Ilmir Usmanov
78b9c082e7
JVM_IR: Generate 'create' for suspend lambdas with one parameter
2019-10-21 13:15:45 +03:00
Ilmir Usmanov
5eeb2958f7
JVM_IR: Support is/as SuspendFunction operators
2019-10-21 13:15:43 +03:00
Ilmir Usmanov
6f47699796
JVM_IR: Calculate correct arity of callable reference to suspend
...
function
2019-10-21 13:15:41 +03:00
Ilmir Usmanov
b0a0399dd0
JVM_IR: Support callable references to suspend functions
2019-10-21 13:15:39 +03:00
Ilmir Usmanov
e736b782dd
JVM_IR: Support suspend lambdas with multiple parameters
2019-10-21 13:15:37 +03:00
Ilmir Usmanov
f4a7c839d3
JVM_IR: Generate as much LINENUMBER information as possible inside
...
suspend functions and lambdas.
Otherwise, when state-machine builder splits instructions and adds
LINENUMBER between states, the information becomes corrupted.
2019-10-21 13:15:35 +03:00
Dmitry Petrov
1d229b6dca
FIR2IR: isExpect
2019-10-21 13:04:59 +03:00
Dmitry Petrov
6532f29cc6
IR: isExpect
2019-10-21 13:04:59 +03:00
Dmitriy Novozhilov
4df4c58a05
[FIR] Resolve type of when expression to Unit if it is not exhaustive
2019-10-21 11:59:44 +03:00
Steven Schäfer
eb744cc9e1
JVM IR: Fix constant folding for unsigned toString
2019-10-18 17:24:53 +02:00
Steven Schäfer
c905209504
JVM IR: Lower IrStringConcatenation
2019-10-18 17:24:53 +02:00
Steven Schäfer
c2de89cb8c
Minor: Make String.valueOf bytecode tests more precise
2019-10-18 17:24:12 +02:00
Steven Schäfer
64aa50a921
Add more tests for SAM wrappers
2019-10-18 17:22:58 +02:00
Steven Schäfer
c3d0a7582c
JVM IR: Fix names, caching, and visibilities for SAM wrappers used in inline functions.
2019-10-18 17:22:58 +02:00
Steven Schäfer
f2e0c1a930
JVM IR: Minor fix for nullable SAM wrappers
2019-10-18 17:22:58 +02:00
Steven Schäfer
3098723406
Minor: Fix outdated test
2019-10-18 17:20:22 +02:00
Steven Schäfer
21af7dfbe1
Add tests for constructors taking inline class arguments
2019-10-18 17:20:22 +02:00
Steven Schäfer
9389d88232
JVM IR: Hide constructors with inline class parameters
2019-10-18 17:20:22 +02:00
Mikhail Glukhikh
91a58fffb8
Add CLI test for K/javac project with non-transitive dependency, KT-33932
2019-10-18 12:29:05 +03:00
Mikhail Glukhikh
87e2f9d96b
Add CLI test for K/javac project with K/J interdependency
...
Yet this test fails if JavacWrapper does not add Kotlin output dir to classpath
2019-10-18 12:02:04 +03:00
pyos
d1f25d1c26
JVM_IR: discard results of nonexhaustive whens' branches
2019-10-17 15:41:42 +02:00
Dmitriy Novozhilov
f19a878948
[FIR] Add exhaustive checker for when expressions
...
Also remove generating default else branch introduced in 38fa0122 and 54eb4cf9
2019-10-17 16:20:59 +03:00
Dmitriy Novozhilov
25e853606e
[FIR] Add deserialization of inheritors of sealed classes
2019-10-17 16:20:59 +03:00
Mikhael Bogdanov
c78dbaf6b3
Initializer default values in 'tailrec' method in proper order
...
#KT-31540 Fixed
2019-10-17 13:06:36 +02:00
pyos
27094d0371
JVM_IR: fix synthetic accessor generation (again)
...
Turns out private inline functions *can* be called from other classes.
2019-10-17 12:38:19 +02:00
Steven Schäfer
4878c7967a
JVM: Handle inline class equality in when statement with declaration
...
#KT-34268 Fixed
2019-10-16 19:23:49 +02:00
Alexander Udalov
d0b241b681
Minor, fix typo in -include-runtime argument help
...
#KT-34240 Fixed
2019-10-16 15:00:03 +02:00
Mikhael Bogdanov
adae629258
Report diagnostic on virtual tailrec function
...
#KT-18541 Fixed
2019-10-16 13:02:31 +02:00
Mads Ager
8305baa5fe
[JVM_IR] Avoid unbounded recursion for recursive suspend functions.
...
Additionally, deal with primitive types in AddContinuationLowering.
2019-10-16 13:50:52 +03:00
Georgy Bronnikov
ed6ca7d67e
JVM_IR: fix for SingletonReferencesLowering
...
When replacing an enum entry reference with `this`, you need to take
`this` from the function's `dispatchReceiverParameter`, not the class's
`thisReceiver`. Otherwise the code generator fails to find the reference
among accessible variables.
2019-10-16 13:19:40 +03:00
Georgy Bronnikov
f3cae210f8
JVM_IR: handle type parameters in constructors for @JvmOverloads stubs
2019-10-15 14:55:18 +03:00
pyos
d3992826e4
JVM_IR: discard parameter annotations in anonymous object constructors
2019-10-14 14:54:44 +02:00
pyos
bc4be53569
JVM: generate $assertionsDisabled before inlining the node
...
This fixes the problem where compiling a class initializer that contains
a call to an `assert`ing function in a separate module causes the
assertion to always be enabled (i.e. the attached test used to fail in
CompileKotlinAgainstInlineKotlin mode).
2019-10-11 14:54:52 +03:00
Leonid Startsev
1ed4930a2e
Fix failing tests after 395d595b
2019-10-11 14:24:51 +03:00
Georgy Bronnikov
1abdcf3f57
JVM_IR: support function references with default parameters
2019-10-11 13:30:30 +03:00
pyos
301e3d27fd
JVM_IR: "fix" reified type parameter scope check
...
where "fix" means "work around a bug that is much harder to fix". When
lambdas are extracted into the nearest class, captured type parameters
are not transformed into type parameters of the new method; because of
this, to check whether a reified type parameter is captured by a method
we need to check the outermost named function, not the current function.
2019-10-10 14:54:13 +02:00
Georgy Bronnikov
c70b2e3e4b
JVM_IR: specify correct type for defaultConstructorMarker arguments
2019-10-10 14:07:43 +03:00
Vitaliy.Tikhonov
f59e393e37
[CLI] add support running scripts in js compiler, extract common code with jvm part
2019-10-10 12:52:06 +03:00
Vitaliy.Tikhonov
cf5a1615ea
[IR] add JsTextTest for IrScript
2019-10-10 12:52:05 +03:00
Mads Ager
92cf521e11
[IR] Deal with forward references in default argument lambdas.
...
Rely on the frontend weeding out cases that are not supported.
In psi2ir, introduce all the parameters before processing default
values.
Change the DefaultArgumentStubGenerator to generate code that
matches the behavior of the current backend.
2019-10-10 09:00:51 +02:00
Pavel Kirpichenkov
42740c8b97
Fix capturing of outer type parameters for classes declared inside init block
2019-10-09 16:01:46 +03:00
Kristoffer Andersen
9d1d6a7b1f
JVM IR: Do not generate DefaultImpls if it's empty. This revealed that InterfaceDelegationLowering was relying on the presence of DefaultImpls even when empty. Hence, simply dropping it from InterfaceLowering was not trivial. Moved default delegation in DefaultImpls to SuperType.DefaultImpls to InterfaceLowering. Clean up logic considerably, and document inter-phase dependencies.
2019-10-09 13:03:21 +02:00
Kristoffer Andersen
cc6252098f
Add a test to reveal flaw in call delegation with default implementations in interfaces.
2019-10-09 13:03:21 +02:00
Kristoffer Andersen
5cefd4e443
JVM IR: Implement -Xjvm-default=enable
2019-10-09 13:03:21 +02:00
Mads Ager
f9d117970a
[JVM_IR] Map suspend lambdas to original function for inlining.
2019-10-08 19:21:37 +03:00
pyos
b6a1154672
Add a test for non-null assertions in local classes/functions
2019-10-08 17:19:41 +02:00
pyos
06c00f4d9e
Unmute some JVM_IR inlining tests
2019-10-08 17:19:41 +02:00
pyos
cea69e0706
JVM_IR: do not generate redundant load+stores before inline calls
2019-10-08 17:19:41 +02:00
pyos
07bde889b4
JVM_IR: generate more correct names for regenerated objects
...
and fake lambda types, too. (But those only matter for debugging.)
Also, share object name generators between methods with the same name to
avoid rewriting objects from one with objects from the other.
2019-10-08 17:19:41 +02:00
pyos
432ba62143
JVM_IR: omit annotations on outer this parameters
2019-10-08 14:41:05 +02:00