Andrey Breslav
777f3d1341
Codegen tests now fail on JVM-specific errors
2014-06-19 22:11:57 +04:00
Alexander Udalov
d78d4bc44c
Disallow extension properties with backing fields
...
#KT-1682 Fixed
2014-05-29 21:24:05 +04:00
Alexander Udalov
6210e45fbc
Minor, improve test case for KT-1157
...
Multithreaded version was not working correctly and was throwing NPEs in the
log sometimes
2014-05-29 21:07:34 +04:00
Alexander Udalov
9760f30c99
Don't allow fake override to inherit implementation with wrong return type
...
#KT-4763 Fixed
2014-05-22 19:32:10 +04:00
Andrey Breslav
773cb9efbe
Signature comparison used to find super functions in SignaturesPropagationData
...
#KT-4509 Fixed
2014-05-21 15:26:05 +04:00
Alexander Udalov
41eb0deaa0
Introduce FunctionImpl and ExtensionFunctionImpl classes
...
Old FunctionImpl0,1,2,... will be dropped since they had no purpose
2014-05-19 19:50:58 +04:00
Alexander Udalov
c7a7f31e82
Introduce module 'reflection', move KFunctionN to it
...
Metadata for KFunction classes is now longer serialized along with built-in
classes. This effectively means that it's no longer possible to find KFunction
classes via dependency on built-ins. There should be a kotlin-runtime library
in the specified classpath for reflection types to be resolvable.
A lot of tests were moved and changed, because tests on callable references
require stdlib in classpath from now on
2014-05-19 19:50:57 +04:00
Mikhael Bogdanov
6fb0050575
KT-4982 this$0 is not initialized in the anonymous object
...
#KT-4982 Fixed
2014-05-16 13:33:39 +04:00
Alexander Udalov
3a0aac4857
Simplify type mapping logic in CodegenBinding
...
- inline asmType to calling getAsmType, which does something more
- refactor getJvmInternalName to use getAsmType as well
- simplify getAsmType and fix a probable bug in mapping singletons nested in
enums (which wasn't reproduced, though a test is added)
- delete unnnecessary ASM_TYPE recording for enum entries in
CodegenAnnotatingVisitor
2014-05-08 16:45:15 +04:00
Alexander Udalov
51b01b5d7d
Replace some REFERENCE_TARGET calls with RESOLVED_CALL
...
Also don't do unnecessary and failing casts in CodegenAnnotatingVisitor for SAM
adapters
#KT-3173 Fixed
#KT-3999 Fixed
#KT-4682 Fixed
2014-05-05 16:49:23 +04:00
Denis Zharkov
3bc1c45fde
Refactored tests for switch optimization of When expression
2014-04-25 18:17:36 +04:00
Denis Zharkov
95345a9bd4
Tests for switchOptimization: shuffled and added sparse version
2014-04-25 18:17:36 +04:00
Denis Zharkov
1952781e4b
SwitchOptimization: generating `lookupswitch' opcode for 'when' in case of integral types
2014-04-25 18:17:36 +04:00
Denis Zharkov
c73533d214
Switch Optimization
2014-04-25 18:16:24 +04:00
Alexander Udalov
61675de305
Optimize PropertyMetadataImpl instance creation
...
Create all property metadatas in <clinit> and save them to a static array
$propertyMetadata. Getter/setter of each delegated property will then just
obtain the corresponding instance from that array
#KT-4232 Fixed
2014-04-24 16:10:15 +04:00
Alexander Udalov
f7235e9d82
Fix abstract nested class in enums in JVM back-end
...
It caused InstantiationError because the enum had an incorrect ACC_ABSTRACT
flag
2014-04-24 16:10:13 +04:00
Alexander Udalov
fbf9f5f7d0
Don't generate bridges for equals(), hashCode(), toString()
...
Otherwise an assertion is failing in the algorithm which is related to an
inconsistency of java.lang.Object inheritance in JDR (KT-4890)
2014-04-24 16:10:12 +04:00
Alexander Udalov
79e7ee91e4
Generate bridges for trait implementations properly
...
The intent was to keep the bridge codegen model as simple as possible: we
should be able to figure out all necessary bridges only by a minimal interface
that FunctionHandle provides (isAbstract, isDeclaration, getOverridden)
Add different tests for bridges
#KT-318 Obsolete
2014-04-11 21:57:47 +04:00
Alexander Udalov
b0db6a4526
Rewrite bridge generation to Kotlin, make it abstract
2014-04-11 21:57:46 +04:00
Alexander Udalov
fc838dbb53
Refactor ImplementationBodyCodegen.getTraitImplementations()
...
Make it static, extract a method which finds an implementation in a trait for a
fake override
2014-04-11 21:57:46 +04:00
Alexander Udalov
478766815d
Consider all real functions, not only declarations in bridge codegen
...
There should be bridges to all of the functions present in bytecode
2014-04-11 21:57:45 +04:00
Alexander Udalov
04c237cc22
Generate bridges for fake overrides when needed
...
#KT-3985 Fixed
#KT-4145 Fixed
2014-04-11 21:57:44 +04:00
Mikhael Bogdanov
e2f3a589e7
KT-3308 Support local generic functions in codegen
...
#KT-3308 Can'tReproduce
2014-04-01 11:18:16 +04:00
Mikhael Bogdanov
4269729b0a
KT-3214: Verify error when get array convention is used with varargs
...
#KT-3214 Can'tReproduce
2014-04-01 11:18:16 +04:00
Mikhael Bogdanov
596dc68ea4
KT-4340: Jvm backend generates invalid synthetic accessor for private extension property
2014-04-01 11:18:15 +04:00
Mikhael Bogdanov
0d239a3e0e
Moving local fun callee generation to CallReceiver
2014-03-31 20:04:10 +04:00
Mikhael Bogdanov
c7c1e33655
Move local fun callee generation to pushArgumentsWithCallReceiver.
...
Local fun callee generation via resolvedCall.resultingDescriptor not call
2014-03-31 20:03:43 +04:00
Alexander Udalov
ea4daed0ac
Use FqNameUnsafe instead of FqName in JVM intrinsics
...
#KT-4777 Fixed
2014-03-27 22:46:44 +04:00
Alexander Udalov
0deea6b83c
Add test for obsolete issue
...
#KT-1936 Obsolete
2014-03-27 03:06:59 +04:00
Evgeny Gerashchenko
537c03fb1a
Added test checking that initialization order in package part is not violated.
2014-03-25 14:31:41 +04:00
Svetlana Isakova
a829da185d
Resolve invoke on any kind of expressions, not only on simple name expressions
2014-03-20 10:05:24 +04:00
Alexander Udalov
7a2fce4fba
Add regression tests for obsolete issues
...
#KT-2592 Obsolete
#KT-2768 Obsolete
2014-03-16 03:18:26 +04:00
Svetlana Isakova
4771986b32
KT-4656 Wrong capturing a function literal variable.
...
#KT-4656 Fixed
Reference for calleeExpression is recorded only in 'doResolveCallOrGetCachedResults'.
2014-03-08 20:55:45 +04:00
Andrey Breslav
2a0ccb95b1
Support quotes at the end of a raw string
...
Fix for KT-4650 Can't use double quote at the end of the raw string
#KT-4650 Fixed
2014-03-07 19:38:58 +04:00
Alexander Udalov
f7b6457139
Replace "jet" package name with "kotlin" in testData
2014-03-02 19:55:26 +04:00
Alexander Udalov
5d6d4406cb
Move FunctionImpl classes from package "jet" to "kotlin"
2014-03-02 19:54:56 +04:00
Alexander Udalov
b68e47f705
Move JVM-specific annotations out of built-ins
...
Move 'volatile' and 'synchronized' to package 'kotlin' in stdlib. Also delete
'atomic', since its support was never implemented
2014-03-02 19:54:55 +04:00
Alexander Udalov
774e5f0535
Sort out JVM intrinsics for equals, hashCode, toString
2014-03-02 19:54:55 +04:00
Alexander Udalov
3dcd85bdb4
Add toString() to Any, fix all tests
...
#KT-4517 Fixed
2014-03-02 19:54:49 +04:00
Alexander Udalov
ec30d52978
Delete Hashable, pull up its members to Any
...
Extensions on nullable types remain in Library.kt
#KT-1741 Obsolete
#KT-2805 Obsolete
#KT-1365 Fixed
#KT-4517 In Progress
2014-03-02 19:54:08 +04:00
Alexander Udalov
4968afebf8
Don't generate bodies of built-in stub methods into interfaces
2014-02-24 21:44:42 +04:00
Alexander Udalov
4a603f1268
Minor, specify types for clarity
2014-02-21 20:38:02 +04:00
Alexander Udalov
eb7b757e38
Fix VerifyError on rangeTo on primitive types
2014-02-19 17:46:18 +04:00
Alexander Udalov
8b918ef1aa
Add regression tests for obsolete issues
...
#KT-1291 Obsolete
#KT-2895 Obsolete
#KT-3060 Obsolete
#KT-3298 Obsolete
#KT-3613 Obsolete
#KT-3862 Obsolete
2014-02-13 04:43:53 +04:00
Alexander Udalov
a98434263b
Add regression test for outdated issue
...
#KT-3738 Obsolete
2014-02-12 19:17:55 +04:00
Alexander Udalov
35c7c4afd8
Fix capturing outer this in some cases in JVM codegen
...
When property initializer of some inner entity (e.g. anonymous object) contains
a reference to some outer entity (say, a property of the outer class), we need
to make sure we called "lookupInContext" on this entity's owner class, so that
"setCaptureThis" was called on the appropriate closure
#KT-4176 Fixed
2014-02-12 19:17:55 +04:00
Svetlana Isakova
9d493b6f7b
generate CHECK_CAST for smartcasted 'this'
2014-02-12 12:48:11 +04:00
Mikhael Bogdanov
e0ca1abe4b
KT-3706 Inconsistent stack height in try catch finally in function
...
KT-4134 Incorrect bytecode is generated for
#KT-3706 Fixed
#KT-4134 Fixed
2014-02-07 13:45:22 +04:00
Alexander Udalov
75ab8ac5ec
Don't try to generate optimized "in" for LongRange
...
#KT-4097 Fixed
2014-01-31 16:46:14 +04:00
Andrey Breslav
ab7d8a7734
Tests for abstract functions with default arguments
2014-01-23 17:59:18 +04:00