Commit Graph

3045 Commits

Author SHA1 Message Date
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
Nikolay Krasko 6faf3f1eba Fix deadlock in ReflectionAPICallChecker because of conflict in lazy() and storageManager 2015-09-12 15:16:10 +03:00
Alexander Udalov 6cecc66d10 Improve ABI version from one number to "major.minor.patch" 2015-09-11 19:28:46 +03:00
Alexander Udalov 3e5c8d1b79 Fix NPE on empty JVM name
#KT-9113 Fixed
2015-09-10 21:44:18 +03:00
Alexander Udalov fb31980c0b Fix EA-68149 which happened on editing Scala sources 2015-09-10 21:44:16 +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
Pavel V. Talanov e9c1df0cb9 J2K CliLightClassGenerationSupport: prettify 2015-09-09 21:21:51 +03:00
Pavel V. Talanov cda35f609a Build light classes for file facades 2015-09-09 21:20:52 +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 cd341e957e Cleanup after review
+ stub builder test for 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 b3421479f1 cleanup 2015-09-09 19:08:18 +03:00
Dmitry Petrov 879d7b1b24 workaround for NPE in proguard 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
Mikhail Glukhikh 1dee922861 kotlin.annotation.Target / Retention have now more priority than same java classes if import java.lang.annotation.* is available 2015-09-08 17:18:31 +03:00
Dmitry Petrov c18f87f0c7 Cleanup after review 2015-09-08 13:02:56 +03:00
Dmitry Petrov bc5e29df9f update tests: jvmName --> JvmName 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
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 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
Alexey Tsvetkov 0988b21e9c Use both target name and target type to get incremental cache from backend 2015-09-08 05:49:32 +03:00
Alexey Tsvetkov e0419f956e Recompile only files that call changed inline functions 2015-09-08 05:49:30 +03:00
Alexey Tsvetkov 64cc75c1ba Save info about inlined calls to incremental caches 2015-09-08 05:49:29 +03:00
Michael Bogdanov 5805c42305 Write abi version to mapping file 2015-09-07 16:29:16 +03:00
Michael Bogdanov 466b535ba9 Get rid of DeserializedNewPackageMemberScope.kt 2015-09-07 16:29:13 +03:00
Zalim Bashorov f48346f272 Introduce IncrementalPackagePartProvider to load unchanged compiled package parts using module mapping info from incremental cache 2015-09-07 16:29:07 +03:00
Zalim Bashorov ec62cccb1a Fix incremental compilation for new package parts 2015-09-07 16:29:06 +03:00
Michael Bogdanov 672d25e7e0 PackagePartProvider refactoring 2015-09-07 16:29:02 +03:00
Dmitry Petrov 5ca8f7409a Fix debugger tests.
- Index binaries by facade class fqName
- Fix DebuggerUtils: should understand new facades
- Refactor IDELightClassGenerationSupport
- Add facadeSimpleName to KotlinFileStub
2015-09-07 16:29:02 +03:00
Michael Bogdanov c274ceffe8 PackageFacadeProvider refactoring 2015-09-07 16:28:55 +03:00
Michael Bogdanov 843241848f Test fix 2015-09-07 16:28:55 +03:00
Dmitry Petrov 5fdfe8df3c PackagePartClassUtils converted to Kotlin and refactored 2015-09-07 16:28:53 +03:00
Michael Bogdanov 1fcacecf93 stubs for new components 2015-09-07 16:28:48 +03:00
Michael Bogdanov 6dcd059009 new kompiler parameter 2015-09-07 16:28:47 +03:00
Dmitry Petrov 83336553df Use special index to record files corresponding to static facade classes. 2015-09-07 16:28:45 +03:00
Dmitry Petrov ab8b5d05ed Light class generation for new facades/parts.
1st working (naive) implementation.
2015-09-07 16:28:45 +03:00
Dmitry Petrov 1c81b00143 Use ASCII capitalization for part class names 2015-09-07 16:28:44 +03:00
Dmitry Petrov a47eaa2cb5 Change part class naming scheme
update tests depending on part class naming
2015-09-07 16:28:42 +03:00
Michael Bogdanov 35d51a8ea4 Update duplicate diagnostic 2015-09-07 16:28:40 +03:00
Michael Bogdanov 8e8ff860d6 New package part naming 2015-09-07 16:28:37 +03:00
Yan Zhulanow add13cae82 lateinit modifier on property 2015-09-05 00:54:18 +03:00
Denis Zharkov 4159c83282 Support decapitilized obsolete annotations in resolve
Annotations like `deprecated`, `jvmStatic`, etc. has been renamed to capitilized themselves.
But we're going to support both versions.
It's hard just to leave both versions of classes as their class-files can clash
when compiled on register-independent file system.

So here is solution (temporary hack):
we just wrap JetScopes for package fragments of `kotlin.*`
to make them search both versions of annotations if their names are contained
in our hardcoded set.
2015-09-04 18:19:32 +03:00
Denis Zharkov 952d45dc8b Deprecate JVM platform annotations in favor of capitilized themselves 2015-09-04 18:19:31 +03:00
Denis Zharkov 5471a1d18a Add kotlin.external annotation and deprecate kotlin.jvm.native 2015-09-04 18:19:31 +03:00
Valentin Kipyatkov 37ed77467f Fixed ReplaceWith quickfix not working when synthetic extensions are used in the pattern 2015-09-03 15:55:57 +03:00
Denis Zharkov 632e336782 Prohibit unsafe covariant conversion for collections invariant in Java 2015-09-02 10:39:29 +03:00