Ilmir Usmanov
7956ef18b2
Generate RETURN instead of ARETURN if (cross)inline suspend lambda returns Unit
...
#KT-30073 Fixed
2019-03-18 14:04:02 +03:00
Ilmir Usmanov
0c0f035241
Set default value of releaseCoroutines in TypeSignatureMapping to true
2019-03-14 15:06:07 +03:00
Alexander Udalov
584137121b
Do not write version requirements in metadata for lambdas
...
#KT-29790 Fixed
2019-03-12 18:53:08 +01:00
Mikhail Zarechenskiy
f95fdb3cf1
Advance bootstrap to include fix in NI about Nothing-expressions
...
See 1594c1fc for details. Also, remove fix from f07fed9a .
2019-03-12 15:27:12 +03:00
Alexander Udalov
d12e5ddafc
Generate bytecode for array intrinsics manually
...
#KT-28285 Fixed
2019-03-11 18:36:10 +01:00
Alexander Udalov
dd0b087b92
Add StackValue.put(InstructionAdapter) for convenience
2019-03-11 18:36:09 +01:00
Ilya Gorbunov
f07fed9afa
Temporary fix to avoid runtime exception due to incorrect inferred type
...
Caused by: java.lang.ClassCastException:
kotlin.collections.EmptySet cannot be cast to java.lang.Void
at org.jetbrains.kotlin.codegen.coroutines.CoroutineTransformerMethodVisitorKt.findSafelyReachableReturns(CoroutineTransformerMethodVisitor.kt:984)
Co-authored-by: Alexander Udalov <alexander.udalov@jetbrains.com >
2019-03-08 23:35:32 +03:00
Alexander Udalov
518b03125c
Support JVM target versions up to 12
...
#KT-26240 Fixed
2019-03-07 11:42:31 +01:00
Alexander Udalov
59fda8d7ce
Support JvmPackageName with JvmMultifileClass
...
This is an internal feature of our standard library needed to compile
new API for unsigned types
2019-03-06 15:34:23 +01:00
Alexander Udalov
ea21cda4df
Reformat MultifileClassCodegen, fix inspections
2019-03-06 15:33:45 +01:00
Ting-Yuan Huang
c1d721a15f
when: emit lookupswitch/tableswitch if possible
...
A lookupswitch or tableswitch can be used if all conditions are equality
checks to constants. To be more specific, it can be done if:
1. All conditions are CALL 'EQEQ(Any?, Any?)': Boolean
2. All types of variables involved in comparison are in the same group
of Char/Byte/Short/Int, String or enum.
3. All arg0 refer to the same value.
4. All arg1 are IrConst<*>.
Change-Id: Ifd7cb618395f6c5cc64601018b446f0bb7f5891c
2019-03-06 13:33:55 +01:00
Alexander Udalov
2bec72d46a
Additional cleanup of KotlinTypeMapper after J2K
2019-03-05 20:34:32 +01:00
Mikhael Bogdanov
20da778046
Add default values to KotlinTypeMapper constructor, remove them from call sites
...
~
2019-03-05 20:34:25 +01:00
Mikhael Bogdanov
cc0c3b1592
Specify default value for irBackend
2019-03-05 20:33:35 +01:00
Mikhael Bogdanov
a3c3282362
Minor. Clean up code after convertion
2019-03-05 20:33:34 +01:00
Mikhael Bogdanov
315df81397
Convert KotlinTypeMapper to Kotlin
2019-03-05 20:33:33 +01:00
Mikhael Bogdanov
61a95b440f
Rename .java to .kt
2019-03-05 20:33:32 +01:00
Mikhael Bogdanov
b43622b87f
Minor. Code clean
2019-03-05 20:33:31 +01:00
Alexander Udalov
d1e33534db
Implement typeOf intrinsic on JVM
...
#KT-29915 Fixed
2019-03-05 18:16:31 +01:00
Alexander Udalov
c61fe16202
Minor, fix inspections, remove unused in codegenUtil.kt
2019-03-05 17:58:10 +01:00
Alexander Udalov
e3779b1883
Minor, relax parameter type of AsmUtil.putJavaLangClassInstance
2019-03-05 17:58:10 +01:00
Alexander Udalov
afe3bed7e1
Minor, remove unused functions from inlineCodegenUtils.kt
2019-03-05 17:58:09 +01:00
Alexander Udalov
214ef0c3c2
Move generation of inline intrinsics to inlineIntrinsics.kt
2019-03-05 17:58:09 +01:00
Mikhail Zarechenskiy
82c8289666
Refactoring: move getRepresentativeUpperBound method to core
...
Plus prettify it a bit
2019-03-05 13:33:23 +03:00
Alexander Udalov
b8bc79e17c
Support non-trivial default argument values in expected functions on JVM
...
#KT-22818 Fixed
2019-02-26 11:02:30 +01:00
Yan Zhulanow
28e4356e6e
Restore original variable name mangling for captured/receiver $this
...
Design for the new one is still not finished.
2019-02-25 14:43:59 +03:00
Yan Zhulanow
b9f76683dd
Simplify 'suppressDiagnosticsInDebugMode'
...
In the new evaluator, suppressDiagnosticsInDebugMode is never set, and effectively the only check is that if a particular file is a KtCodeFragment.
2019-02-25 14:43:58 +03:00
Yan Zhulanow
6a81c2e1e4
Minor: Extract 'this' local variable name in DefaultImpls
2019-02-25 14:43:57 +03:00
Yan Zhulanow
0657a3d399
New evaluator that doesn't depend on the 'extract function' refactoring (KT-28192, KT-25220, KT-25222, KT-21650)
2019-02-25 14:43:57 +03:00
Yan Zhulanow
b4002accfb
Extract label name calculation from 'recordCallLabelForLambdaArgument()'
2019-02-25 14:43:56 +03:00
Yan Zhulanow
eaed6855ac
Minor: Add proper nullability check in generateExtensionReceiver()
2019-02-25 14:43:56 +03:00
Yan Zhulanow
d039e3b1c0
Hide synthetic variables for local functions and destructured lambda parameters (Kotlin variables)
2019-02-25 14:43:56 +03:00
Yan Zhulanow
488418d960
Change mangling for local functions
2019-02-25 14:43:56 +03:00
Yan Zhulanow
aca3be12e9
Change illegal local variable mangling rules
2019-02-25 14:43:56 +03:00
Yan Zhulanow
47f0b68a8c
Change mangling for destructured lambda parameters
2019-02-25 14:43:56 +03:00
Yan Zhulanow
f6cc686095
Minor: Extract a const for continuation variable name
2019-02-25 14:43:55 +03:00
Yan Zhulanow
ea462091c4
Support new convention for local variables name mangling: '$receiver' -> '$this$<label>' (KT-26913)
2019-02-25 14:43:53 +03:00
Yan Zhulanow
b5f9149702
Minor: Get rid of some magic constants
2019-02-25 14:43:53 +03:00
Ilmir Usmanov
1777849ff3
Generate correct linenumber for the debugger to see the return value
...
of suspend function.
#KT-20322 Fixed
2019-02-22 17:37:32 +03:00
Ilmir Usmanov
ec7315e6da
Add $completion entry to suspend functions' LVT
...
#KT-28810 Fixed
2019-02-22 13:50:35 +03:00
Ilya Chernikov
cc4aedb807
Move the rest of script descriptor implementation details to plugin, cleanup
2019-02-21 15:59:48 +01:00
Ilmir Usmanov
6e120b2173
Do not generate state-machines for suspend lambdas, which capture any
...
crossinline lambda, not only suspend.
#KT-29912 Fixed
2019-02-21 17:44:41 +03:00
Natalia Selezneva
254374c619
Use ModuleInfo in VirtualFileFinder to add script dependencies in search scope
...
Otherwise it prevent to inline functions from those dependencies during scratch compilation
2019-02-20 18:36:38 +03:00
Alexander Udalov
d267f1e875
JVM IR: generate synthetic $annotations methods for properties
2019-02-19 17:25:47 +01:00
Alexander Udalov
c357967c2c
JVM IR: generate Kotlin metadata
...
Introduce MetadataSource as a way to store the original descriptor for
any element (before any lowerings) and maintain it until the end of the
codegen where it's used in generating the metadata. Note that JVM
signatures written to the metadata are formed from the _resulting_
generated elements, not by mapping the original descriptors.
Some corner cases are not supported yet, namely properties declared in
companion objects, synthetic methods for property annotations,
JvmPackageName, etc.
#KT-29119 Fixed
2019-02-19 16:37:47 +01:00
Alexander Udalov
3d1858a8c5
Refactor and rename CodegenUtil.getDeclarationsToGenerate
...
Move logic regarding expect classes to the only relevant call site at
PackageCodegenImpl, and return the list of members to remove code
duplication at remaining call sites
2019-02-19 16:37:46 +01:00
Mikhael Bogdanov
3b57ceeafe
Don't generate annotations on $default methods
...
#KT-29965 Fixed
2019-02-19 10:51:37 +01:00
Ilmir Usmanov
1e4b7e1ef1
Put $assertionDisabled field into inline-site's class
...
The generated code is more inline with java, and we avoid the error of
accessing package-private field outside of the package.
However, this changes semantics a bit. Now, a user should set assertion
status of inline-site's package, instead of inline function's one.
#KT-28317: Fixed
2019-02-18 12:39:03 +03:00
Ilmir Usmanov
19d2262cf1
Generate call of throwOnFailure instead of manual check
...
whether coroutine is resumed with exception.
#KT-28015 Fixed
2019-02-14 18:33:17 +03:00
Ilmir Usmanov
440cccae73
Loosen tail call check
...
Check that any source of ARETURN is inside a suspension point, not all
of them.
#KT-27190 Fixed
2019-02-14 12:21:44 +03:00