Michael Bogdanov
8c9d8778eb
Introduced base class for AnonymousObjectGeneration
2016-03-14 10:45:35 +03:00
Michael Bogdanov
c6007c91f7
AnonymousObjectGeneration refactoring
2016-03-14 10:45:35 +03:00
Michael Bogdanov
a0f050fc69
Removed AnonymousObjectGeneration from RegeneratedClassContext
2016-03-14 10:45:34 +03:00
Alexander Udalov
994dc46bcd
Write nullability annotations on extension receiver parameters
...
#KT-5429 Fixed
2016-03-11 15:20:32 +03:00
Pavel V. Talanov
5de4ce6f57
Minor, FunctionCodegen: add additional logging on missing function descriptor
...
Trying to diagnose light class building failures
2016-03-10 19:49:04 +03:00
Pavel V. Talanov
fc16d7c4fd
Refactor, minor: extract exception logging to an util object
2016-03-10 19:49:03 +03:00
Michael Bogdanov
c38f28fb08
Restore last inline function call site line number on lambda inlining into @InlineOnly function
2016-03-10 17:08:17 +03:00
Nikolay Krasko
518bd76f35
Don't write false values in SetSlice to binding context
...
Optimization is significant for USED_AS_RESULT_OF_LAMBDA slice
2016-03-10 13:30:02 +03:00
Michael Bogdanov
1a5bf33190
Fix for KT-11034: Private set with @JvmStatic lateinit var doesn't compile
...
#KT-11034 Fixed
2016-03-10 10:17:27 +03:00
Alexander Udalov
54a615fcd3
Support inlining 'arrayOf' and 'emptyArray' with no stdlib in classpath
...
Previously an exception was thrown on trying to inline arrayOf/emptyArray when
compiling with "-no-stdlib" (or in tests without a dependency on the stdlib),
because these functions were found in a built-in package fragment which does
not have the bytecode associated with it
2016-03-09 10:25:38 +03:00
Denis Zharkov
68f411395a
Fix bridge generation for special builtin override
...
Use method itself signature as common bridge delegate
#KT-11285 Fixed
2016-03-07 09:26:02 +03:00
Dmitry Petrov
3bbd8979e4
KT-9670: optimize Class <-> KClass wrapping/unwrapping as a special case of boxing/unboxing.
...
NB doesn't work for arrays of classes.
2016-03-04 10:14:21 +03:00
Dmitry Petrov
2ecb8896cc
Converting optimization.boxing to Kotlin: convert & simplify
2016-03-04 10:14:21 +03:00
Dmitry Petrov
0555464a3b
Converting optimization.boxing to Kotlin: rename files
2016-03-04 10:14:21 +03:00
Alexander Udalov
4553afbd0c
Make PropertyAccessorDescriptor#hasBody a front-end utility
2016-03-03 16:08:18 +03:00
Michael Bogdanov
534a3a11d6
Write additional type parameters for DefaultImpls methods, fix for KT-11121: BadClassFile exception for interface implemented generic properties
...
#KT-11121 Fixed
2016-03-03 16:11:31 +03:00
Dmitry Petrov
9244ef9b81
Do not use 'dup' for postfix increment/decrement: can't do it with collection element in general.
...
KT-11190, KT-11191, KT-11192, KT-11200, KT-11206
2016-03-02 14:28:06 +03:00
Denis Zharkov
eb2c584578
Rename JetTypeMapper
2016-03-02 13:38:46 +03:00
Denis Zharkov
56a2561ab9
Extract JvmMethodGenericSignature from JvmMethodSignature
2016-03-02 13:38:46 +03:00
Denis Zharkov
d66b9a08dd
Do not map generic signature if it's unnecessary
2016-03-02 13:38:46 +03:00
Michael Bogdanov
16afe74dc1
Fix for KT-11117: Android Kotlin DEX transformation error when I use arrayOf as an anonymous object property
...
#KT-11117 Fixed
2016-02-29 12:53:58 +03:00
Denis Zharkov
4c88e2a0bc
Use original descriptor when mapping fake override
...
Otherwise wrong CONFLICTING_INHERITED_JVM_DECLARATIONS were reported
#KT-10691 Fixed
2016-02-25 11:10:48 +03:00
Michael Bogdanov
582b1c5e66
Fix for KT-11163: Incorrect codegen in case of custom compareTo on primitives
...
#KT-11163 Fixed
2016-02-25 10:16:09 +03:00
Denis Zharkov
914447b7eb
Do not treat uninitialized value as a reason to retain boxing
...
See testData/simpleUnitializedMerge.kt
On exit from `if` we merge value in variable with slot 1 (x):
- from `if` body we get BoxedBasicValue
- from outer block we get UNITIALIZED_VALUE
So we just suppose `x` is unitialized after `if`
and there's no need to mark BoxedValue as unsafe to remove
because it's anyway can't be used after `if`
#KT-6842 Fixed
2016-02-25 08:31:19 +03:00
Denis Zharkov
2f4b8dab25
Minor. Replace 'filter' with 'any'
2016-02-25 08:31:19 +03:00
Michael Bogdanov
b20f49a2c4
Default body compilation for inline fun extracted from InlineCodegen to separate one
2016-02-24 14:06:29 +03:00
Michael Bogdanov
f149f16882
Separately process inline function default impl body compilation (non general inline magic),
...
Fix for KT-10670 Debugger: Evaluate Expression/Watches fail for inline function parameter initialized with default value
#KT-10670 Fixed
2016-02-24 14:06:29 +03:00
Michael Bogdanov
7bfb5a0c60
InliningInstructionAdapter refactoring: renamed to MethodBodyVisitor, added additional empty owerrides
2016-02-24 14:06:28 +03:00
Alexander Udalov
c71c344b8a
Fix NCDFE on primitive iterators during boxing optimization
...
The real fix is in ProgressionIteratorBasicValue's constructor, other changes
are refactorings
#KT-11153 Fixed
2016-02-22 19:49:39 +03:00
Alexander Udalov
1b8f934b54
Delete deprecated enum 'values' property
2016-02-19 22:28:44 +03:00
Michael Bogdanov
1d17bee6cc
Don't generate source mapping on inlining 'InlineOnly' functions
2016-02-19 16:08:03 +03:00
Michael Bogdanov
6f1def9366
isInlineOnly renamed to isInlineOnlyOrReified
2016-02-19 16:08:02 +03:00
Dmitry Petrov
30c2abba3c
KT-9550: distinguish signature conflict on override from signature conflict of inherited members.
...
Add a common OverridingStrategy class for cases where we don't care (yet) about precise diagnostics.
2016-02-19 15:59:08 +03:00
Michael Bogdanov
405c21a17e
Fix for KT-11081: Reified type parameters are lost in anonymous object in inline function when using default value parameters
...
#KT-11081 Fixed
2016-02-19 14:22:29 +03:00
Alexander Udalov
36de3008e3
Fix visibility flags for lambda classes in InnerClasses attribute
2016-02-19 12:52:40 +03:00
Denis Zharkov
bc5110550a
Release generated bytecode after each processed part
...
Part here means separate '.kt' file or multi-file facade
Now this memory optimization doesn't work with jar's,
because there is no simple way to write them incrementally.
2016-02-18 21:22:04 +03:00
Denis Zharkov
fd32b8dd19
Minor. Transform method to void
2016-02-18 21:22:04 +03:00
Denis Zharkov
cecb998fd3
Simplify ClassFileFactory state
...
Before this change it contained maps to complex object,
after it retains only necessary information:
- sources files for package parts
- PackageParts objects grouped by package fq name
Both of them needed for writing module mappings
2016-02-18 21:22:04 +03:00
Denis Zharkov
f8f996b2f6
Minor. Move 'done()' call into MultifileClassCodegen itself
2016-02-18 21:22:03 +03:00
Michael Bogdanov
0283fea835
Optimize recursive string concatenation
2016-02-17 16:53:19 +03:00
Michael Bogdanov
8835b0599a
Inline preevaluated string and primitive only constants in compilation time, don't inline const references in non-annotation context, fix for KT-11025: Don't inline const val in compare instuctions
...
#KT-11025 Fixed
2016-02-17 16:53:18 +03:00
Natalia Ukhorskaya
42927bb078
Make function delegated to sam adapter synthetic
2016-02-17 15:08:53 +03:00
Michael Bogdanov
384d2ea0d1
Use bipush, sipush for byte and short constants
2016-02-12 11:55:21 +03:00
Anton Sukhonosenko
0073257841
Fix for KT-10313: ClassCastException with Generics
...
#KT-10313 Fixed
2016-02-12 10:53:28 +03:00
Pavel V. Talanov
7d98103c0c
overriddenDescriptors is empty for java static property and function declarations
...
Fake overrides are still created for java static with non-empty overriddenDescriptors
Add tests for inheriting visibility for java static members
Add test: check that java static declarations that shadow deprecated declarations should not be deprecated
Add test for corner case where "overriding" java static constant led to incorrect type in inheritor
Fix test data for existing tests
2016-02-11 14:08:14 +03:00
Pavel V. Talanov
7e78e8d8ab
Refactor: Move and rename OverridingUtil.DescriptorSink -> OverridingStrategy
2016-02-11 14:08:13 +03:00
Denis Zharkov
12552d2fc1
Refine special bridges generation
...
#KT-10958 Fixed
2016-02-10 20:18:46 +03:00
Denis Zharkov
6d98909c7a
Minor. Add not-nullable upper bound
2016-02-10 20:18:46 +03:00
Denis Zharkov
45bf300144
Minor. Rename variables
2016-02-10 20:18:46 +03:00
Denis Zharkov
0fb565851f
Minor. Extract function
2016-02-10 20:18:46 +03:00