Michael Bogdanov
d4df7aaabc
Fix for KT-10659: Debugger: Evaluate Expression and Watches fail for inline function parameter passed by reference
...
#KT-10659 Fixed
2016-01-28 14:23:24 +03:00
Michael Bogdanov
0274ce4619
Always generate ACC_SUPER flag for all classes; Fix for KT-10260: java.lang.VerifyError in Android 4.x when Instant Run is used
...
#KT-10260 Fixed
2016-01-11 09:55:56 +03:00
Dmitry Petrov
b736880787
KT-6646, KT-10482:
...
when a method (or a property getter) returns Nothing, emit
ACONST_NULL
ATHROW
after a call so that class files verifier knows that this is an exit point in a method.
Note that if an inline method returning Nothing throws an exception explicitly
(or via a chain of inline methods), this code will be deleted by DCE.
2015-12-31 11:07:56 +03:00
Mikhail Glukhikh
7d6ccc40c2
Implicit exhaustive whens now have exception in else branch #KT-8700 Fixed
2015-12-26 10:46:39 +03:00
Michael Bogdanov
f870e365fa
Removed accessors for const properties
2015-12-25 11:28:10 +03:00
Michael Bogdanov
9cad1a912a
Choose proper context for accessor generation: skip inline ones; Fix for KT-6102: Bypass synthetic accessor when inlining lambda which calls private member
...
#KT-6102 Fixed
2015-12-17 09:51:41 +03:00
Michael Bogdanov
b950bf0e6e
Fix for KT-10259: Proguard can't find generated lambda class of lambda nested inside object?.let lambda
...
#Fixed KT-10259
2015-12-11 16:14:59 +03:00
Michael Bogdanov
4b8017e34b
Fix for KT-7999: Wrong result when use nullable types as reified parameter, KT-8043: Unsafe cast to reified parameter throws NPE instead of TypeCastException
...
#KT-7999 Fixed
#KT-8043 Fixed
~
2015-12-03 15:09:54 +03:00
Michael Bogdanov
1bf521c645
Don't generate accessors for @JvmField properties in primary constructor
2015-11-30 16:24:05 +03:00
Yan Zhulanow
9d1af5a17e
Fix tests: "infix modifier required" and "operator modifier required" errors
2015-11-27 15:51:11 +03:00
Michael Bogdanov
2d3d526ccd
Fix for KT-10110: ClassReader$BadClassFile undeclared type variable: E
...
#KT-10110 Fixed
2015-11-26 13:29:30 +03:00
Denis Zharkov
fa99ea1e98
Generate type-safe barrier in method body
...
In cases when signature of special bridge is the same as current method,
but type is not 'Any?'.
Also there is tiny optimization:
only null check needed if value parameter type is mapped to Object,
but it's not nullable.
#KT-9973 Fixed
2015-11-17 16:27:02 +03:00
Denis Zharkov
1f704e0c4d
Minor. Split BytecodeText tests about special builtin bridges
2015-11-17 16:27:02 +03:00
Mikhail Glukhikh
0d35033106
Introduction of CastedClassReceiver and its handling in codegen #KT-6744 Fixed
...
ClassReceiver converted to Kotlin
Also #KT-7617 Fixed
2015-11-10 20:20:51 +03:00
Dmitry Jemerov
19af88738b
remove Jet from names of classes in tests: phase 2
2015-11-03 14:06:04 +01:00
Dmitry Petrov
882827bf04
KT-9717, KT-9603:
...
pass getter/setter-related flags to AccessorForPropertyDescriptor
2015-10-27 12:02:27 +03:00
Dmitry Petrov
3502c393fc
Drop package facades: JVM BE tests passed.
2015-10-19 16:03:16 +03:00
Michael Bogdanov
3452fc8d02
Don't initialize const properties in constructor
...
#KT-9532 Fixed
2015-10-17 15:31:57 +03:00
Alexey Tsvetkov
62c25c0370
Replace is Array<T> with .isArrayOf<T>()
2015-10-14 18:36:53 +03:00
Denis Zharkov
89ded4ab1d
Implement hack to support both remove() and removeAt() in MutableList<Int>
...
Also add couple of tests about CharSequence.get
2015-10-11 19:57:22 +03:00
Denis Zharkov
80da320c2c
Customize JVM signature for Collection's members
...
- Do not write signature for `contains`
- Write signature for `containsAll` as it's declared like `containsAll(Collection<?>)`
2015-10-09 14:40:33 +03:00
Denis Zharkov
6a1566a6dc
Make JVM backend work with Collection.size as val
...
0. Such properties are called special because their accessor JVM name differs from usual one
1. When making call to such property, always choose special name
2. When generating Kotlin class inheriting such property generate `final bridge int size() { return this.getSize(); }`
3. If there is no `size` declaration in current class generate `bridge int getSize() { // super-call }`
2015-10-07 08:46:35 +03:00
Michael Bogdanov
cd78514b76
Code clean, small refactorings and tests
...
#KT-8987 Fixed
2015-10-03 10:53:22 +03:00
Dmitry Petrov
06d9ff6a71
KT-9377 Support is-checks for read-only collections
...
Generate better code for 'as?' with mutable collection types:
use CHECKCAST, do not introduce special intrinsics for safe-as.
2015-10-02 15:17:00 +03:00
Denis Zharkov
fd0c92e307
Record inner class info for interface and DefaultImpls
2015-09-30 08:19:51 +03:00
Valentin Kipyatkov
420c6856be
Changed naming algorithm of accessor name generation: "isXXX" and "kClass" cases affected
2015-09-29 18:32:24 +03:00
Denis Zharkov
505cb37052
Generate deprecated flag on getter of const val's
2015-09-25 18:12:45 +03:00
Michael Bogdanov
cf57d56ab3
Don't generate private members in interface
2015-09-24 12:00:18 +03:00
Alexander Udalov
a0cc313156
Support class reference expression for reified type parameters
...
Also make KClass::java an intrinsic property.
Based on the work by @dnpetrov
#KT-6976 Fixed
2015-07-30 12:18:28 +03:00
Mikhail Glukhikh
609d696202
Annotations have now retention of "RUNTIME" by default. Java retention is generated as given by kotlin annotation. Annotation rendering changed.
...
Annotation arguments with default values are rendered as ... if renderDefaultAnnotationArguments is true.
Tests: java retention does not taken into account by Descriptor comparator.
Java retentinon changed to kotlin retention in some tests + one new test with java retention added.
More accurate tests for intentions in byte code (visibility controlled).
2015-07-14 16:25:01 +03:00
Michael Bogdanov
b1c5002889
Remove finally marker at inlining
2015-06-24 09:48:55 +03:00
Alexander Udalov
4dcc373a5a
Fix concrete method inheritance in interfaces
...
For each non-abstract non-declared (i.e. inherited from supertypes) method in
an interface we generate its static form to the TImpl, which calls the TImpl
method from the corresponding supertype.
The accidental override tests changed because we're now trying to generate the
delegate for the super method, not knowing that it will clash with the declared
method
#KT-2888 Fixed
#KT-5393 Fixed
2015-06-17 16:23:56 +03:00
Michael Bogdanov
319c5aec60
Fix for KT-7557: NoSuchMethodError when capturing receiver in object expression
...
#KT-7557 Fixed
#KT-7769 Fixed
2015-05-21 10:06:01 +03:00
Denis Zharkov
b2a2e4ae92
Add bytecodeText test for annotation with default value
...
It checks that no value is emitted if argument is not specified
2015-04-16 10:40:20 +03:00
Michael Bogdanov
e200b97ca4
Inline callable references
...
#KT-6900 Fixed
2015-04-13 16:11:21 +03:00
Alexander Udalov
94df191f86
Regenerate tests
2015-04-10 20:26:34 +03:00
Michael Bogdanov
841b199d49
Optimize comparison with zero and null
2015-04-07 17:28:01 +03:00
Michael Bogdanov
c7fe8e0b66
Branched value refactoring, And/Or support
2015-04-07 16:05:42 +03:00
Michael Bogdanov
c63ac3e30a
Test for KT-7222 Redundant boxing on toString call
...
#KT-7222 Fixed
2015-04-07 16:05:42 +03:00
Michael Bogdanov
0efe8890b8
Added new string tests
2015-04-07 16:05:42 +03:00
Evgeny Gerashchenko
14b16ff87c
KT-6916 Slow bytecode for downTo iteration like for (i in max downTo min)
...
#KT-6916 fixed
2015-03-06 13:43:02 +03:00
Nikolay Krasko
8ea9d39e98
Do not generate long lines and simplify merge in generated tests
2015-02-24 13:15:09 +03:00
Dmitry Jemerov
6442b61db8
Don't generate redundant initializers for 'var' properties.
...
Since only 'val' properties store initializers as compile time constants in descriptors, we need to take the initializer expression from the PSI and try to evaluate it as a constant.
#KT-6661 fixed
2015-01-30 14:05:25 +01:00
Denis Zharkov
6f94ebb9d6
Refined redundant null check optimization
2015-01-15 15:13:05 +03:00
Denis Zharkov
5675d2b26b
Dead code elimination
...
#KT-6602 Fixed
#KT-6305 Fixed
#KT-5656 Fixed
2015-01-15 15:13:05 +03:00
Alexander Udalov
3b81d63334
Rename jet -> kotlin in compiler-tests (except resolve)
...
Move test-related code to org.jetbrains.kotlin.test, also move some tests to
packages with better names
2015-01-12 00:24:12 +03:00
Alexander Udalov
de6e8a7493
Rename package jet -> kotlin in backend
...
org.jetbrains.jet.codegen -> org.jetbrains.kotlin.codegen
2015-01-08 23:32:09 +03:00