Commit Graph

6615 Commits

Author SHA1 Message Date
Evgeny Gerashchenko f35390134f Supported SAM adapters in "in/!in" operators. 2013-06-27 17:09:16 +04:00
Evgeny Gerashchenko 0059db486f Supported SAM adapters in augmented assignment operators. 2013-06-27 17:09:16 +04:00
Evgeny Gerashchenko 036960f117 Supported SAM adapters as plus/minus/etc operators. 2013-06-27 17:09:16 +04:00
Evgeny Gerashchenko b1fb0aafea Supported SAM adapters as get/set operators. 2013-06-27 17:09:16 +04:00
Mikhael Bogdanov 8cd1880805 KT-3722: Write correct generic type information for generated fields
#KT-3722 Fixed
2013-06-27 15:59:48 +04:00
Evgeny Gerashchenko f2458f62c2 Prioritized super constructor calls. 2013-06-26 21:04:11 +04:00
Evgeny Gerashchenko b4ce39aeb1 Test with calling abstract wrapper which is implemented in Kotlin. 2013-06-25 20:17:46 +04:00
Evgeny Gerashchenko fd7b29ad48 Added tests with SAM adapter overridden in Kotlin class. 2013-06-25 20:17:45 +04:00
Evgeny Gerashchenko f4c3a89408 Added tests with SAM adapter inherited in Kotlin class. 2013-06-25 20:17:44 +04:00
Evgeny Gerashchenko 5c3577dfed Added tests with SAM adapter overridden in Java class. 2013-06-25 20:17:44 +04:00
Evgeny Gerashchenko d78f36a780 Minor. Renamed test. 2013-06-25 20:17:42 +04:00
Evgeny Gerashchenko ee9fcff9ca Supported non-literal arguments for SAM adapters. 2013-06-25 20:17:42 +04:00
Evgeny Gerashchenko be02943675 Considering SAM interface FQ name in hash. 2013-06-25 20:17:41 +04:00
Evgeny Gerashchenko 7ef4c8cfa8 Generating SAM wrapper class per source file. 2013-06-25 20:17:41 +04:00
Evgeny Gerashchenko fe77c3edb9 Replaced signed decimal with hex. Eliminated querying canonical path. 2013-06-25 20:16:21 +04:00
Evgeny Gerashchenko 4980dacd33 Supported calls of SAM adapters for constructors. 2013-06-25 20:16:20 +04:00
Alexander Udalov 356c32893b Don't use 'iinc' instruction on byte/short/char variables
Android run-time verifier complains when there's any possibility that a
byte/short/char local variable could contain a value not fitting into the
type's limits.
2013-06-25 18:48:28 +04:00
Alexander Udalov 68b0ad53c4 Regression test for KT-24
#KT-24 Obsolete
2013-06-25 18:48:20 +04:00
Alexander Udalov 53cc582040 Minor, use incrementType in for-progression codegen
This doesn't fix anything, just makes it easier to figure out values of what
types are used where. Progression increment is of its own type, which may be
different from asmElementType in case of Byte, Char, Short progressions
2013-06-20 22:23:02 +04:00
Alexander Udalov 8a14b62a23 KT-3574 Assertion error when using ?: in for range
#KT-3574 Fixed

Do not assert that resolvedCall is non-null, since getRangeAsBinaryCall can
return a BinaryCall that doesn't represent a range at all (as specified by the
comment in getRangeAsBinaryCall)
2013-06-20 16:03:00 +04:00
Alexander Udalov ee80e0b8ca Fix loops over progressions near to MAX_VALUE/MIN_VALUE
#KT-492 Fixed

For Byte, Char and Short ranges, promote the type of the loop parameter to int
to avoid overflows. For Int and Long ranges at the end of the loop over a
progression we now check if the new (incremented) value of the loop parameter
is greater than the old value iff increment > 0
2013-06-20 16:03:00 +04:00
Alexander Udalov 33d6347876 Fix loop over a range literal up to MAX_VALUE
#KT-492 In Progress

For Byte, Char and Short explicit casting from Int is removed -- loop parameter
is already stored in an Int anyway. For Int and Long comparison "i < end" at
the beginning of the loop is replaced to "i != end" at the end of the loop + a
special check for an empty loop
2013-06-20 16:02:59 +04:00
Alexander Udalov f1a6d27d35 Minor, prevent infinite loops in range tests 2013-06-20 16:02:59 +04:00
Svetlana Isakova 3cf133bff7 changed local extensions priority
local extensions aren't longer chosen before members
2013-06-20 13:43:01 +04:00
Mikhael Bogdanov 132d74200b Partial fix for KT-3698: properly write field initializer 2013-06-19 17:02:28 +04:00
Mikhael Bogdanov 86f2a6dc69 Tests for not reproduced KT-1770, KT-3001 and KT-3414
#KT-3414 Can't Reproduced
 #KT-3001 Can't Reproduced
 #KT-1770 Can't Reproduced
2013-06-18 14:46:14 +04:00
Mikhael Bogdanov 79cf02ffb9 Fix for KT-3546: Exception when delegating to ArrayList
#KT-3546 Fixed
2013-06-18 13:23:54 +04:00
Mikhael Bogdanov 8ac8798266 Fix for KT-3684: IllegalAccess on a private property of the outer class
#KT-3684 Fixed
2013-06-18 11:20:44 +04:00
Mikhael Bogdanov 52ead7a350 Fix for static - write NEED_SYNTHETIC flag on original descriptor 2013-06-17 17:25:40 +04:00
Mikhael Bogdanov 76d4dcef7f Tests for renamed fields 2013-06-17 15:20:42 +04:00
Mikhael Bogdanov 4feb395dcc Test for static 2013-06-17 15:20:41 +04:00
Mikhael Bogdanov 4ef2f997ed Test for not reproduced KT-2700
#KT-2700 Can't Reproduce
2013-06-17 10:39:23 +04:00
Nikolay Krasko 37cd7eb1ba Allow resolve class declarations in class objects
Use INACCESSIBLE_OUTER_CLASS_EXPRESSION error for marking already resolved elements

 #KT-3261 Fixed
2013-06-07 17:24:17 +04:00
Mikhael Bogdanov e96cf045dd KT-3652: Char is converted to Int when used inside string interpolation
#KT-3652 Fixed
2013-05-27 19:33:49 +04:00
Natalia.Ukhorskaya a5f1a8b3f8 TypeCastException when casting null to T with nullable upper-bound
#KT-3637 Fixed
2013-05-21 13:21:52 +04:00
Natalia.Ukhorskaya 9e584ded11 ClassFormatError because of initializing variable with Any type with primitive value
#KT-3524 Fixed
2013-05-14 15:38:42 +04:00
Evgeny Gerashchenko 516a5b76e8 Fixed calling inherited SAM adapter. 2013-05-06 16:45:36 +04:00
Mikhael Bogdanov 22ddd05e09 KT-3576 Getters for float constants in objects always return 0.0 when constants are less than 1.0
#KT-3576 Fixed
2013-05-06 10:41:48 +04:00
Natalia.Ukhorskaya b9e5227b58 Change String argument of property delegate method to PropertyMetadata 2013-04-30 21:47:24 +04:00
Natalia.Ukhorskaya 6e2584d0de Generate bytecode for delegated properties 2013-04-30 21:47:22 +04:00
Natalia.Ukhorskaya 3297c0e9d3 No such field error when set private property without backing field (analog of KT-2892) 2013-04-30 21:47:21 +04:00
Mikhael Bogdanov b0b6728c7e KT-3118 NoSuchFieldError on private property without backing field &&
KT-3551 Wrong synthetic accessor implementation
2013-04-30 15:28:02 +04:00
Mikhael Bogdanov b6fc0c5c13 KT-3538: Super call to trait implemetation invokes method from base class 2013-04-24 15:52:09 +04:00
Mikhael Bogdanov aa2db75266 KT-3389: Local class construction results in CompilationException && KT-2873 && KT-3210
KT-2873: VerifyError on instantiating a local class inside a closure
KT-3210 Inline Class: CompilationException: Back-end (JVM) Internal error: wrong code generated java.lang.ArrayIndexOutOfBoundsException null

 #KT-3389 Fixed
2013-04-24 13:49:47 +04:00
Alexander Udalov 959f2fb70b Fix codegen tests on Android
Since Android tests move files around, changing their packages, and 'toString'
tests the exact name of a class, we now get it via Java reflection
2013-04-22 21:47:17 +04:00
Alexander Udalov 56f8f021f9 Generate proper generic signature for closure classes 2013-04-22 17:59:32 +04:00
Alexander Udalov ace7bd9bc8 Fix StackValue.coerce void to Object
We can only put Unit.VALUE on stack if we're requested an instance of Object or
Unit. In other cases (arbitrary objects / arrays) we put null instead
2013-04-22 17:59:32 +04:00
Alexander Udalov 054e5fb5e7 Codegen for callable reference expressions
#KT-1183 In Progress
2013-04-22 17:59:32 +04:00
Alexander Udalov 1eeaaad05d Refactor method/constructor calls in codegen
- use ResolvedCall where possible
- 'call' parameter to invokeMethodWithArguments was used only to generate
  callee, e.g. in "A()" where A is an expression which can be invoke()'d.
  In case of constructors and enum entry delegation specifiers there's no need
  to generate callee, so 'call' is made Nullable with a subsequent assert
- remove generateJavaConstructorCall() method, since it did no useful work.
  Java constructor invocation is broken anyway and needs to be fixed (KT-3532)
- minor code style / formatting issues fixed, several methods renamed to better
  reflect semantics
2013-04-22 17:59:32 +04:00
Alexander Udalov 76fa9642f0 toString() for FunctionN classes
It's implemented as if the types were reified: getting the real type parameters
of the corresponding FunctionN class
2013-04-22 17:59:29 +04:00