Commit Graph

682 Commits

Author SHA1 Message Date
Mikhael Bogdanov c325dfffd9 KT-3523: VerifyError for invoke function in inner class
KT-4106: VerifyError: Can't access outer this in a lambda in inner class' constructor
KT-3152: VerifyError when accessing from a function of object to a field of outer outer class

  #KT-3523 Fixed
  #KT-4106 Fixed
  #KT-3152 Fixed
2013-10-31 16:42:53 +04:00
Mikhael Bogdanov 318214b9d7 Capturing this in constructor context
KT-4086 VerifyError creating anonymous object in constructor
 #KT-4086 Fixed
2013-10-31 16:42:53 +04:00
Mikhael Bogdanov fb39217dc3 KT-4140 VerifyError: Property in class object
#KT-4140  Fixed
2013-10-31 12:31:22 +04:00
Mikhael Bogdanov 3ee918b084 KT-4138: java.lang.VerifyError: (class: kotlin/sql/tests/h2/Foo, method: getA$b$0 signature: ()Lkotlin/sql/tests/h2/Foo;) Wrong return type in function
#KT-4138 Fixed
2013-10-28 15:18:51 +04:00
Andrey Breslav 46831b8d43 Tests for issues fixed in ed95463
#KT-2831 Fixed
#KT-3286 Fixed
#KT-3863 Fixed
#KT-3976 Fixed
2013-10-25 19:55:42 +04:00
Mikhael Bogdanov e3882e2dfb KT-4137: Verify error
#KT-4137 Fixed
2013-10-25 16:43:25 +04:00
Andrey Breslav ed95463d1e Map Nothing to java.lang.Void 2013-10-25 15:39:01 +04:00
Andrey Breslav 1ff0ffbac6 Map jet.Hashable to java.lang.Object, to avoid NoClassDefFound exceptions 2013-10-25 15:39:01 +04:00
Mikhael Bogdanov 604be8e0c1 KT-4119: Back-end (JVM) Internal error on code with local extensions
#KT-4119 Fixed
2013-10-24 17:24:45 +04:00
Andrey Breslav ea2b6e4546 Do not throw an exception when a when-statement with no else makes no match 2013-10-21 19:29:01 +04:00
Alexander Udalov 5a1daaa4b6 Generate values()/valueOf() even for empty enums 2013-10-17 19:01:45 +04:00
Alexander Udalov 08bc67b925 Generate synthetic methods for annotated properties in TImpl classes
Traits themselves can't have these methods, since it'd be a weird public method
in an interface

 #KT-4072 Fixed
2013-10-16 15:02:37 +04:00
Alexander Udalov 6269cb807b Minor, extract test for synthetic methods for properties 2013-10-16 14:59:37 +04:00
Alexander Udalov 2445d04338 Fix synthetic method generation for extension properties
If several annotated extension properties with the same name were declared in
one class, JVM issued a ClassFormatError, since we generated a synthetic method
for each of them with the same name and signature. Make the signature of this
synthetic method depend on a receiver parameter, if a property has one
2013-10-16 14:59:37 +04:00
Andrey Breslav d47109b928 Do not write 'jet.volatile' annotation to class files
ProGuard fails when it sees a class named 'volatile'
2013-10-14 14:42:25 +04:00
Alexander Udalov f8201c6aa9 Refactor TopLevelMembersInvocationTest
Compile library dependencies in the test instead of storing them as jars in the
repository. Reuse MockLibraryUtil, move it from idea tests to compiler-tests
2013-10-10 20:28:21 +04:00
Andrey Breslav 3071b58219 Use a built-in class to mitigate a naming problem in Android tests 2013-10-09 11:47:58 +04:00
Andrey Breslav 7f46d7555e Do not write "? extends" and "? super" in immediate arguments of supertypes in Java generic signatures 2013-10-08 21:13:30 +04:00
Alexander Udalov fdc631d595 Increase ABI version after changes to package fragment names 2013-10-02 17:05:47 +04:00
Alexander Udalov 8a5336aca2 Don't use $ in package fragment class names
Package fragment classes now are named "*Package-<filename>-<hash>" instead of
"*Package$src$<filename>$<hash>". This will help to avoid erroneous code in
intellij FileManager, which assumes that classes with dollars are always inner
classes of some other class (see AnnotationDescriptorDeserializer)
2013-10-02 17:03:24 +04:00
Evgeny Gerashchenko dc42be8543 Fixed VerifyError when copyToArray() is immediately returned from method. 2013-10-01 19:32:37 +04:00
Evgeny Gerashchenko 2ae1a2c81b Added copyToArray intrinsic method.
#KT-3352 fixed
2013-10-01 15:11:30 +04:00
Evgeny Gerashchenko 41d1f277dc Generated default implementations for Collection.toArray().
#KT-3352 in progress
2013-10-01 15:11:30 +04:00
Evgeny Gerashchenko d56c59d9d7 Removed toArray() from collections (few tests are still failing).
#KT-3352 in progress
2013-10-01 15:11:30 +04:00
Evgeny Gerashchenko 48625dd7b6 Disallowed using type parameter as reified type argument.
#KT-3050 fixed
2013-10-01 15:06:57 +04:00
Alexander Udalov 5fa489b7d3 Add 'topLevelMemberInvocation.twoModules' test to CompileBinaryTestData 2013-09-30 22:43:18 +04:00
Svetlana Isakova a3f9cef354 fixed bug: 'isStatement' for function body == 'hasBlockBody'
not vice versa
2013-09-30 21:06:05 +04:00
Evgeny Gerashchenko b4bb08c013 Generating stub methods for read-only map and entry. 2013-09-25 20:59:24 +04:00
Evgeny Gerashchenko 511c908ba9 Generating stub methods for read-only collection. 2013-09-25 20:59:24 +04:00
Evgeny Gerashchenko 5de9c2499d Added for iterator when remove() is present. 2013-09-25 20:59:23 +04:00
Evgeny Gerashchenko 47b70427e1 Generating remove() for Iterator using same mechanism. 2013-09-25 20:59:23 +04:00
Evgeny Gerashchenko b4368ad578 Generating stub methods for read-only list. 2013-09-25 20:59:23 +04:00
Evgeny Gerashchenko e98b75b462 Do not generate toString and other methods if they are inherited. 2013-09-25 20:59:23 +04:00
Mikhael Bogdanov 39b5be6e2b Test fix for android configuration 2013-09-24 17:10:44 +04:00
Mikhael Bogdanov 6ca3a581b0 Test fix for previous commit 2013-09-24 14:31:58 +04:00
Mikhael Bogdanov 7520ff1420 KT-3308: Support local generic functions in codegen
#KT-3308 Fixed
2013-09-24 12:59:57 +04:00
Mikhael Bogdanov fc1c3a2e23 KT-3978: Kotlin: [Internal Error] org.jetbrains.jet.codegen.CompilationException: Back-end (JVM) Internal error: null
#KT-3978 Fixed
2013-09-19 15:40:28 +04:00
Mikhael Bogdanov 8ffee527d7 KT-3573 "Error generating primary constructor" when trying to use "this" in extensions from constructors
#KT-3573 Fixed
2013-09-17 17:31:47 +04:00
Andrey Breslav c017858f77 'Else' is not required in 'when' if Unit is expected 2013-09-13 22:04:46 +02:00
Alexander Udalov c8a5c9ef59 Add regression for EA-47864 2013-09-06 21:16:42 +04:00
Alexander Udalov 723d5ef564 Fix default argument method calls
In some cases, calls of methods with default arguments were invoked via the
actual generated method, not via the "...$default" accessor
2013-09-03 22:26:05 +04:00
Svetlana Isakova a49dcc0dd4 analyze when entry in independent context 2013-09-03 17:05:21 +04:00
Alexander Udalov 760ec99315 Regenerate topLevelMemberInvocation testData
Add a source used to generate classes
2013-08-26 16:00:11 +04:00
Alexander Udalov c853c9be03 Create empty method for annotated properties w/o fields
There was no place in bytecode where annotations on properties without backing
fields could be stored to. Now they're written on a synthetic empty void method
with a special name ("propertyName$annotations").

(Annotations on properties cannot simply be written on getters in bytecode,
since a getter can have annotations of its own.)
2013-08-23 17:39:21 +04:00
Andrey Breslav 55eb994502 KT-3919 Automatic labeling of lambdas by receiving functions
#KT-3919 Fixed
2013-08-22 14:27:01 +04:00
Andrey Breslav aa99c29d8d JVM backend test for local returns 2013-08-21 20:12:05 +04:00
Mikhael Bogdanov 185b5013fe Properly process nested try and loop blocks
KT-3894: Loops and finally: finally block executed twice when break and return exists in try/finally block
KT-3874: Compilation error on try catch block contains break and continue
KT-3869: Loops and finally: outer finally block not run

 #KT-3869 Fixed
 #KT-3894 Fixed
 #KT-3874 Fixed
2013-08-19 16:06:56 +04:00
Mikhael Bogdanov d0f042ba93 Properly generate exception table for try/catch block
KT-3549 'Finally' block not run when re-throwing exception
KT-3867 When catched exception occurs in finnaly block it invokes additional catch and itself

  #KT-3549 Fixed
  #KT-3867 Fixed
2013-08-19 16:06:56 +04:00
Mikhael Bogdanov c9215ed8a5 KT-2784 VerifyError when passing a value to a class object's super type constructor
#KT-2784 Fixed
2013-08-12 18:58:09 +04:00
Mikhael Bogdanov 8a4b01d9c6 KT-3702: Inner class constructor cannot be invoked in override function with receiver
KT-3532: NoSuchMethodError when constructing Java inner class
KT-3847: Class is not recognized as inner when loaded from binaries

 #KT-3702 Fixed
 #KT-3532 Fixed
 #KT-3847 Fixed
2013-08-06 10:58:27 +04:00