Commit Graph

1553 Commits

Author SHA1 Message Date
Denis Zharkov fd0c92e307 Record inner class info for interface and DefaultImpls 2015-09-30 08:19:51 +03:00
Denis Zharkov a101fffd9a Change INTERFACE_IMPL_CLASS_NAME: $TImpl -> DefaultImpls 2015-09-30 08:19:51 +03:00
Valentin Kipyatkov 069ce12604 Accessor naming should be locale-independant 2015-09-29 18:32:24 +03:00
Valentin Kipyatkov 420c6856be Changed naming algorithm of accessor name generation: "isXXX" and "kClass" cases affected 2015-09-29 18:32:24 +03:00
Alexander Udalov 1036506b25 Introduce new string table optimized for JVM class files
This format of the string table allows to reduce the size of the Kotlin
metadata in JVM class files by reusing constants already present in the
constant pool. Currently the string table produced by JvmStringTable is not
fully optimized in serialization (in particular, the 'substring' operation
which will be used to extract type names out of generic signature, is not used
at all), but the format and its complete support in the deserialization
(JvmNameResolver) allows future improvement without changing the binary version
2015-09-29 16:26:28 +03:00
Michael Nedzelsky c62b9dc416 remove test for KT-2257: cannot access private namespace var in multi-file namespace 2015-09-25 21:16:04 +03:00
Ilya Gorbunov 1622cf9506 Fix stdlib facade names in bytecode generation and decompilation tests. 2015-09-25 21:10:13 +03:00
Yan Zhulanow aada13c91f Deprecate @publicField 2015-09-25 19:51:07 +03:00
Yan Zhulanow cc2d005984 Make lateinit diagnostics more clear 2015-09-25 19:51:06 +03:00
Yan Zhulanow 6db9344659 Fix compiler tests 2015-09-25 19:20:20 +03:00
Denis Zharkov 505cb37052 Generate deprecated flag on getter of const val's 2015-09-25 18:12:45 +03:00
Mikhail Glukhikh 103bb320c8 Do not generate non-function/getter/setter (expression) annotations on anonymous functions 2015-09-25 17:46:38 +03:00
Denis Zharkov 3f6cadf9b7 Change FUNCTION_EXPRESSION_WITH_NAME severity to ERROR
Also drop deprecation related parts and get rid of usages of this `feature` within testData
2015-09-25 08:29:26 +03:00
Stanislav Erokhin 88815c40cc Minor. Fix testdata. 2015-09-24 14:07:51 +03:00
Michael Bogdanov e5334ed9b8 Compare arrays via equals (not Arrays.equals) in data classes 2015-09-24 12:00:19 +03:00
Michael Bogdanov cf57d56ab3 Don't generate private members in interface 2015-09-24 12:00:18 +03:00
Michael Bogdanov 2e6b56691c Fix for: KT-8089 NoSuchFieldError
#KT-8089 Fixed
2015-09-24 09:36:46 +03:00
Michael Nedzelsky 01ece0faa4 Revert "fix tests (internal -> public)"
This reverts commit e86bf03e76.
2015-09-23 17:45:40 +03:00
Dmitry Petrov 3cd1c222f0 Generate delegates to multifile class members in package facade classes
(unless using -Xmultifile-package-facades option)
2015-09-23 17:41:13 +03:00
Dmitry Petrov 5cdbdfc2cc - Annotate package facades with java.lang.Deprecated.
- Provide KotlinDelegatedMethod annotation on package facade members.
2015-09-23 17:41:12 +03:00
Denis Zharkov dcb84a7d0a Make annotations-modifiers private and fix some lost usages
It's needed to prevent usages of them as real annotation/type.
But we can't remove them, because currently some modifiers
are artificially resolved as annotations of those classes.
2015-09-23 12:18:12 +03:00
Denis Zharkov 098f5462eb Drop inlineOptions and fix forgotten usages 2015-09-23 12:18:12 +03:00
Denis Zharkov d937a7cefc Generate field for const-val with same visibility as desciptor
Also add test checking that constant static final fields generated for them
2015-09-23 08:20:57 +03:00
Michael Nedzelsky e86bf03e76 fix tests (internal -> public) 2015-09-23 07:49:29 +03:00
Dmitry Jemerov 4ca434da54 remove support for 'trait' keyword 2015-09-22 15:00:24 +02:00
Mikhail Glukhikh a1e3471d92 "field": deprecated warnings introduced, compiler tests migrated to the new syntax 2015-09-21 15:48:00 +03:00
Mikhail Glukhikh 9f640b00d9 "field": synthetic variable creation in accessors, codegen changed accordingly, a set of tests, relevant code fix (j2k) 2015-09-21 15:47:49 +03:00
Dmitry Petrov 7f4ae52517 Generate annotations for single-file classes. 2015-09-21 12:10:40 +03:00
Ilya Gorbunov 9c974b6c5c Fix deprecations in testData: BlackBoxWithStdLibCodegenTest 2015-09-19 04:33:20 +03:00
Ilya Gorbunov e40a5457e3 Fix deprecations in testData: arrayOf usages. 2015-09-19 04:32:56 +03:00
Stanislav Erokhin 387d16d1d5 Regenerate RangesCodegenTest 2015-09-18 21:00:19 +03:00
Denis Zharkov 9dada595b6 Replace deprecated annotations with modifiers in testData 2015-09-18 10:14:41 +03:00
Denis Zharkov 4850fd10f0 Regenerate test data containing rendered descriptors
Introduced '@' after each annotation
2015-09-18 10:14:39 +03:00
Denis Zharkov 9adde77c47 Replace inlineOption(ONLY_LOCAL_RETURN) with crossinline in testData 2015-09-18 10:14:33 +03:00
Denis Zharkov bae3320d52 Get rid of deprecated annotations in testData 2015-09-18 10:14:32 +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 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 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
Yan Zhulanow 01b2d02196 Remove @get: @set:, reorder remaining annotation targets 2015-09-11 22:32:23 +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 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
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 e88584742e basic multifile class codegen tests 2015-09-09 19:08:18 +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
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