Commit Graph

26219 Commits

Author SHA1 Message Date
Dmitry Petrov 3dfe9951ef Incremental compilation support for multifile classes. 2015-09-30 09:56:05 +03:00
Denis Zharkov ea8ada4664 Fix accessor naming test: count only method declarations 2015-09-30 08:19:52 +03:00
Denis Zharkov 22d58239e3 Support DefaultImpls in light-classes and indices
#KT-4647 Fixed
2015-09-30 08:19:52 +03:00
Denis Zharkov 8b8fa40348 Drop tests with obsolete assumption
DefaultImpls classes are not visible in IDE no more because they are inner.
2015-09-30 08:19:52 +03:00
Denis Zharkov fd0c92e307 Record inner class info for interface and DefaultImpls 2015-09-30 08:19:51 +03:00
Denis Zharkov c1bed7efc7 Move generation of non-local interface DefaultImpls
`DefaultImpls` should be inner class of it's interface,
so for proper light classes building it should be built
before original interface has been done, i.e. `done` method called.

Everything is complicated with local interfaces, so they are just left untouched
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
Denis Zharkov cabf0df5d1 Minor. Rename mapTraitImpl -> mapDefaultImpls 2015-09-30 08:19:51 +03:00
Denis Zharkov b2d4bdc802 Minor. Rename isTrait -> isInterface 2015-09-30 08:19:51 +03:00
Denis Zharkov 6061528f7f Minor. Rename isInterface -> isJvmInterface 2015-09-30 08:19:51 +03:00
Denis Zharkov cb1bdfde52 Minor. TraitImplBodyCodegen -> InterfaceImplBodyCodegen 2015-09-30 08:19:51 +03:00
Denis Zharkov 27bc62bd8e Minor. Rename constants: TRAIT_IMPL* -> DEFAULT_IMPLS* 2015-09-30 08:19:50 +03:00
Yan Zhulanow 32e2a550b4 'infix' modifier 2015-09-30 04:03:27 +03:00
Alexander Udalov 1fbfff97fa Delete NoInternalVisibilityInStdLibTest
'internal' is not a default visibility anymore and thus makes sense in stdlib
2015-09-29 21:42:58 +03:00
Zalim Bashorov 90915f2432 Backup project's system dir when create backup for debugging Kotlin incremental compilation 2015-09-29 19:42:30 +03:00
Zalim Bashorov 0eac238f9b KotlinBuilder: improve logging 2015-09-29 19:42:29 +03:00
Valentin Kipyatkov 2d0c1cd77d Advanced ABI version after accessor naming change 2015-09-29 18:38:42 +03:00
Valentin Kipyatkov 94d8e3f4b6 "is" getter naming allowed for non-booleans too 2015-09-29 18:32:25 +03:00
Valentin Kipyatkov 20bddce18d No synthetic property for false get-method like "issue()" 2015-09-29 18:32:25 +03:00
Valentin Kipyatkov 8f1a3043de Synthetic properties made locale-independant too 2015-09-29 18:32:25 +03:00
Valentin Kipyatkov 069ce12604 Accessor naming should be locale-independant 2015-09-29 18:32:24 +03:00
Valentin Kipyatkov 219fc46a36 Renamed property to avoid name clash 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
Valentin Kipyatkov 98da621ab3 Temporary rename of properties starting with "is" and used from java code (will revert back after changing accessor naming policy) 2015-09-29 18:32:23 +03:00
Mikhail Glukhikh 1941827780 Typo fixed 2015-09-29 17:14:06 +03:00
Alexander Udalov 3b018e9eb0 Minor, move serialization-related stuff in codegen to separate package 2015-09-29 16:31:21 +03:00
Alexander Udalov ba80a2404f Minor, improve signature of AsmUtil#writeAnnotationData 2015-09-29 16:26:29 +03:00
Alexander Udalov 3b9d90429b Simplify local class name serialization, don't go through extension
Also fix it for the case of a class in a non-default package
2015-09-29 16:26:28 +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
Alexander Udalov 542bfab96f Don't write unnecessary information to ValueParameter proto
Flags can have a default value and the index can be trivially computed almost
all the time
2015-09-29 16:26:28 +03:00
Alexander Udalov ccf72668e0 Don't write default upper bound for type parameters in protobuf 2015-09-29 16:26:27 +03:00
Alexander Udalov 6a8d0fbd75 Introduce infrastructure to separate string table from metadata on JVM
Nothing especially helpful happens here, this is only a big refactoring
introducing a separate string array for the string table, which is currently
always empty, but will contain actual strings soon
2015-09-29 16:26:27 +03:00
Alexander Udalov 5fe958f034 Add target TYPE to JVM metadata annotations 2015-09-29 16:26:26 +03:00
Alexander Udalov 89fe54c951 Remove NameResolver#getFqName, replace with getClassId 2015-09-29 16:26:26 +03:00
Alexander Udalov 7d5bd3cf50 Simplify storage of JVM signatures in binary metadata
Store the whole method & field descriptor strings. Moving these strings to
separate annotation arguments later will allow to reuse them with the ones in
the constant pool, presumably allowing to save lots of space (up to 10%)
2015-09-29 16:26:25 +03:00
Alexander Udalov 68051fa3bb Minor, refine parameter type of StringTable#getFqNameIndex 2015-09-29 16:26:25 +03:00
Alexander Udalov 5477570066 Extract interface out of NameResolver 2015-09-29 16:26:24 +03:00
Alexander Udalov da68c4d9ee Extract interface out of StringTable
Rework SerializerExtension interface: don't pass StringTable to each method
every time, create it in each extension's constructor instead and expose to
DescriptorSerializer with an interface method
2015-09-29 16:26:24 +03:00
Alexander Udalov e749bc262d Delete deprecated Type.Constructor message, advance ABI version 2015-09-29 16:26:24 +03:00
Nikolay Krasko 42eb413066 Update since to 142.5047.6 2015-09-29 15:43:02 +03:00
Stanislav Erokhin 5a61871d4b Minor. Fix testdata. 2015-09-29 13:33:57 +03:00
Stanislav Erokhin 5adec83907 Minor. Fix util function getResolutionScope. 2015-09-29 13:33:56 +03:00
Stanislav Erokhin eb5a129253 Created util function recordScope and record scope for file and value parameters. 2015-09-29 13:33:56 +03:00
Stanislav Erokhin fd503d0367 Minor. Replaced TYPE_RESOLUTION_SCOPE to LEXICAL_SCOPE 2015-09-29 13:33:55 +03:00
Mikhail Glukhikh 3d6d527d93 Synthetic 'field' variable is no more created in extension property accessors #KT-9303 Fixed 2015-09-29 13:05:19 +03:00
Mikhail Glukhikh 7b4f18035f L-value of assignment expression can now be annotated with expression-targeted annotation #KT-9154 Fixed 2015-09-29 13:05:16 +03:00
Mikhail Glukhikh f4ccb16c2e Function expressions can be now annotated with expression-targeted annotation #KT-9323 Fixed 2015-09-29 13:05:13 +03:00
Mikhail Glukhikh 4e91f2ffb7 'open' + 'private' and 'abstract' + 'private' are now incompatible for functions and properties #KT-9324 Fixed 2015-09-29 13:05:11 +03:00
Mikhail Glukhikh 7cf2840fe5 'final' is deprecated in interfaces 2015-09-29 13:05:08 +03:00
Ilya Gorbunov a55f9feacb Mark CharSequence.iterator() with operator. 2015-09-28 21:50:54 +03:00