Commit Graph

200 Commits

Author SHA1 Message Date
Ilya Gorbunov 64b2e37436 Deprecate meaningless or vague-defined operations with Char operands: downTo. 2015-06-01 00:55:45 +03:00
Dmitry Jemerov 8f0f02fc59 correct some errors and omissions in stdlib doc comments 2015-05-28 14:38:36 +02: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 ae60f7a32f Prettify kdocs and exception messages in the generated code. 2015-05-27 22:16:15 +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 01a0348685 Remove deprecated size property usage from generated code. 2015-05-26 23:23:32 +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
Ilya Gorbunov 1fc5c39c22 Remove overload of joinToString with 5 parameters and it's usage from java code. 2015-05-15 03:02:48 +03:00
Ilya Gorbunov f7aa997003 Provide fast path for negative index values in elementAt.
Minor: kdoc wording.
2015-05-12 21:07:24 +03:00
Ilya Gorbunov a5ed5d4269 Generate elementAtOrNull and elementAtOrElse extension methods for iterables, collections, sequences, etc.
#KT-6952 Fixed
2015-05-12 20:08:20 +03:00
Ilya Gorbunov 16d20ff009 Temporary add jvm.overloads annotation for generated joinToString() method.
Stdlib generator: allow to specify arbitrary annotations for all or some of generic function expansions.
2015-05-09 01:11:49 +03:00
Ilya Gorbunov d531d7130f Add an optional parameter to joinToString() and joinTo() functions: lambda function which maps the element to string.
#KT-5468 Fixed
2015-05-09 01:11:47 +03:00
Ilya Gorbunov 7fba979372 Generate to[Primitive]Array() methods for generic arrays and collections.
#KT-4180 Fixed
2015-04-22 18:21:37 +03:00
Ilya Gorbunov 5dacb5a745 Provide average() method for iterables, sequences and arrays.
#KT-3843 Fixed
2015-04-22 18:21:29 +03:00
Ilya Gorbunov 9759be5493 Generate sum() methods for arrays, iterables and sequences of Byte and Short. These overloads got explicit platformName.
Heuristics to decide when to set platformName.
#KT-3714
2015-04-22 18:21:24 +03:00
Ilya Gorbunov ccc3646bb8 Generate coerceAtLeast, coerceAtMost and coerceIn extension functions for numbers and other Comparables. 2015-04-22 18:20:47 +03:00
Ilya Gorbunov 899a01e8c2 Rename sequence() extension to asSequence() 2015-04-22 17:57:20 +03:00
Ilya Gorbunov 9ed2cb3858 Provide zip() and merge() overloads for primitive arrays with themselves.
Better predicting size of resulting list of plus() operation.
#KT-4968 Fixed
2015-04-22 03:19:30 +03:00
Ilya Gorbunov 58310d172f Deprecate sequence implementations in favor of sequence operations. 2015-04-21 21:27:24 +03:00
Ilya Gorbunov 043b27bfe5 Make more generic signature for reduce and reduceRight methods.
Fixes #KT-2287
2015-04-15 17:34:08 +03:00
Stanislav Erokhin b703f59e04 Migrate kotlin sources, maven projects and stdlib to new lambda syntax 2015-04-07 13:08:53 +03:00
Ilya Gorbunov f87dcff723 Fixed #KT-6476. last(predicate) and lastOrNull(predicate) use reverse iteration when possible. 2015-04-01 15:51:08 +03:00
Ilya Gorbunov 25cfd36e7c drop, take: combine implementations for Collections, Lists and Iterables.
slice: predict length of resulting list.
2015-03-25 03:26:18 +03:00
Ilya Gorbunov 4a7918b0a1 Add takeLast method for String, lists and arrays.
Check the parameter n in drop, take and takeLast methods.
2015-03-25 03:26:06 +03:00
Ilya Ryzhenkov 4fa5d9cb48 Fix double "deprecated" annotation in generated sources which confuses DX compiler. 2015-03-13 19:30:46 +03:00
Ilya Ryzhenkov e448f40756 Rename Stream<T> to Sequence<T> and provide migration path via deprecated types and functions. 2015-03-12 22:56:43 +03:00
Dmitry Jemerov 32072d0a4f More standard library documentation. 2015-03-12 16:52:20 +01:00
Ilya Ryzhenkov bfeb21afb0 stdlib: stream() for Map #KT-6547 Fixed 2015-03-10 11:21:41 +03:00
Valery Kharitonov 8873be22d5 Implemented asList() method for arrays. #KT-1313 Fixed 2015-03-10 11:21:40 +03:00
Valery Kharitonov c8094e7587 Implemented indexOfFirst/Last(predicate). #KT-6577 Fixed 2015-03-10 11:21:40 +03:00
Valery Kharitonov 38a4f86db2 Implemented asIterable method for arrays. #KT-1313 Fixed 2015-03-10 11:21:39 +03:00
Dmitry Jemerov 4352023d60 generate more methods and properties in the standard library 2015-02-10 14:31:20 +01:00
Dmitry Jemerov 7827bbf64b Standard library documentation updates. 2015-02-09 19:19:29 +01:00
Ilya Ryzhenkov 1d4591d99c stdlib: add sumBy(function) 2015-01-20 22:39:23 +03:00
Valentin Kipyatkov 817b86a820 Temporary added explicit imports of java.util.Collections into stdlib 2014-12-26 16:23:18 +03:00
Ilya Ryzhenkov d908678dcf Take into account collection sizes when possible #KT-6180 2014-12-23 20:00:01 +03:00
Ilya Ryzhenkov 4cd2ba1e30 Fix Array<out> variance in stdlib #KT-6482 Fixed 2014-12-23 20:00:01 +03:00
Ilya Ryzhenkov 071eb87f27 Remove unnecessary constraint from filterIsInstance(Class<R>) signature #KT-6516 Fixed 2014-12-23 20:00:00 +03:00
Ilya Ryzhenkov f4b96a0a1a Add mapIndexed() function for common case withIndex().map{} #KT-3153 Fixed 2014-12-16 17:33:27 +03:00
Ilya Ryzhenkov 846014b37f Add missing sum() on Streams. 2014-12-16 17:33:27 +03:00
Ilya Ryzhenkov 2b8ffeda28 Stop generating deprecated string functions, move to deprecated folder. 2014-12-16 17:33:23 +03:00
Ilya Ryzhenkov fa0542b801 Clean size/length/first/head/empty properties and functions. 2014-12-16 17:33:21 +03:00
Ilya Ryzhenkov 828ba385ea Cleanup ordering, improve API 2014-12-16 17:33:20 +03:00
Ilya Ryzhenkov e890c2ee0d Deprecate withIndicies(), introduce optimized and fixed withIndex and forEachIndexed() 2014-12-16 17:33:20 +03:00
Denis Zharkov e768b4e285 stdlib: Introduced filterIsInstance version
without class-literal as a parameter
2014-11-13 20:56:10 +03:00
Ilya Ryzhenkov 2e154b73de Support componentN for arrays and lists #KT-5538 Fixed 2014-11-06 16:45:57 +03:00
Ilya Ryzhenkov c2fabf5736 Comparator<T> replaced with Comparator<in T> #KT-6030 Fixed 2014-11-06 16:45:57 +03:00