Commit Graph

190 Commits

Author SHA1 Message Date
Ilya Gorbunov ca798d8d71 Rename reverse to reversed.
#KT-8171
2015-08-27 11:45:30 +03:00
Ilya Gorbunov 5a474adf59 Unify selector parameter names. 2015-08-27 00:09:57 +03:00
Ilya Gorbunov 521e0b679d Rename sortedDescendingBy to sortedByDescending 2015-08-27 00:08:50 +03:00
Ilya Gorbunov 8d481fc611 Deprecate all sort methods and provide sorted ones.
#KT-4903
2015-08-27 00:07:43 +03:00
Ilya Gorbunov 2f1c8a3dfa Remove special case of generation for numeric and toPrimitiveArrays. 2015-07-27 19:02:49 +03:00
Ilya Gorbunov dd71cbb96e Accept more generic ranges in contains. 2015-07-27 19:02:47 +03:00
Ilya Gorbunov 065945176e Use bare types in check and remove unneeded cast after.
Do not check whether a sequence is actually a collection or list.
2015-07-24 04:35:45 +03:00
Ilya Gorbunov e799c92131 Accept more generic range for coerceIn. 2015-07-24 04:35:33 +03:00
Ilya Gorbunov 877cb72ba1 Array.copyOfRange: rename from, to to fromIndex, toIndex 2015-07-24 04:35:21 +03:00
Ilya Gorbunov aeb7666578 Provide binarySearch with comparator for arrays. 2015-07-24 04:35:08 +03:00
Ilya Gorbunov 46858ddabd Allow to specify optional from and to indices for filling an array.
#KT-8382 Fixed
2015-07-24 04:34:19 +03:00
Ilya Gorbunov c1975d0b2e Array.fill returns Unit since it's an in-place array operation.
Revised #KT-4760
2015-07-24 04:34:07 +03:00
Ilya Gorbunov 12e3542bce Provide toTypedArray method for primitive arrays. 2015-07-24 04:33:55 +03:00
Ilya Gorbunov f604eef2fe Undeprecate find(predicate) and generate it for all collection-like types. Provide findLast(predicate).
Drop deprecated method findNot and extension properties first, last, head, tail
#KT-5185 Fixed
2015-07-24 04:28:46 +03:00
Ilya Gorbunov 1cc94f92e2 Also generate contains for meaningless combinations of types to prevent mistakenly using contains from an Iterable.
#KT-6361
2015-07-24 04:28:34 +03:00
Ilya Gorbunov b7fbb60db4 Generate contains function for all combinations of primitive numeric ranges and arguments.
#KT-6361
2015-07-24 04:14:06 +03:00
Ilya Gorbunov 71f3e3049a Provide until function to construct integer ranges with an end being excluded from range.
#KT-4665 Fixed
2015-07-24 04:13:41 +03:00
Ilya Gorbunov 808170a84b Generate range downTos with templates DSL 2015-07-24 04:13:29 +03:00
Ilya Gorbunov 2c396cf28e Add clarification about the lazy nature of Sequence.plus and Sequence.minus operations. 2015-07-17 10:54:54 +03:00
Ilya Gorbunov 8ac613dd67 Fix docs for String.partition
#KT-8493 Fixed
2015-07-17 10:54:40 +03:00
Ilya Gorbunov fbd0c16551 Merging arrays without creating iterators. 2015-07-17 10:54:28 +03:00
Ilya Gorbunov 9d120dcd44 Provide minus and minusAssign for iterables, collections, sets, sequences.
removeAll and retainAll special case optimizations.
#KT-3721 Fixed
#KT-7466 Fixed
2015-07-17 10:53:18 +03:00
Ilya Gorbunov 048a3ebcc1 Implement plus for sequence as operand and refactor plus tests. 2015-07-17 10:53:05 +03:00
Ilya Gorbunov a7bf415ad5 plus: do not generate ambiguos overloads. 2015-07-17 10:51:35 +03:00
Ilya Gorbunov d89af24d6c Variance of arrays sorted out.
Use concat for array + 1 in JS.
2015-07-17 10:51:22 +03:00
Ilya Gorbunov 7866184eb6 Array.plus — different implementations for JVM and JS.
Array.copyOf, copyOfRange available in JS.
2015-07-17 10:51:09 +03:00
Ilya Gorbunov c883df544c Make plus operation to be strict binary or right external binary for Sets and Arrays. 2015-07-17 10:50:58 +03:00
Ilya Gorbunov 0a320a13e5 Stdlib generators: change constants for Long: ZERO, ONE, -ONE. 2015-07-15 17:21:52 +03:00
Ilya Gorbunov 96b79eebe7 asSequence returns empty sequence singleton for empty arrays and strings.
#KT-8450 Fixed
2015-07-15 17:08:27 +03:00
Denis Zharkov 4479c215d4 Change return type for iterator method of asList impls for *Array
These objects implement AbstractList that extending MutableCollection.
After type propagation `iterator` of AbstractList become MutableIterator, so it cannot be overriden with immutable Iterator
2015-07-09 16:36:46 +03:00
Ilya Gorbunov f7436064d0 Unify componentN templates and add NOTHING_TO_INLINE suppression. 2015-07-03 16:38:10 +03:00
Ilya Gorbunov 9618a3542f Provide getOrElse and getOrNull methods for indexed collections.
Breaking: elementAtOrElse is no longer inlined for Iterables and Sequences.
#KT-6952
2015-07-03 16:38:08 +03:00
Ilya Gorbunov 4660b07687 StdLib cleanup: drop deprecated iterators and streams. 2015-06-29 17:06:45 +03:00
Ilya Gorbunov f3a19ebe11 StdLib deprecations cleanup: length, size, indices and other collection operations. 2015-06-29 17:06:20 +03:00
Ilya Gorbunov cbdaf2a151 Minor: regenerate generated code. 2015-06-26 19:40:56 +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 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 9b17220baa Provide dropLastWhile for Arrays, Lists and Strings. 2015-06-04 16:32:21 +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 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