Yan Zhulanow
2283366076
Revert "Debugger: Fix breakpoints and stepping for inline-only function lambda arguments (#KT-23064)"
...
This reverts commit aa75d88
2018-04-04 19:23:00 +03:00
Yan Zhulanow
aa75d887dc
Debugger: Fix breakpoints and stepping for inline-only function lambda arguments (#KT-23064)
...
(cherry picked from commit eec9c6b )
2018-04-03 03:20:15 +03:00
Ilmir Usmanov
826d667398
Remove redundant locals
...
Do not transform already transformed suspend lambdas
Ignore duplicates of continuation in local variable table during redundant locals elimination.
2018-03-16 16:26:14 +03:00
Ilmir Usmanov
81f3e39f29
Do not generate ACONST_NULL as continuation of crossinline suspend lambda
2018-03-16 16:26:13 +03:00
Ilmir Usmanov
6854135077
Support crossinline suspend lambda as parameter of inline function
...
Use fake continuation instead of ALOAD 0 while inlining
Do not generate state machine for inner lambdas and inner objects,
which capture crossinline suspend lambda.
#KT-19159: Fixed
2018-03-16 16:26:11 +03:00
Mikhael Bogdanov
c1c8660e55
Don't try to transform sam wrappers in same module
...
#KT-22304 Fixed
2018-03-08 11:50:08 +01:00
Mikhael Bogdanov
d732f0e160
Never delete types from inline functions during inline transformations
...
#KT-19399 Fixed
2018-02-16 16:48:53 +01:00
Mikhael Bogdanov
0954d1ab1b
Don't generate hash in sam wrapper class name
...
#KT-17091 Fixed
2018-02-08 10:11:48 +01:00
Dmitry Savvinov
b29a6e48fb
Refactor language features, which control effect system
...
- Introduce new language feature 'ReadDeserializedContracts', which
allows to deserialize contracts from metadata.
- Introduce new language feature 'AllowContractsForCustomFunctions',
which allows reading contracts from sources.
- Use new features instead of combination 'CallsInPlaceEffect ||
ReturnsEffect'
- Rename 'CallsInPlaceEffect' -> 'UseCallsInPlaceEffect',
'ReturnsEffect' -> 'UseReturnsEffect'. As names suggest, they control
if it is allowed to use corresponding effect in analysis.
We have to introduce separate 'ReadDeserializedContracts' to enable
contracts only in some modules of the project, because libraries are
read with project-wide settings (see KT-20692).
2018-01-26 11:30:44 +03:00
Mikhael Bogdanov
50608d0844
Don't delete nested default lambda classes during inline transformation
2017-12-21 12:52:29 +01:00
Mikhael Bogdanov
b65dcf27ee
Provide test source mapping data for separate and non-separate compilation
...
Compilation in same module or in separate ones
2017-12-21 12:52:28 +01:00
Mikhael Bogdanov
f4f7c83eeb
Copy nested objects of default lambda during inline
2017-12-21 12:52:28 +01:00
Mikhael Bogdanov
3513f1a86a
Properly process default lambda source mapping
...
#KT-21827 Fixed
2017-12-21 12:52:27 +01:00
Mikhael Bogdanov
819a3a95b3
Add support for contract feature in inliner
2017-12-19 16:11:39 +01:00
Mikhael Bogdanov
edefb45585
Copy sam wrappers during inline
...
#KT-21671 Fixed
2017-12-07 12:57:43 +01:00
Alexander Udalov
386a3fb5ce
Fix tests after f4f5359725
2017-11-27 16:03:38 +01:00
Alexander Udalov
f4f5359725
Fix exception on inlining callable reference with implicit this in LHS
...
Use ResolvedCall to determine the receiver type in the JVM codegen,
instead of manually inspecting the PSI
#KT-20821 Fixed
2017-11-27 12:46:55 +01:00
Mikhael Bogdanov
dff6e943bb
Always do stack spilling during inline cause of dex problem
...
Dex issue: https://issuetracker.google.com/issues/68796377
#KT-20844 Fixed
2017-11-13 16:50:24 +01:00
Mikhael Bogdanov
416392bb74
Don't propagate reified markers for special enum functions
...
#KT-18254 Fixed
2017-11-08 15:35:44 +01:00
Mikhael Bogdanov
800cc63347
Remove external finally block interval on splitting during inline
...
#KT-20433 Fixed
2017-11-08 15:35:43 +01:00
Alexander Udalov
7f8634d9ef
Revert "Temporarily remove JvmPackageName and tests, but keep the implementation"
...
This reverts commit 9ae6feb2c5 .
2017-10-11 19:20:24 +03:00
Dmitry Petrov
fd16035bbd
API version calls preprocessing, 1st passing test
2017-10-10 09:04:51 +03:00
Alexander Udalov
9ae6feb2c5
Temporarily remove JvmPackageName and tests, but keep the implementation
...
This is needed because we want the compiler code to stay as much the
same in master and in 1.2 as possible
2017-09-13 23:23:36 +03:00
Alexander Udalov
d07b628e0c
Support JvmPackageName annotation in JVM back-end
...
This annotation is currently internal because we only commit to its
support for our own libraries. It will be used to change JVM package
names of declarations in JDK-specific stdlib additions (now called
kotlin-stdlib-jre7/8), both to preserve source compatibility of the old
Kotlin code and to solve the split package problem (KT-19258)
2017-09-13 22:59:03 +03:00
Alexey Andreev
834cd1d93d
Fix testdata for new JS inliner
2017-09-04 15:33:07 +03:00
Mikhael Bogdanov
8af7a25f8e
Update maxStack on synthetic instruction insertion
...
#KT-19723 Fixed
2017-08-17 20:02:29 +02:00
Mikhael Bogdanov
79ecc7fd5c
Don't recognize nullable function types as inlinable
...
#KT-19679 Fixed
2017-08-17 14:24:00 +02:00
Mikhael Bogdanov
15f401a473
Copy annotation and attributes on class transformation during inline
2017-08-08 09:50:42 +02:00
Mikhael Bogdanov
ff676c050f
Properly generate inner classes when compiling source for inline
...
KT-19175: Compiler generates different bytecode when classes are compiled separately or together
#KT-19175 Fixed
2017-07-26 20:31:14 +02:00
Alexander Udalov
2611c7de7e
Restore anonymous classes for local delegate metadatas in inline functions
...
The problem is that now that the local delegated property metadata is in
the $$delegatedProperties array of the containing class, the access to
it from code calling an inline function with a local delegated property
is illegal.
Currently it seems to be a lot of work to support this rather rare case
properly (see the comment in ExpressionCodegen.getVariableMetadataValue)
so we postpone it and return the old behavior of using the anonymous
KProperty subclass for metadata
2017-07-14 15:13:12 +03:00
Mikhael Bogdanov
2808e45b89
Enable test in js, native
2017-07-05 11:15:38 +02:00
Mikhael Bogdanov
8121c1d3c4
Update test to support js-backend
2017-07-04 10:12:42 +02:00
Mikhael Bogdanov
8666b95dd2
Delete local variables on default mask expantion
...
#KT-18792 Fixed
2017-07-03 17:01:06 +02:00
Mikhael Bogdanov
01e2f8e32c
Preventively allocate slots for additional default parameters
...
Otherwise they are corrupted by inline
2017-07-03 17:01:06 +02:00
Mikhael Bogdanov
49252f6eec
Properly process primitive receiver on inlining bound callable references
...
#KT-18728 Fixed
2017-07-03 10:51:51 +02:00
Mikhael Bogdanov
4f914fafca
Calculate default mask shift properly
...
#KT-18689 Fixed
2017-06-29 14:57:42 +02:00
Igor Chevdar
d7e4350d42
Ignored/fixed some tests for Kotlin/Native
2017-06-28 12:54:32 +03:00
Alexey Andreev
d3a5201ecc
Intrinsify String?.plus in JS BE
...
See KT-8020
2017-06-20 10:40:21 +03:00
Mikhael Bogdanov
3f7bf8467a
Process non-aload0 outer access in constructor during inline
...
#KT-17972 Fixed
2017-05-26 09:24:10 +02:00
Alexey Andreev
0e31c14a86
Implement inlining of default parameters in JS BE
...
Fix KT-17910
2017-05-25 14:38:53 +03:00
Mikhael Bogdanov
47fec6c9d5
Wrap captured local delegated property into Delegate
...
#KT-16864 Fixed
2017-05-19 09:53:19 +02:00
Mikhael Bogdanov
511c9f86b1
Add new test on receiver clash during default lambda inlining
2017-05-18 18:18:15 +02:00
Mikhael Bogdanov
ec23df1d29
Extract callable reference tests to separate directory
2017-05-18 18:18:15 +02:00
Mikhael Bogdanov
f4a388cf71
Add new tests for default lambda inlining
2017-05-18 18:18:14 +02:00
Mikhael Bogdanov
d9dc2bd443
Minor. Fix review remarks
2017-05-17 10:20:04 +02:00
Mikhael Bogdanov
fd561c6cb9
Support default bound callable reference inlining
...
#KT-6884 Fixed
2017-05-17 10:20:03 +02:00
Mikhael Bogdanov
05d2aa700b
Support default property reference inlining
2017-05-17 10:19:55 +02:00
Mikhael Bogdanov
a96fada230
Switch tests for default lambda inlining on language level 1.2
2017-05-17 10:19:55 +02:00
Mikhael Bogdanov
0ac23c789e
Add diagnostics for default lambda inlining
2017-05-17 10:19:54 +02:00
Mikhael Bogdanov
6730fa2bbf
Support default inline lambda reification
2017-05-17 10:19:51 +02:00