KT-2640 Provide jet.MutableIterator and jet.MutableIterable
#KT-2640 fixed
This commit is contained in:
@@ -4,6 +4,10 @@ public trait Iterable<out T> {
|
||||
public fun iterator() : Iterator<T>
|
||||
}
|
||||
|
||||
public trait MutableIterable<out T> : Iterable<T> {
|
||||
override fun iterator() : MutableIterator<T>
|
||||
}
|
||||
|
||||
public trait ByteIterable : Iterable<Byte> {
|
||||
public override fun iterator() : ByteIterator
|
||||
}
|
||||
|
||||
@@ -5,6 +5,10 @@ public trait Iterator<out T> {
|
||||
public fun hasNext() : Boolean
|
||||
}
|
||||
|
||||
public trait MutableIterator<out T> : Iterator<T> {
|
||||
public fun remove()
|
||||
}
|
||||
|
||||
public abstract class ByteIterator() : Iterator<Byte> {
|
||||
public abstract open fun nextByte() : Byte
|
||||
|
||||
|
||||
@@ -94,6 +94,8 @@ public class JetStandardLibrary {
|
||||
private ClassDescriptor arrayClass;
|
||||
private ClassDescriptor iterableClass;
|
||||
private ClassDescriptor iteratorClass;
|
||||
private ClassDescriptor mutableIterableClass;
|
||||
private ClassDescriptor mutableIteratorClass;
|
||||
private ClassDescriptor comparableClass;
|
||||
private ClassDescriptor throwableClass;
|
||||
private ClassDescriptor enumClass;
|
||||
@@ -170,6 +172,8 @@ public class JetStandardLibrary {
|
||||
|
||||
this.iterableClass = (ClassDescriptor) libraryScope.getClassifier(Name.identifier("Iterable"));
|
||||
this.iteratorClass = (ClassDescriptor) libraryScope.getClassifier(Name.identifier("Iterator"));
|
||||
this.mutableIterableClass = (ClassDescriptor) libraryScope.getClassifier(Name.identifier("MutableIterable"));
|
||||
this.mutableIteratorClass = (ClassDescriptor) libraryScope.getClassifier(Name.identifier("MutableIterator"));
|
||||
this.comparableClass = (ClassDescriptor) libraryScope.getClassifier(Name.identifier("Comparable"));
|
||||
|
||||
this.stringType = new JetTypeImpl(getString());
|
||||
@@ -213,6 +217,8 @@ public class JetStandardLibrary {
|
||||
classDescriptors.add(throwableClass);
|
||||
classDescriptors.add(iterableClass);
|
||||
classDescriptors.add(iteratorClass);
|
||||
classDescriptors.add(mutableIterableClass);
|
||||
classDescriptors.add(mutableIteratorClass);
|
||||
classDescriptors.add(comparableClass);
|
||||
classDescriptors.add(enumClass);
|
||||
|
||||
@@ -301,6 +307,18 @@ public class JetStandardLibrary {
|
||||
return iteratorClass;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ClassDescriptor getMutableIterable() {
|
||||
initStdClasses();
|
||||
return mutableIterableClass;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ClassDescriptor getMutableIterator() {
|
||||
initStdClasses();
|
||||
return mutableIteratorClass;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ClassDescriptor getComparable() {
|
||||
initStdClasses();
|
||||
|
||||
@@ -41,6 +41,8 @@ public class JetStandardLibraryNames {
|
||||
public static final ClassName COMPARABLE = classIn("Comparable", 1);
|
||||
public static final ClassName ITERABLE = classIn("Iterable", 1);
|
||||
public static final ClassName ITERATOR = classIn("Iterator", 1);
|
||||
public static final ClassName MUTABLE_ITERABLE = classIn("MutableIterable", 1);
|
||||
public static final ClassName MUTABLE_ITERATOR = classIn("MutableIterator", 1);
|
||||
public static final ClassName NOTHING = classIn("Nothing", 0);
|
||||
public static final ClassName STRING = classIn("String", 0);
|
||||
public static final ClassName CHAR_SEQUENCE = classIn("CharSequence", 0);
|
||||
|
||||
Reference in New Issue
Block a user