Skip to content

Commit

Permalink
Ignore SerializableList in API validation as it breaks due to list/mu…
Browse files Browse the repository at this point in the history
…table list mapping issues in relation to different jvm versions.
  • Loading branch information
pdvrieze committed May 19, 2024
1 parent ae47fed commit 7d9830c
Show file tree
Hide file tree
Showing 6 changed files with 137 additions and 100 deletions.
4 changes: 2 additions & 2 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ pool:

strategy:
matrix:
jdk11:
jdk_version: "1.11"
# jdk11:
# jdk_version: "1.11"
jdk17:
jdk_version: "1.17"
maxParallel: 2
Expand Down
47 changes: 0 additions & 47 deletions xmlserializable/api/android/xmlserializable.api
Original file line number Diff line number Diff line change
Expand Up @@ -68,53 +68,6 @@ public final class nl/adaptivity/xmlutil/xmlserializable/SerializableFunctionsKt
public static final fun writeChildren2 (Lnl/adaptivity/xmlutil/XmlWriter;Ljava/lang/Iterable;)V
}

public final class nl/adaptivity/xmlutil/xmlserializable/SerializableList : nl/adaptivity/xmlutil/xmlserializable/BaseSerializableContainer, java/util/List, kotlin/jvm/internal/markers/KMappedMarker {
public fun <init> (Ljavax/xml/namespace/QName;Ljava/util/List;)V
public synthetic fun add (ILjava/lang/Object;)V
public fun add (ILnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)V
public synthetic fun add (Ljava/lang/Object;)Z
public fun add (Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)Z
public fun addAll (ILjava/util/Collection;)Z
public fun addAll (Ljava/util/Collection;)Z
public synthetic fun addFirst (Ljava/lang/Object;)V
public fun addFirst (Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)V
public synthetic fun addLast (Ljava/lang/Object;)V
public fun addLast (Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)V
public fun clear ()V
public final fun contains (Ljava/lang/Object;)Z
public fun contains (Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)Z
public fun containsAll (Ljava/util/Collection;)Z
public synthetic fun get (I)Ljava/lang/Object;
public fun get (I)Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;
public fun getChildren ()Ljava/lang/Iterable;
public fun getSize ()I
public final fun indexOf (Ljava/lang/Object;)I
public fun indexOf (Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)I
public fun isEmpty ()Z
public fun iterator ()Ljava/util/Iterator;
public final fun lastIndexOf (Ljava/lang/Object;)I
public fun lastIndexOf (Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)I
public fun listIterator ()Ljava/util/ListIterator;
public fun listIterator (I)Ljava/util/ListIterator;
public synthetic fun remove (I)Ljava/lang/Object;
public fun remove (I)Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;
public fun remove (Ljava/lang/Object;)Z
public fun removeAll (Ljava/util/Collection;)Z
public synthetic fun removeFirst ()Ljava/lang/Object;
public fun removeFirst ()Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;
public synthetic fun removeLast ()Ljava/lang/Object;
public fun removeLast ()Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;
public fun replaceAll (Ljava/util/function/UnaryOperator;)V
public fun retainAll (Ljava/util/Collection;)Z
public synthetic fun set (ILjava/lang/Object;)Ljava/lang/Object;
public fun set (ILnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;
public final fun size ()I
public fun sort (Ljava/util/Comparator;)V
public fun subList (II)Ljava/util/List;
public fun toArray ()[Ljava/lang/Object;
public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object;
}

public abstract interface class nl/adaptivity/xmlutil/xmlserializable/SimpleXmlDeserializable : nl/adaptivity/xmlutil/xmlserializable/XmlDeserializable {
public fun deserializeChild (Lnl/adaptivity/xmlutil/XmlReader;)Z
public fun deserializeChildText (Ljava/lang/CharSequence;)Z
Expand Down
47 changes: 0 additions & 47 deletions xmlserializable/api/jvm/xmlserializable.api
Original file line number Diff line number Diff line change
Expand Up @@ -68,53 +68,6 @@ public final class nl/adaptivity/xmlutil/xmlserializable/SerializableFunctionsKt
public static final fun writeChildren2 (Lnl/adaptivity/xmlutil/XmlWriter;Ljava/lang/Iterable;)V
}

public final class nl/adaptivity/xmlutil/xmlserializable/SerializableList : nl/adaptivity/xmlutil/xmlserializable/BaseSerializableContainer, java/util/List, kotlin/jvm/internal/markers/KMappedMarker {
public fun <init> (Ljavax/xml/namespace/QName;Ljava/util/List;)V
public synthetic fun add (ILjava/lang/Object;)V
public fun add (ILnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)V
public synthetic fun add (Ljava/lang/Object;)Z
public fun add (Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)Z
public fun addAll (ILjava/util/Collection;)Z
public fun addAll (Ljava/util/Collection;)Z
public synthetic fun addFirst (Ljava/lang/Object;)V
public fun addFirst (Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)V
public synthetic fun addLast (Ljava/lang/Object;)V
public fun addLast (Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)V
public fun clear ()V
public final fun contains (Ljava/lang/Object;)Z
public fun contains (Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)Z
public fun containsAll (Ljava/util/Collection;)Z
public synthetic fun get (I)Ljava/lang/Object;
public fun get (I)Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;
public fun getChildren ()Ljava/lang/Iterable;
public fun getSize ()I
public final fun indexOf (Ljava/lang/Object;)I
public fun indexOf (Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)I
public fun isEmpty ()Z
public fun iterator ()Ljava/util/Iterator;
public final fun lastIndexOf (Ljava/lang/Object;)I
public fun lastIndexOf (Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)I
public fun listIterator ()Ljava/util/ListIterator;
public fun listIterator (I)Ljava/util/ListIterator;
public synthetic fun remove (I)Ljava/lang/Object;
public fun remove (I)Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;
public fun remove (Ljava/lang/Object;)Z
public fun removeAll (Ljava/util/Collection;)Z
public synthetic fun removeFirst ()Ljava/lang/Object;
public fun removeFirst ()Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;
public synthetic fun removeLast ()Ljava/lang/Object;
public fun removeLast ()Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;
public fun replaceAll (Ljava/util/function/UnaryOperator;)V
public fun retainAll (Ljava/util/Collection;)Z
public synthetic fun set (ILjava/lang/Object;)Ljava/lang/Object;
public fun set (ILnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;)Lnl/adaptivity/xmlutil/xmlserializable/XmlSerializable;
public final fun size ()I
public fun sort (Ljava/util/Comparator;)V
public fun subList (II)Ljava/util/List;
public fun toArray ()[Ljava/lang/Object;
public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object;
}

public abstract interface class nl/adaptivity/xmlutil/xmlserializable/SimpleXmlDeserializable : nl/adaptivity/xmlutil/xmlserializable/XmlDeserializable {
public fun deserializeChild (Lnl/adaptivity/xmlutil/XmlReader;)Z
public fun deserializeChildText (Ljava/lang/CharSequence;)Z
Expand Down
54 changes: 54 additions & 0 deletions xmlserializable/api/xmlserializable.klib.api
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
// Klib ABI Dump
// Targets: [js]
// Rendering settings:
// - Signature version: 2
// - Show manifest properties: true
// - Show declarations: true

// Library unique name: <io.github.pdvrieze.xmlutil:xmlserializable>
abstract interface <#A: kotlin/Any?> nl.adaptivity.xmlutil.xmlserializable/XmlDeserializerFactory : nl.adaptivity.xmlutil/XmlDeserializerFactory<#A> { // nl.adaptivity.xmlutil.xmlserializable/XmlDeserializerFactory|null[0]
abstract fun deserialize(nl.adaptivity.xmlutil/XmlReader): #A // nl.adaptivity.xmlutil.xmlserializable/XmlDeserializerFactory.deserialize|deserialize(nl.adaptivity.xmlutil.XmlReader){}[0]
}
abstract interface nl.adaptivity.xmlutil.xmlserializable.util/SerializationProvider : nl.adaptivity.xmlutil.util/SerializationProvider { // nl.adaptivity.xmlutil.xmlserializable.util/SerializationProvider|null[0]
abstract fun <#A1: kotlin/Any> deSerializer(kotlin.reflect/KClass<#A1>): nl.adaptivity.xmlutil.xmlserializable.util/SerializationProvider.XmlDeserializerFun? // nl.adaptivity.xmlutil.xmlserializable.util/SerializationProvider.deSerializer|deSerializer(kotlin.reflect.KClass<0:0>){0§<kotlin.Any>}[0]
abstract fun <#A1: kotlin/Any> serializer(kotlin.reflect/KClass<#A1>): nl.adaptivity.xmlutil.xmlserializable.util/SerializationProvider.XmlSerializerFun<#A1>? // nl.adaptivity.xmlutil.xmlserializable.util/SerializationProvider.serializer|serializer(kotlin.reflect.KClass<0:0>){0§<kotlin.Any>}[0]
abstract fun interface <#A1: in kotlin/Any> XmlSerializerFun : nl.adaptivity.xmlutil.util/SerializationProvider.XmlSerializerFun<#A1> { // nl.adaptivity.xmlutil.xmlserializable.util/SerializationProvider.XmlSerializerFun|null[0]
abstract fun invoke(nl.adaptivity.xmlutil/XmlWriter, #A1) // nl.adaptivity.xmlutil.xmlserializable.util/SerializationProvider.XmlSerializerFun.invoke|invoke(nl.adaptivity.xmlutil.XmlWriter;1:0){}[0]
}
abstract interface XmlDeserializerFun : nl.adaptivity.xmlutil.util/SerializationProvider.XmlDeserializerFun { // nl.adaptivity.xmlutil.xmlserializable.util/SerializationProvider.XmlDeserializerFun|null[0]
abstract fun <#A2: kotlin/Any> invoke(nl.adaptivity.xmlutil/XmlReader, kotlin.reflect/KClass<#A2>): #A2 // nl.adaptivity.xmlutil.xmlserializable.util/SerializationProvider.XmlDeserializerFun.invoke|invoke(nl.adaptivity.xmlutil.XmlReader;kotlin.reflect.KClass<0:0>){0§<kotlin.Any>}[0]
}
}
abstract interface nl.adaptivity.xmlutil.xmlserializable/ExtXmlDeserializable : nl.adaptivity.xmlutil.xmlserializable/XmlDeserializable { // nl.adaptivity.xmlutil.xmlserializable/ExtXmlDeserializable|null[0]
abstract fun deserializeChildren(nl.adaptivity.xmlutil/XmlReader) // nl.adaptivity.xmlutil.xmlserializable/ExtXmlDeserializable.deserializeChildren|deserializeChildren(nl.adaptivity.xmlutil.XmlReader){}[0]
}
abstract interface nl.adaptivity.xmlutil.xmlserializable/SimpleXmlDeserializable : nl.adaptivity.xmlutil.xmlserializable/XmlDeserializable { // nl.adaptivity.xmlutil.xmlserializable/SimpleXmlDeserializable|null[0]
open fun deserializeChild(nl.adaptivity.xmlutil/XmlReader): kotlin/Boolean // nl.adaptivity.xmlutil.xmlserializable/SimpleXmlDeserializable.deserializeChild|deserializeChild(nl.adaptivity.xmlutil.XmlReader){}[0]
open fun deserializeChildText(kotlin/CharSequence): kotlin/Boolean // nl.adaptivity.xmlutil.xmlserializable/SimpleXmlDeserializable.deserializeChildText|deserializeChildText(kotlin.CharSequence){}[0]
}
abstract interface nl.adaptivity.xmlutil.xmlserializable/XmlDeserializable { // nl.adaptivity.xmlutil.xmlserializable/XmlDeserializable|null[0]
abstract val elementName // nl.adaptivity.xmlutil.xmlserializable/XmlDeserializable.elementName|{}elementName[0]
abstract fun <get-elementName>(): nl.adaptivity.xmlutil/QName // nl.adaptivity.xmlutil.xmlserializable/XmlDeserializable.elementName.<get-elementName>|<get-elementName>(){}[0]
open fun deserializeAttribute(kotlin/String?, kotlin/String, kotlin/String): kotlin/Boolean // nl.adaptivity.xmlutil.xmlserializable/XmlDeserializable.deserializeAttribute|deserializeAttribute(kotlin.String?;kotlin.String;kotlin.String){}[0]
open fun onBeforeDeserializeChildren(nl.adaptivity.xmlutil/XmlReader) // nl.adaptivity.xmlutil.xmlserializable/XmlDeserializable.onBeforeDeserializeChildren|onBeforeDeserializeChildren(nl.adaptivity.xmlutil.XmlReader){}[0]
}
abstract interface nl.adaptivity.xmlutil.xmlserializable/XmlSerializable : nl.adaptivity.xmlutil/XmlSerializable { // nl.adaptivity.xmlutil.xmlserializable/XmlSerializable|null[0]
abstract fun serialize(nl.adaptivity.xmlutil/XmlWriter) // nl.adaptivity.xmlutil.xmlserializable/XmlSerializable.serialize|serialize(nl.adaptivity.xmlutil.XmlWriter){}[0]
}
final fun (nl.adaptivity.xmlutil/IXmlStreaming).nl.adaptivity.xmlutil.xmlserializable/toString(nl.adaptivity.xmlutil.xmlserializable/XmlSerializable): kotlin/String // nl.adaptivity.xmlutil.xmlserializable/toString|toString@nl.adaptivity.xmlutil.IXmlStreaming(nl.adaptivity.xmlutil.xmlserializable.XmlSerializable){}[0]
final fun (nl.adaptivity.xmlutil/XmlStreaming).nl.adaptivity.xmlutil.xmlserializable/toString(nl.adaptivity.xmlutil.xmlserializable/XmlSerializable): kotlin/String // nl.adaptivity.xmlutil.xmlserializable/toString|toString@nl.adaptivity.xmlutil.XmlStreaming(nl.adaptivity.xmlutil.xmlserializable.XmlSerializable){}[0]
final fun (nl.adaptivity.xmlutil/XmlStreaming).nl.adaptivity.xmlutil.xmlserializable/toString(nl.adaptivity.xmlutil/XmlSerializable): kotlin/String // nl.adaptivity.xmlutil.xmlserializable/toString|toString@nl.adaptivity.xmlutil.XmlStreaming(nl.adaptivity.xmlutil.XmlSerializable){}[0]
final fun (nl.adaptivity.xmlutil/XmlWriter).nl.adaptivity.xmlutil.xmlserializable/writeChild(nl.adaptivity.xmlutil.xmlserializable/XmlSerializable?) // nl.adaptivity.xmlutil.xmlserializable/writeChild|writeChild@nl.adaptivity.xmlutil.XmlWriter(nl.adaptivity.xmlutil.xmlserializable.XmlSerializable?){}[0]
final fun (nl.adaptivity.xmlutil/XmlWriter).nl.adaptivity.xmlutil.xmlserializable/writeChild(nl.adaptivity.xmlutil/XmlSerializable?) // nl.adaptivity.xmlutil.xmlserializable/writeChild|writeChild@nl.adaptivity.xmlutil.XmlWriter(nl.adaptivity.xmlutil.XmlSerializable?){}[0]
final fun (nl.adaptivity.xmlutil/XmlWriter).nl.adaptivity.xmlutil.xmlserializable/writeChildren(kotlin.collections/Iterable<nl.adaptivity.xmlutil.xmlserializable/XmlSerializable>?) // nl.adaptivity.xmlutil.xmlserializable/writeChildren|writeChildren@nl.adaptivity.xmlutil.XmlWriter(kotlin.collections.Iterable<nl.adaptivity.xmlutil.xmlserializable.XmlSerializable>?){}[0]
final fun (nl.adaptivity.xmlutil/XmlWriter).nl.adaptivity.xmlutil.xmlserializable/writeChildren(kotlin.collections/Iterable<nl.adaptivity.xmlutil/XmlSerializable>?) // nl.adaptivity.xmlutil.xmlserializable/writeChildren|writeChildren@nl.adaptivity.xmlutil.XmlWriter(kotlin.collections.Iterable<nl.adaptivity.xmlutil.XmlSerializable>?){}[0]
final fun <#A: nl.adaptivity.xmlutil.xmlserializable/XmlDeserializable> (#A).nl.adaptivity.xmlutil.xmlserializable/deserializeHelper(nl.adaptivity.xmlutil/XmlReader): #A // nl.adaptivity.xmlutil.xmlserializable/deserializeHelper|deserializeHelper@0:0(nl.adaptivity.xmlutil.XmlReader){0§<nl.adaptivity.xmlutil.xmlserializable.XmlDeserializable>}[0]
final fun <#A: nl.adaptivity.xmlutil.xmlserializable/XmlSerializable> (nl.adaptivity.xmlutil/XmlWriter).nl.adaptivity.xmlutil.xmlserializable/serializeAll(kotlin.collections/Iterable<#A>) // nl.adaptivity.xmlutil.xmlserializable/serializeAll|serializeAll@nl.adaptivity.xmlutil.XmlWriter(kotlin.collections.Iterable<0:0>){0§<nl.adaptivity.xmlutil.xmlserializable.XmlSerializable>}[0]
final fun <#A: nl.adaptivity.xmlutil.xmlserializable/XmlSerializable> (nl.adaptivity.xmlutil/XmlWriter).nl.adaptivity.xmlutil.xmlserializable/serializeAll(kotlin.sequences/Sequence<#A>) // nl.adaptivity.xmlutil.xmlserializable/serializeAll|serializeAll@nl.adaptivity.xmlutil.XmlWriter(kotlin.sequences.Sequence<0:0>){0§<nl.adaptivity.xmlutil.xmlserializable.XmlSerializable>}[0]
final fun nl.adaptivity.xmlutil.xmlserializable/CompactFragment(nl.adaptivity.xmlutil.xmlserializable/XmlSerializable): nl.adaptivity.xmlutil.util/CompactFragment // nl.adaptivity.xmlutil.xmlserializable/CompactFragment|CompactFragment(nl.adaptivity.xmlutil.xmlserializable.XmlSerializable){}[0]
final fun nl.adaptivity.xmlutil.xmlserializable/CompactFragment(nl.adaptivity.xmlutil/XmlSerializable): nl.adaptivity.xmlutil.util/CompactFragment // nl.adaptivity.xmlutil.xmlserializable/CompactFragment|CompactFragment(nl.adaptivity.xmlutil.XmlSerializable){}[0]
open annotation class nl.adaptivity.xmlutil.xmlserializable/XmlDeserializer : kotlin/Annotation { // nl.adaptivity.xmlutil.xmlserializable/XmlDeserializer|null[0]
constructor <init>(kotlin.reflect/KClass<out nl.adaptivity.xmlutil.xmlserializable/XmlDeserializerFactory<*>>) // nl.adaptivity.xmlutil.xmlserializable/XmlDeserializer.<init>|<init>(kotlin.reflect.KClass<out|nl.adaptivity.xmlutil.xmlserializable.XmlDeserializerFactory<*>>){}[0]
final val value // nl.adaptivity.xmlutil.xmlserializable/XmlDeserializer.value|{}value[0]
final fun <get-value>(): kotlin.reflect/KClass<out nl.adaptivity.xmlutil.xmlserializable/XmlDeserializerFactory<*>> // nl.adaptivity.xmlutil.xmlserializable/XmlDeserializer.value.<get-value>|<get-value>(){}[0]
}
13 changes: 13 additions & 0 deletions xmlserializable/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ kotlin {
applyDefaultXmlUtilHierarchyTemplate()

jvm {
compilerOptions {
freeCompilerArgs.add("-Xjvm-default=all")
}
compilations.all {
tasks.named<Test>("${target.name}Test") {
testTask.dependsOn(this)
Expand All @@ -69,6 +72,9 @@ kotlin {
}
}
jvm("android") {
compilerOptions {
freeCompilerArgs.add("-Xjvm-default=all")
}
compilations.all {
tasks.named<Test>("${target.name}Test") {
testTask.dependsOn(this)
Expand Down Expand Up @@ -147,6 +153,13 @@ kotlin {

}

apiValidation {
klib {
enabled = true
}
ignoredClasses.add("nl.adaptivity.xmlutil.xmlserializable.SerializableList")
}

doPublish()

idea {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ package nl.adaptivity.xmlutil.xmlserializable
import nl.adaptivity.xmlutil.QName
import nl.adaptivity.xmlutil.XmlWriter
import nl.adaptivity.xmlutil.smartStartTag
import java.util.*
import java.util.function.Consumer
import java.util.stream.Stream

/**
* Created by pdvrieze on 27/04/16.
Expand All @@ -47,18 +50,79 @@ public class SerializableContainer<T : XmlSerializable>(name: QName, delegate: I
public fun <T : XmlSerializable> Iterable<T>.asSerializable(name: QName): SerializableContainer<T> =
SerializableContainer(name, this)

public class SerializableCollection<T : XmlSerializable>(name: QName, delegate: Collection<T>) :
BaseSerializableContainer<T>(name), Collection<T> by delegate {
public class SerializableCollection<T : XmlSerializable>(name: QName, private val delegate: Collection<T>) :
BaseSerializableContainer<T>(name), Collection<T> {
override val children: Iterable<T> get() = this

override val size: Int get() = delegate.size

override fun contains(element: T): Boolean = delegate.contains(element)

override fun containsAll(elements: Collection<T>): Boolean {
return delegate.containsAll(elements)
}

override fun isEmpty(): Boolean = delegate.isEmpty()

override fun iterator(): Iterator<T> {
return delegate.iterator()
}
}

@Suppress("unused")
public fun <T : XmlSerializable> Collection<T>.asSerializable(name: QName): SerializableCollection<T> =
SerializableCollection(name, this)

public class SerializableList<T : XmlSerializable>(name: QName, delegate: List<T>) : BaseSerializableContainer<T>(name),
List<T> by delegate {
public class SerializableList<T : XmlSerializable>(name: QName, private val delegate: List<T>) :
BaseSerializableContainer<T>(name), List<T> {
override val children: Iterable<T> get() = this

override val size: Int get() = delegate.size

override fun contains(element: T): Boolean {
return delegate.contains(element)
}

override fun containsAll(elements: Collection<T>): Boolean {
return delegate.containsAll(elements)
}

override fun get(index: Int): T = delegate.get(index)

override fun indexOf(element: T): Int {
return delegate.indexOf(element)
}

override fun isEmpty(): Boolean = delegate.isEmpty()

override fun iterator(): MutableIterator<T> = delegate.iterator() as MutableIterator<T>

override fun lastIndexOf(element: T): Int = delegate.lastIndexOf(element)

override fun listIterator(): MutableListIterator<T> = delegate.listIterator() as MutableListIterator<T>

override fun listIterator(index: Int): MutableListIterator<T> = delegate.listIterator(index) as MutableListIterator<T>

override fun subList(fromIndex: Int, toIndex: Int): MutableList<T> {
return delegate.subList(fromIndex, toIndex) as MutableList<T>
}

override fun forEach(action: Consumer<in T>?) {
// Explicit delegation allows the list to optimize this
delegate.forEach(action)
}

override fun spliterator(): Spliterator<T> {
return delegate.spliterator()
}

override fun parallelStream(): Stream<T> {
return delegate.parallelStream()
}

override fun stream(): Stream<T> {
return delegate.stream()
}
}

@Suppress("unused")
Expand Down

0 comments on commit 7d9830c

Please sign in to comment.