Commit Graph

2715 Commits

Author SHA1 Message Date
Stanislav Erokhin 5786e620e8 Minor. remove import package usages from sources 2015-09-18 21:00:16 +03:00
Denis Zharkov 9c4564a5a6 Get rid of deprecated annotations and modifiers in project code 2015-09-18 09:34:27 +03:00
Alexander Udalov 4bc257bd73 Minor refactoring in LazyJavaPackageScope 2015-09-16 01:44:27 +03:00
Alexander Udalov 296212eab1 Merge two JetTypeMapper#mapToCallableMethod methods 2015-09-15 15:55:20 +03:00
Alexander Udalov 7c0780455a Remove unused parameter of JetTypeMapper#mapOwner, simplify lots of code 2015-09-15 15:55:20 +03:00
Alexander Udalov a946f787bc Fix exception from data class codegen for light classes
EA-66827
2015-09-15 13:11:16 +03:00
Dmitry Petrov 47b8853051 Generate light classes for single-file facades using PackageCodegen. 2015-09-15 10:25:40 +03:00
Dmitry Petrov ef6da03db2 Do not generate facade for single-file light classes 2015-09-14 21:26:33 +03:00
Pavel V. Talanov d6a9551392 Do not generate parts of multifile facade when building light classes
Building facade class is enough for this purpose
2015-09-14 19:40:11 +03:00
Dmitry Petrov 50ff2a3ad2 Multifile facade should contain reflection data,
otherwise callable references to stdlib functions will not work in the migration scheme.
2015-09-14 17:47:49 +03:00
Dmitry Petrov 5d0243d46f Fix incremental compilation tests 2015-09-14 17:47:49 +03:00
Valentin Kipyatkov 08e7a9d826 Made methods generated from declarations marked with @HiddenDeclaration synthetic in JVM 2015-09-14 17:42:40 +03:00
Mikhail Glukhikh b4399b8b8b AnnotationTarget.CLASSIFIER and KotlinTarget.CLASSIFIER both dropped (second step) 2015-09-14 12:51:11 +03:00
Dmitry Petrov 1586a2df8e Make stdlib work with -Xmultifile-package-facades.
Fixed wrong owner mapping in presence of -Xmultifile-package-facades.
Fixed backing field mapping issue.
Added more tests.
2015-09-14 11:26:29 +03:00
Dmitry Petrov 838433ba8a - call multifile class members (compiling against binaries)
- inline multifile class members
HACK? scope-based part/facade resolution
2015-09-14 11:25:42 +03:00
Dmitry Petrov 50f83da6da - call multifile class members (compiling against binaries)
- inline multifile class members
2015-09-14 11:25:42 +03:00
Dmitry Petrov 5f9a59d655 - bytecodeTextMultifile - framework for bytecode text tests
with multiple Kotlin source files
- bytecodeTextMultifile/partMembersCall, initial import
2015-09-14 11:25:42 +03:00
Dmitry Petrov 2931e474e1 - InnerClasses & EnclosingMethod attributes for local classes
in multifile part members
- invocation of multifile part/facade members
(TODO: deserialized descriptor case)
- inlining of multifile part/facade members
(TODO: inline against binaries case)
2015-09-14 11:25:41 +03:00
Alexander Udalov 6cecc66d10 Improve ABI version from one number to "major.minor.patch" 2015-09-11 19:28:46 +03:00
Mikhail Glukhikh 3770e7f49f Introduction of AnnotationTarget.CLASS as a replacement for CLASSIFIER (first step) 2015-09-11 17:59:40 +03:00
Natalia Ukhorskaya 137f8b242a Wrong stepping for if followied by captured variable
#KT-9118 Fixed
2015-09-11 11:27:53 +03:00
Yan Zhulanow fbc769b0e9 Clear cache on fragment onDestroy() 2015-09-11 04:30:08 +03:00
Alexander Udalov 4dbfce605e Minor, improve exception message for non-deserialized types 2015-09-10 21:45:10 +03:00
Denis Zharkov df97496a16 Deprecate 'kotlin.throws' in favor of 'kotlin.jvm.Throws' 2015-09-10 20:39:05 +03:00
Dmitry Petrov 6850e9180e Effectively this is a return of "${facadeName}__${partName}" scheme.
Suggestions from @udalov:
- Make multifile class parts synthetic.
- Multifile class parts should have well-formed Java identifiers as names.
- Multifile class part names should contain facade name.
Add test with clashing part names.
Add test with local generic classes used in method signatures
(it works with parts names not being well-formed Java identifiers, though).

Capitalized annotations.
2015-09-10 18:03:34 +03:00
Alexander Udalov a1a2adf523 Fix inheritance from protected members of interfaces
#KT-3029 Fixed
2015-09-10 15:42:58 +03:00
Michael Bogdanov a5f7df3ebf Fix for KT-9064
#KT-9064 Fixed
2015-09-10 11:08:02 +03:00
Pavel V. Talanov ee393955c4 Use correct codegen for creating light classes for file facade 2015-09-09 21:21:00 +03:00
Dmitry Petrov 0839d78797 Fix CodegenFileClassesProvider problems related to wrong/incomplete code in IDE 2015-09-09 19:08:19 +03:00
Dmitry Petrov bf1c0260f1 Multifile class part names are "1${PartName}".
Multifile class parts are final.
2015-09-09 19:08:19 +03:00
Dmitry Petrov 025be4f541 No more CodegenContext.STATIC 2015-09-09 19:08:19 +03:00
Dmitry Petrov cd341e957e Cleanup after review
+ stub builder test for multifile class
2015-09-09 19:08:19 +03:00
Dmitry Petrov 8162272106 Cleanup
- do not use annotation resolve in CodegenFileClassProvider
- test using private methods across different parts of multifile class
2015-09-09 19:08:19 +03:00
Dmitry Petrov 5e38c99f81 Name clash test for file class vs multifile class 2015-09-09 19:08:19 +03:00
Dmitry Petrov 0c951b2ed3 Decompilation support
- class header reader for KotlinMultifileClass, KotlinMultifileClassPart
- proper implClassName for multifile class members
2015-09-09 19:08:18 +03:00
Dmitry Petrov b3421479f1 cleanup 2015-09-09 19:08:18 +03:00
Dmitry Petrov a00346a141 MultifileClassCodegen
- initial implementation
- new Kotlin file kinds + stub builder
2015-09-09 19:08:17 +03:00
Alexander Udalov 3c4b2994a9 Fix protected call to super method from lambda
Previously JVM back-end had an assumption that if we're calling a method
declared in the super class from a lambda via a synthetic accessor, that should
be a super call and it must be done with 'invokespecial'. Which is wrong
because a method declared in the super class may be open and overridden in the
subclass, so 'invokevirtual' should be used. Surprisingly, Java SE verifier
allowed both instructions, but on Android only the latter is possible

 #KT-8899 Fixed
 #KT-9052 Fixed
2015-09-08 20:28:35 +03:00
Alexander Udalov 1ccd0f9fc2 Add GenerationState to CodegenContext 2015-09-08 20:28:34 +03:00
Alexander Udalov 67d683bc59 Minor, use ResolvedCall#getSuperCallExpression in codegen 2015-09-08 20:28:34 +03:00
Alexander Udalov 8a5e83b947 Refactor CodegenContext#accessibleDescriptorIfNeeded 2015-09-08 20:28:33 +03:00
Dmitry Petrov c18f87f0c7 Cleanup after review 2015-09-08 13:02:56 +03:00
Dmitry Petrov 2519641b2b JvmName annotation support, single-file facade case (just rename file facade class)
- initial implementation of JvmFileClassesProvider
- migrate some of PackagePartClassUtil usages to JvmFileClassesProvider (mostly in Codegen)
- placeholder ("no resolve") implementation for migration period and unclear cases
- tests
2015-09-08 13:02:56 +03:00
Michael Bogdanov 912111d237 Fix for KT-8948: CompilationException: Back-end (JVM) Internal error: Couldn't inline method call 'foo' into
#KT-8948 Fixed
2015-09-08 11:34:40 +03:00
Alexey Tsvetkov 12181d274b Remove InlineRegistering interface 2015-09-08 05:49:35 +03:00
Alexey Tsvetkov 7e515e3820 Use simple data class TargetId instead of Module to get incremental cache 2015-09-08 05:49:34 +03:00
Alexey Tsvetkov 61423a19f0 Fix incremental compilation of inline call assigned to val 2015-09-08 05:49:34 +03:00
Alexey Tsvetkov ed5dcf2182 Simplify getting class file path for functions from current module 2015-09-08 05:49:33 +03:00
Alexey Tsvetkov 8cc2e0f68d Always use class file as inline fun source 2015-09-08 05:49:32 +03:00
Alexey Tsvetkov f9fe01047d Fix incremental packages 2015-09-08 05:49:32 +03:00