Ilmir Usmanov
ea1e72e7b4
Generate $this$<label> as receiver name instead of $receiver
2019-03-30 04:18:53 +03:00
Ilmir Usmanov
6f14dcfacb
Put suspend lambda's parameters to LVT
...
#KT-26412 Fixed
#KT-28534 Fixed
2019-03-30 04:18:50 +03:00
Ilmir Usmanov
3bfee39995
Generate debug metadata for lambdas which capture crossinline lambdas
...
After cold stream related fixes, we do not generate state machine until
the very last transformation of the lambda. Thus, it is safe to
generate debug metadata for that lambda.
#KT-30694 Fixed
2019-03-29 17:02:42 +03:00
Ilmir Usmanov
f09457c569
Minor. Remove sourceFile from CoroutineTransformerMethodVisitor's parameters
2019-03-29 17:02:40 +03:00
Ilmir Usmanov
59398536d7
Generate inline site's file name in metadata
...
Otherwise, stacktraces will have invalid file name (declaration site).
#KT-30508 Fixed
2019-03-28 11:14:17 +03:00
Ilmir Usmanov
0fec3470dd
Regenerate anonymous object if call site of non-inlineable
...
functional argument is suspend
Split LambdaInfo into inlineable and non-inlineable
#KT-26925
2019-03-27 17:44:37 +03:00
Ilmir Usmanov
1c2b8e6fad
Fix wrong state-machine generation if inner object is retransformed
...
during inlining.
#KT-29492 Fixed
2019-03-27 17:44:35 +03:00
Alexey Tsvetkov
5f54f67f70
Stop using -Xbuild-file in Gradle Plugin
...
#KT-27640 fixed
#KT-27778 fixed
#KT-27638 fixed
2019-03-25 16:39:47 +03:00
Georgy Bronnikov
451cda79de
Rewrite AnnotationCodegen for IR, removing descriptors
2019-03-23 19:04:36 +03:00
Yan Zhulanow
4870b2e6ba
Fix asmTypeForAnonymousClassOrNull(): it should not throw an exception if a class name isn't found
2019-03-20 20:52:20 +03:00
Yan Zhulanow
3f92451fde
Explicitly check for the callable class availability
...
'@NotNull' annotation generates a not-null assertion that caused exceptions to throw from 'asmTypeForAnonymousClassOrNull()'.
2019-03-20 20:52:20 +03:00
Yan Zhulanow
77c2a5c87c
Debugger: Fix missing NOP in empty 'when' header (KT-29189)
2019-03-20 20:52:20 +03:00
Jake Wharton
6ee987fa2e
Add intrinsics for compile-time computing trimMargin/trimIndent
...
These only apply when the receiver can be resolved to a constant and the margin prefix, if specified, is also a constant.
2019-03-20 17:25:29 +01:00
pyos
330c4648cb
Implement property references in JVM_IR
2019-03-19 12:00:29 +01:00
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