Commit Graph

4511 Commits

Author SHA1 Message Date
Dmitry Petrov 9e546bda27 Support is/as/as? with Function[K]<...> types. 2015-10-06 10:06:27 +03:00
Stanislav Erokhin b69197962d KT-9461: Inference failed: type parameter fixed early
#KT-9461 Fixed
2015-10-05 20:32:44 +03:00
Michael Nedzelsky 483110332c fix KT-431 Prohibit safe calls on namespaces, super etc
#KT-431 Fixed
2015-10-05 13:14:42 +03:00
Michael Bogdanov cd78514b76 Code clean, small refactorings and tests
#KT-8987 Fixed
2015-10-03 10:53:22 +03:00
Michael Bogdanov 3806ad65fc Fixed error with wrong parameter size calculation 2015-10-03 10:53:21 +03:00
Michael Bogdanov 2a19b06874 new tests 2015-10-03 10:53:18 +03:00
Michael Bogdanov c83a5b8bd5 Proper param propagation in inline 2015-10-03 10:53:17 +03:00
Michael Bogdanov 1f2b9ce72b Addded DefaultCallMask class and extended interface for argument generation 2015-10-03 10:53:12 +03:00
Alexander Udalov 661f4efc68 Forbid callable references to members and extensions with empty LHS
This syntax is reserved to be likely used in the future as a shorthand for
"this::foo" where the resulting expression doesn't take the receiver as a
parameter but has "this" already bound to it
2015-10-03 04:37:04 +03:00
Alexander Udalov e1ccb92438 Write built-in extensions to new protobuf messages 2015-10-03 00:59:34 +03:00
Alexander Udalov 8c0a86617a Write JVM signatures to new protobuf messages 2015-10-03 00:59:33 +03:00
Alexander Udalov ad735cd788 Split ProtoBuf.Callable to three messages: constructor, function, property
Serialize both at the moment, will drop the old one after bootstrap
2015-10-03 00:59:30 +03:00
Alexander Udalov 041af28166 Deprecate and don't write KotlinClass$Kind, to be removed later 2015-10-03 00:59:30 +03:00
Alexander Udalov 056bb3f833 Deprecate and don't write KotlinSyntheticClass$Kind, to be removed later 2015-10-03 00:59:28 +03:00
Alexander Udalov 5bb47c8365 Write KotlinInterfaceDefaultImpls annotation to DefaultImpls classes
Instead of KotlinSyntheticClass with kind = TRAIT_IMPL
2015-10-03 00:58:52 +03:00
Alexander Udalov e4090d3f30 Cleanup descriptors.proto, regenerate
- move enums and messages nested in Callable to top level, since they're likely
  to be reused in other messages soon
- delete obsolete comments: some did not any value, some became obsolete with
  custom options ("id in StringTable" -> name_id_in_table)
2015-10-02 20:30:55 +03:00
Dmitry Petrov 1f69ae254d KT-9377 Support is-checks for read-only collections
Additional tests.
2015-10-02 15:17:00 +03:00
Dmitry Petrov 06d9ff6a71 KT-9377 Support is-checks for read-only collections
Generate better code for 'as?' with mutable collection types:
use CHECKCAST, do not introduce special intrinsics for safe-as.
2015-10-02 15:17:00 +03:00
Dmitry Petrov 6cb0e5151c KT-9377 Support is-checks for read-only collections
Intrinsics for is/as/as? with mutable Kotlin collections and related types.
2015-10-02 15:17:00 +03:00
Dmitry Petrov 35881198c3 KT-9377 Support is-checks for read-only collections
Marker interfaces for mutable Kotlin collections and related classes.
2015-10-02 15:17:00 +03:00
Michael Bogdanov e91c556d06 Fix for wrong local variable table at inlining lambda with finallies 2015-10-02 13:41:41 +03:00
Pavel V. Talanov c19b8353d0 Minor, tests: remove some static accesses to builtIns 2015-10-01 17:53:20 +03:00
Pavel V. Talanov a3fbf2fabc Test that primitives, arrays, enums are implicitly serializable on jvm and not js
Specifically test calling java function that accepts java.io.Serializable
2015-10-01 17:53:19 +03:00
Pavel V. Talanov e263c85142 JetTypeChecker: adjust test data
after making some of builtin types serializable
2015-10-01 17:53:17 +03:00
Pavel V. Talanov d5624708fb Add "java.io.Serializable" as supertype to java builtIns mapped to classes that are serializable on jvm
Implementation is hacky, relies on adding fictional supertype to corresponding classes
2015-10-01 17:53:16 +03:00
Pavel V. Talanov 76029ee9b2 Introduce JvmBuiltIns and DefaultBuiltIns, different instances of KotlinBuiltIns
Make KotlinBuiltIns an abstract class
JsPlatform has DefaultBuiltIns
2015-10-01 17:53:14 +03:00
Pavel V. Talanov 22e3e192ee ModuleDescriptorImpl: remove KBI as default parameter 2015-10-01 17:53:12 +03:00
Pavel V. Talanov 767950fea3 Tests: Replace some usages of KotlinBuiltIns.getInstance()
In cases where platform is either unimportant or predefined in test code
2015-10-01 17:53:11 +03:00
Pavel V. Talanov b9da08d11c TypeIntersector: refactor it to being a static utility
Deal with intersecting empty set of types on the call site
2015-10-01 17:52:03 +03:00
Pavel V. Talanov d2a4235dd8 Pass KotlinBuiltIns into getExpectedTypePredicate utility 2015-10-01 17:51:56 +03:00
Michael Nedzelsky c7e5eb9ab8 fix AbstractBytecodeTextTest: read expected file with UTF-8 encoding 2015-10-01 12:16:48 +03:00
Valentin Kipyatkov 5afa91d4ec Restored back temporarily renamed properties 2015-09-30 22:50:27 +03:00
Michael Nedzelsky 6466facffa force UTF-8 encoding in CodegenTestCase.loadFileByFullPath 2015-09-30 22:35:38 +03:00
Mikhail Glukhikh 7256a546df Visibility modifiers are no longer allowed on local classes 2015-09-30 19:38:16 +03:00
Mikhail Glukhikh 7a99b3872b Forbid private functions with no body and private properties in traits which are abstract by default 2015-09-30 19:38:02 +03:00
Dmitry Petrov 3dfe9951ef Incremental compilation support for multifile classes. 2015-09-30 09:56:05 +03:00
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
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
Valentin Kipyatkov 8f1a3043de Synthetic properties made locale-independant too 2015-09-29 18:32:25 +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
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 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 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 e749bc262d Delete deprecated Type.Constructor message, advance ABI version 2015-09-29 16:26:24 +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