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