Commit Graph

26240 Commits

Author SHA1 Message Date
Dmitry Petrov eebb071ae9 KT-34509 Properly unwrap callable reference descriptor
NB there's a problem with callable references to SAM constructors,
see also KT-16789
2019-10-22 12:30:15 +03:00
Dmitry Petrov 7dde503697 KT-34500 Use correct loop parameter type in ForInArrayLoopGenerator 2019-10-22 12:23:59 +03:00
Igor Yakovlev bc66834c3c Fix UL classes descriptors leaks
UL classes built upon descriptors and UL support classes are saving a descriptors.
This could lead to descriptors leakage so we have to eliminate any fields with descriptor references.

Fixed #KT-34337
2019-10-21 22:04:49 +03:00
pyos 847e287bd6 JVM_IR: add $assertionsDisabled when an inlined function uses it
NOTE: jvmCrossinlineLambdaDeclarationSite.kt is muted because the
inliner does not remap references to an anonymous object's parent
class after regenerating it. Unlike the JVM backend, JVM_IR uses the
top level named class' assertion status for all inner classes. (The
test used to pass because the lambda in `inline fun call` read the
`$assertionsDisabled` field of `CrossinlineLambdaContainer`, which
was not reloaded after changing the assertion status of package `test`.)
2019-10-21 21:05:18 +03:00
Vladimir Dolzhenko 30229da95a Don't render pure error types in OverrideMemberChooserObject
#KT-34379 Fixed
2019-10-21 17:18:23 +02:00
Vladimir Dolzhenko 96198a1cd3 Report no parent KtNamedDeclaration for declaration instead of NPE in BindingContextUtils.getEnclosingDescriptor
#EA-210816 Fixed
2019-10-21 17:18:23 +02:00
Vladimir Dolzhenko 46a083cd1e Fix readAccess in ResolveSession.java on checking is a local declaration
#EA-213627 Fixed
2019-10-21 17:18:23 +02:00
Vladimir Dolzhenko 10ea8abc2b Wrap file.declarations with runReadAction
#EA-209932 Fixed
2019-10-21 17:18:04 +02:00
Alexander Gorshenev 597e760fab Broght back a condition lost during a refactoring 2019-10-21 17:41:56 +03:00
Roman Artemev 2cde7f2402 [KLIB] Fix explicitlyExported mode
- Refactor deserialization pipeline
 - Fix K/N test
2019-10-21 17:41:56 +03:00
Roman Artemev 43e855150c [KLIB] Correctly restore top level property order during deserialization - Add test - Fix KT-34273 2019-10-21 17:41:56 +03:00
Roman Artemev aecd08e562 [Psi2Ir] Fix IrText test generation 2019-10-21 17:41:55 +03:00
Denis Zharkov d902a5f304 Temporary disable assertion in bridges generation
^KT-34431 Fixed
^KT-34507 Open
2019-10-21 17:24:15 +03:00
Kristoffer Andersen 28b6913a25 JVM IR: Support parameterless main methods
This commit:

- introduces tests explicating what is and isn't considered a
  proper main method on the JVM backends.
- implements support for parameterless main methods on the JVM IR
  backend
- See KT-34338 for more tests.
2019-10-21 15:08:34 +02:00
Mads Ager 4b77db8979 Fix test to actually fail if expected exception is not thrown. 2019-10-21 15:05:32 +02:00
Mikhail Glukhikh 1a59e41224 Add JvmSymbols.String & StringBuilder for FIR mode to fix context initialization
This commit fixes in particular testFirHello
2019-10-21 16:01:35 +03:00
pyos 0c3dfca6ee JVM_IR: remove an assertion that triggers due to a frontend bug 2019-10-21 14:59:03 +02:00
Jim Sproch 383239aff6 Make useIR available from Gradle KotlinJvmOptions 2019-10-21 13:20:54 +03:00
Mads Ager 8be6a1fe8a [JVM_IR] Contain 'invokeSuspend' rewriting to the suspend function.
Do not rewrite returns in methods in nested lambda implementations.
That leads to unintended non-local returns from nested non-suspend
lambdas.
2019-10-21 13:16:57 +03:00
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 69a9559eac IR serialization: isExpect in proto and ser/deser 2019-10-21 13:04:59 +03:00
Dmitry Petrov 922b1e576d IR serialization: isExpect (TODO actual value in proto) 2019-10-21 13:04:59 +03:00
Dmitry Petrov 66b63c4296 JS_IR: isExpect 2019-10-21 13:04:59 +03:00
Dmitry Petrov e87517764d JVM_IR: isExpect 2019-10-21 13:04:59 +03:00
Dmitry Petrov 6bdc9ee65b IR BE common: isExpect 2019-10-21 13:04:59 +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
Dmitriy Novozhilov b8bc449bc3 [FIR] Fix generating of redundant empty else branch in light tree fir generator 2019-10-21 10:44:30 +03:00
Igor Yakovlev 8c65a9a2aa Move AllOpen UL support to separate extension 2019-10-18 23:22:48 +03:00
Igor Yakovlev 58b8d8868a Remove fallbacking of UL (to LightClasses) by complexity checking 2019-10-18 23:22:47 +03:00
Igor Yakovlev 3f9bffcc5f Move UL compiler plugin support to separate extension point 2019-10-18 23:22:47 +03:00
Igor Yakovlev 6ce37fff95 Add UL support for AllOpen compiler plugin 2019-10-18 23:22:47 +03:00
Igor Yakovlev 558a700f51 Add UL support for ParcelableCodegenExtension compiler plugin 2019-10-18 23:22:47 +03:00
Igor Yakovlev 110a6700e4 Add UL support for NoArg compiler plugin 2019-10-18 23:22:47 +03:00
Mikhail Glukhikh c9f6482f25 Throw exception from FIR smoke test if failure file does not exist
It's more convenient to see exception from the beginning and
not a strange message about generated .fir.fail file
2019-10-18 20:40:21 +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 78b4024ccb JVM IR: Unify the handling of IrStringConcatenation and toString 2019-10-18 17:24:12 +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
Dmitriy Novozhilov 4d43c13fb1 [FIR] Add logging to artifact in ModularizedTest for old frontend 2019-10-18 18:21:36 +03:00
Steven Schäfer 18940ab0cb JVM IR: Refactor SyntheticAccessorLowering to use a single traversal 2019-10-18 17:20:22 +02:00