@@ -14,26 +14,60 @@ inline fun <K, V> ImmutableMap<K, V>.mutate(mutator: (MutableMap<K, V>) -> Unit)
1414inline operator fun <E > ImmutableCollection<E>.plus (element : E ): ImmutableCollection <E > = add(element)
1515inline operator fun <E > ImmutableCollection<E>.minus (element : E ): ImmutableCollection <E > = remove(element)
1616
17+
18+ operator fun <E > ImmutableCollection<E>.plus (elements : Iterable <E >): ImmutableCollection <E >
19+ = if (elements is Collection ) addAll(elements) else builder().also { it.addAll(elements) }.build()
20+ operator fun <E > ImmutableCollection<E>.plus (elements : Array <out E >): ImmutableCollection <E >
21+ = builder().also { it.addAll(elements) }.build()
22+ operator fun <E > ImmutableCollection<E>.plus (elements : Sequence <E >): ImmutableCollection <E >
23+ = builder().also { it.addAll(elements) }.build()
24+
25+
26+ operator fun <E > ImmutableCollection<E>.minus (elements : Iterable <E >): ImmutableCollection <E >
27+ = if (elements is Collection ) removeAll(elements) else builder().also { it.removeAll(elements) }.build()
28+ operator fun <E > ImmutableCollection<E>.minus (elements : Array <out E >): ImmutableCollection <E >
29+ = builder().also { it.removeAll(elements) }.build()
30+ operator fun <E > ImmutableCollection<E>.minus (elements : Sequence <E >): ImmutableCollection <E >
31+ = builder().also { it.removeAll(elements) }.build()
32+
33+
1734inline operator fun <E > ImmutableList<E>.plus (element : E ): ImmutableList <E > = add(element)
1835inline operator fun <E > ImmutableList<E>.minus (element : E ): ImmutableList <E > = remove(element)
1936
2037
2138operator fun <E > ImmutableList<E>.plus (elements : Iterable <E >): ImmutableList <E >
2239 = if (elements is Collection ) addAll(elements) else mutate { it.addAll(elements) }
40+ operator fun <E > ImmutableList<E>.plus (elements : Array <out E >): ImmutableList <E >
41+ = mutate { it.addAll(elements) }
42+ operator fun <E > ImmutableList<E>.plus (elements : Sequence <E >): ImmutableList <E >
43+ = mutate { it.addAll(elements) }
44+
2345
2446operator fun <E > ImmutableList<E>.minus (elements : Iterable <E >): ImmutableList <E >
2547 = if (elements is Collection ) removeAll(elements) else mutate { it.removeAll(elements) }
48+ operator fun <E > ImmutableList<E>.minus (elements : Array <out E >): ImmutableList <E >
49+ = mutate { it.removeAll(elements) }
50+ operator fun <E > ImmutableList<E>.minus (elements : Sequence <E >): ImmutableList <E >
51+ = mutate { it.removeAll(elements) }
2652
2753
2854inline operator fun <E > ImmutableSet<E>.plus (element : E ): ImmutableSet <E > = add(element)
2955inline operator fun <E > ImmutableSet<E>.minus (element : E ): ImmutableSet <E > = remove(element)
3056
31-
3257operator fun <E > ImmutableSet<E>.plus (elements : Iterable <E >): ImmutableSet <E >
3358 = if (elements is Collection ) addAll(elements) else mutate { it.addAll(elements) }
59+ operator fun <E > ImmutableSet<E>.plus (elements : Array <out E >): ImmutableSet <E >
60+ = mutate { it.addAll(elements) }
61+ operator fun <E > ImmutableSet<E>.plus (elements : Sequence <E >): ImmutableSet <E >
62+ = mutate { it.addAll(elements) }
63+
3464
3565operator fun <E > ImmutableSet<E>.minus (elements : Iterable <E >): ImmutableSet <E >
3666 = if (elements is Collection ) removeAll(elements) else mutate { it.removeAll(elements) }
67+ operator fun <E > ImmutableSet<E>.minus (elements : Array <out E >): ImmutableSet <E >
68+ = mutate { it.removeAll(elements) }
69+ operator fun <E > ImmutableSet<E>.minus (elements : Sequence <E >): ImmutableSet <E >
70+ = mutate { it.removeAll(elements) }
3771
3872
3973inline operator fun <K , V > ImmutableMap <out K , V >.plus (pair : Pair <K , V >): ImmutableMap <K , V >
0 commit comments