Commit Graph

4493 Commits

Author SHA1 Message Date
Alexander Udalov 085fc3bf87 Transform anonymous types even for public symbols
This became necessary when we removed the requirement to specify types for
public members, because otherwise everything fails not being able to locate the
anonymous class from another module

 #KT-9072 Fixed
 EA-72801
2015-09-11 19:51:42 +03:00
Alexander Udalov 6cecc66d10 Improve ABI version from one number to "major.minor.patch" 2015-09-11 19:28:46 +03:00
Ilya Chernikov 990c2dc5d7 Extending daemon diagnostics reporting in tests 2015-09-10 22:31:00 +02:00
Ilya Chernikov dc3c1beeb9 Fixes after review, adding basic options parsing tests 2015-09-10 22:30:58 +02:00
Ilya Chernikov 96558c52ff Refactorings, reformatting code, applying code style and other cleanup 2015-09-10 22:30:57 +02:00
Ilya Chernikov c4719175f9 Refactoring startup and shutdown, refactoring service implementation, implementing error and info reporting to compiler output, idle autoshutdown mechanisms, fixing TargetId serializability, some other refactoring
Fixing stream to log handler (by removing non-working optimization), fixing idle time calculation, reporting refactorings
2015-09-10 22:30:56 +02:00
Ilya Chernikov 406bfba473 Implementation of multiple daemon instances management 2015-09-10 22:30:55 +02:00
Alexander Udalov 3e5c8d1b79 Fix NPE on empty JVM name
#KT-9113 Fixed
2015-09-10 21:44:18 +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
Mikhail Glukhikh 9b11b5300c Elvis DFA: now only left part is taken into account #KT-9100 Fixed
I had to fix a few incorrect tests using something like x!! in Elvis right part, and also one bug in our code
2015-09-10 17:50:57 +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 908228a3cf Test for obsolete KT-8133
#KT-8133 Obsolete
2015-09-10 12:43:27 +03:00
Michael Bogdanov a5f7df3ebf Fix for KT-9064
#KT-9064 Fixed
2015-09-10 11:08:02 +03:00
Pavel V. Talanov daaefcc7fd Test completion of single file facades in java 2015-09-09 21:20:35 +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 e88584742e basic multifile class codegen tests 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
Michael Bogdanov a52281f52a Support default module name for withKotlin ant task 2015-09-09 13:32:39 +03:00
Denis Zharkov 7c16fb8a89 Fix StringIndexOutOfBoundsException
#EA-72837 Fixed
2015-09-09 12:51:19 +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
Denis Zharkov 297e9484ba Deprecate decapitalized annotations 2015-09-08 17:50:41 +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
Mikhail Glukhikh 0257f46ebb Special modifier parsing for enum entries: last of them is considered as an enum entry name #KT-9088 Fixed 2015-09-08 17:18:28 +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
Denis Zharkov 676ca86ea4 Deprecate escaped modifiers and unescaped annotations 2015-09-08 12:11:30 +03:00
Michael Bogdanov 25cd9de71a Support default module name in ant task 2015-09-08 11:34:40 +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
Mikhail Glukhikh 24252b64d0 Test and fix for NPE in CFA #KT-9078 Fixed #EA-71535 Fixed 2015-09-08 11:31:15 +03:00
Denis Zharkov fc447e2d2f Parse some builtin annotations as modifiers
But still resolve them as annotations.
Mostly it's needed as begin of migration path, one day they become modifiers anyway

Some tests are dropped because they supposed that `annotation` should have parameter
2015-09-08 08:53:35 +03:00
Alexey Tsvetkov b25dfabbcc Fix modules tests 2015-09-08 05:49:32 +03:00
Alexey Tsvetkov 5f05f0d678 Move Module to util method 2015-09-08 05:49:32 +03:00
Alexey Tsvetkov e90ecc48c5 Save target type in Kotlin Builder 2015-09-08 05:49:32 +03:00
Svetlana Isakova fe34d1673e Exception 'Base expression was not processed: function literal' fixed 2015-09-07 17:05:40 +03:00
Svetlana Isakova 0999d8ea8e Moved 'initial' (renamed from 'topLevel') flag to ConstraintContext 2015-09-07 17:05:39 +03:00
Svetlana Isakova 4f28a0a9a1 KT-8879 Stackoverflow exception on completion from inference
#KT-8879 Fixed
Added ConstraintContext storing 'derivedFrom' variables.
This information is used to prevent infinite recursion:
if a variable was substituted in a type of a bound, it shouldn't be substituted there for the second time.
2015-09-07 17:05:39 +03:00
Michael Bogdanov b58479a169 TEST_MODULE_NAME extraction 2015-09-07 16:29:15 +03:00
Michael Bogdanov 2ca9b3ae0e Code clean 2015-09-07 16:29:10 +03:00
Michael Bogdanov 20bb9963b3 smoke test fix 2015-09-07 16:29:10 +03:00
Michael Bogdanov f1c091e897 Serialize mappings via proto 2015-09-07 16:29:03 +03:00
Michael Bogdanov 672d25e7e0 PackagePartProvider refactoring 2015-09-07 16:29:02 +03:00
Michael Bogdanov 9e53a0d057 Debugger fix 2015-09-07 16:28:56 +03:00
Michael Bogdanov 9f0662468f Lazy module name propagation 2015-09-07 16:28:56 +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
Michael Bogdanov 43af127ce8 new fixes 2015-09-07 16:28:52 +03:00
Michael Bogdanov e83ec1017b Reflection support 2015-09-07 16:28:51 +03:00
Michael Bogdanov 357a6d9902 repl fix 2015-09-07 16:28:51 +03:00
Michael Bogdanov e18c1bb360 propagate proper packageMappingProvider in tests 2015-09-07 16:28:50 +03:00
Michael Bogdanov 5581d4e207 Don't verify mapping files and proper packagemapper propagation 2015-09-07 16:28:49 +03:00