Commit Graph

213 Commits

Author SHA1 Message Date
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