Ilya Gorbunov
2f8a431a79
Change getOrElse and getOrPut implementations so that double lookup is made when map doesn't contain value, rather when does.
2015-06-24 21:39:34 +03:00
Ilya Gorbunov
5306e88425
Provide the way to specify implicit default for a readonly or mutable map.
...
Refactor: rename default key and value providers.
2015-06-24 21:39:33 +03:00
Ilya Gorbunov
d137a83471
Simple extensions to delegate readonly property to Map and read-write property to MutableMap without delegate wrappers.
...
Delegation to map with custom key selector by map accessors.
2015-06-24 21:39:31 +03:00
Ilya Gorbunov
2989586582
Change Lazy from an interface to an abstract class with internal constructor to prevent implementations violating its contract.
2015-06-24 21:39:30 +03:00
Ilya Gorbunov
346ea28337
lazyOf to create already initialized lazy value.
2015-06-19 23:08:17 +03:00
Ilya Gorbunov
b71fe4cd25
Lazy: Rename valueCreated property to isInitialized() function.
...
Notes about behavior of Lazy when initializer throws an exception.
2015-06-19 23:08:15 +03:00
Ilya Gorbunov
ecd131a7a1
Lazy made serializable.
2015-06-19 23:08:14 +03:00
Ilya Gorbunov
bfdb200cc7
Lazy: Use UNINITIALIZED_VALUE instead of null to indicate that value was not initialized. Remove escape and unescape methods.
2015-06-19 23:08:12 +03:00
Ilya Gorbunov
59ff9dc3cf
Document lazy interface and methods.
2015-06-19 23:08:11 +03:00
Ilya Gorbunov
536e669023
Provide Lazy<T> in kotlin package — an interface that represents lazily computed value. Read-only properties can be delegated to lazy with the extension getter. Delegates.lazy and blockingLazy are deprecated.
2015-06-19 23:08:09 +03:00
Ilya Gorbunov
f2788d53c0
Refactor: rename PropertyMetadata parameter from 'desc' to 'property'.
...
Correct test data after parameter has been renamed.
2015-06-19 23:08:08 +03:00
Ilya Gorbunov
6b747cf6f8
Move delegate property interfaces to a separate file.
2015-06-19 23:00:03 +03:00
Ilya Gorbunov
fb6c7e20de
Use identity equals in lazy unescape.
...
#KT-7474 Fixed
2015-06-19 23:00:01 +03:00
Ilya Gorbunov
a80f65cfd9
Do not create empty list when reversing empty collection or array — use singleton empty list instead.
...
#KT-8099 Fixed
2015-06-19 19:41:10 +03:00
Ilya Gorbunov
4093147c69
Regenerate docs for intersect and subtract. (PR#703)
2015-06-18 15:13:48 +03:00
Ilya Gorbunov
46baffc233
Temporary Add jvmOverloads to String.indexOf
2015-06-17 23:15:33 +03:00
Denis Zharkov
eb7114bd53
Add 'constructor' keyword in whole project where needed
2015-06-12 09:55:15 +03:00
Ilya Gorbunov
1036448fcd
Improve the documentation of MatchGroupCollection.
...
#KT-7938 Fixed
2015-06-04 20:51:08 +03:00
Ilya Gorbunov
009baa11fc
Specific wording in exception message for String methods.
2015-06-04 16:45:55 +03:00
Ilya Gorbunov
a1d8e9d633
Provide dropLast and takeLastWhile methods. Optimize special cases of drop/take/dropLast/takeLast (when n is equal to zero or size of collection).
2015-06-04 16:32:25 +03:00
Ilya Gorbunov
9f85fa9720
Make proposed split replacement equivalent in behavior with additional dropLastWhile call.
...
#KT-7887
2015-06-04 16:32:23 +03:00
Ilya Gorbunov
9b17220baa
Provide dropLastWhile for Arrays, Lists and Strings.
2015-06-04 16:32:21 +03:00
Ilya Gorbunov
705c9089f0
Provide replacement for methods deprecated in favor of SAM-constructors.
...
Provide replacement for isNotEmpty on nullable receiver.
JS: Provide SAM-like constructor for Runnable.
2015-06-04 16:32:19 +03:00
Ilya Gorbunov
13c89b7ae9
Provide lineSequence() extension method instead of BufferedReader.lines() in order not to conflict with JDK8 instance method with the same name.
2015-06-04 16:32:17 +03:00
Ilya Gorbunov
0302dd06f7
Do not call mkdirs when destination file of copyTo doesn't have any parent directory.
...
#KT-7888 Fixed
2015-06-02 15:50:47 +03:00
Ilya Gorbunov
64b2e37436
Deprecate meaningless or vague-defined operations with Char operands: downTo.
2015-06-01 00:55:45 +03:00
Dmitry Jemerov
443eabf88a
make Dokka happy by sorting imports of Java classes
2015-05-28 17:53:12 +02:00
Dmitry Jemerov
8f0f02fc59
correct some errors and omissions in stdlib doc comments
2015-05-28 14:38:36 +02:00
Dmitry Jemerov
0e5b6c41dd
use new syntax for annotations
2015-05-28 14:14:05 +02:00
Ilya Gorbunov
802ca5476d
Clarify requirements for limit parameter in split method. Provide replacement for deprecated split(regex: String).
2015-05-27 23:28:06 +03:00
Ilya Gorbunov
ea85290939
Annotate deprecated members with proposed replacement.
2015-05-27 22:29:37 +03:00
Ilya Gorbunov
fa24db435d
Stdlib documentation: clarified toMap behavior when a duplicate key is encountered.
2015-05-27 22:29:33 +03:00
Ilya Gorbunov
1fb4183bbb
Prettify kdocs in stdlib, part 2.
2015-05-27 22:16:19 +03:00
Ilya Gorbunov
5c8c58f702
Prettify kdocs in stdlib, part 1.
2015-05-27 22:16:17 +03:00
Ilya Gorbunov
ae60f7a32f
Prettify kdocs and exception messages in the generated code.
2015-05-27 22:16:15 +03:00
Valentin Kipyatkov
b256329287
Added "ReplaceWith" to deprecated library functions
2015-05-27 16:15:50 +03:00
Valentin Kipyatkov
5c445ca003
DeprecatedSymbolUsageFix: dealing with dropping arguments with potential side effects + stdlib's "let" has no receiver type bound
2015-05-27 16:15:47 +03:00
Dmitry Jemerov
1188e57597
rename @overloads annotation to @jvmOverloads
2015-05-27 12:23:08 +02:00
Ilya Gorbunov
5f319e69d8
Restore String.split(String, Int) overload and make it deprecated.
2015-05-27 00:36:30 +03:00
Ilya Gorbunov
310666a617
Deprecate times method taking integer and function. Provide top-level repeat method instead.
...
#KT-7074 Fixed.
2015-05-26 23:23:37 +03:00
Ilya Gorbunov
45c82f2844
map(): Take into account size of collection being transformed when allocating ArrayList.
...
#KT-7832 Fixed.
2015-05-26 23:23:36 +03:00
Ilya Gorbunov
c9afb407f1
Provide isNotEmpty() extension function for Maps.
2015-05-26 23:23:34 +03:00
Ilya Gorbunov
01a0348685
Remove deprecated size property usage from generated code.
2015-05-26 23:23:32 +03:00
Ilya Gorbunov
1cf4a407d1
JS: Provide MIN_VALUE and MAX_VALUE member constants for Double and Float companion objects.
...
JVM: Make MIN_VALUE and MAX_VALUE not an extension but member constant properties of Double and Float companion objects.
2015-05-26 00:26:19 +03:00
Ilya Gorbunov
edc471c8ec
Optimize the implementation of emptyList, emptySet and emptyMap and make them serializable.
...
Specialized implementations of singleton List, Set and Map are used in JVM.
#KT-6682 Fixed
#KT-7104 Fixed
#KT-4840 Fixed
2015-05-24 05:03:36 +03:00
Ilya Gorbunov
0efaedd32c
Rename files to avoid having identically named files in the same package, which sometimes may confuse debugger.
2015-05-22 18:08:28 +03:00
Ilya Gorbunov
6516c74a1a
Revert back 2nd stage of split semantics change and restore deprecated String.split(String).
2015-05-21 23:13:16 +03:00
Ilya Gorbunov
6a3cb0eff8
Provide distinctBy(keySelector) method for collections and sequences.
...
Implement distinct() and toMutableSet() for sequences.
Breaking change: distinct() now returns List instead of Set.
#KT-5834 Fixed
#KT-6063 Fixed
2015-05-20 19:28:47 +03:00
Ilya Gorbunov
85e637b1e7
Revert toArrayList for primitive arrays back to trivial implementation.
...
Use newly introduced Int.MAX_VALUE in JS.
Inline mapCapacityForValues function.
Precalculate capacity of linked hash set being created with toMutableSet function.
2015-05-20 19:28:44 +03:00
Danny Thomas
7ce0487b7e
Collection performance improvements
...
Lists
- For arrays, use Arrays.asList, then toArrayList making the list creation an array copy
- For the same reason, use the ArrayList(Collection) constructor
- Replace duplicate code in toList, instead calling toArrayList
Maps/Sets
- Where the size of the source is known, precalculate the capacity, using the formula used by Guava's Maps class
- For toMap where we're unable to get at the private function, use HashSet's formula where the size is known
- Add a toMap that takes a selector and a transform, avoiding a separate step for transforming values
2015-05-20 19:27:44 +03:00