KT-2640 Provide jet.MutableIterator and jet.MutableIterable

#KT-2640 fixed
This commit is contained in:
Svetlana Isakova
2012-08-24 15:07:00 +04:00
parent 422b938728
commit 0dcdaccad1
21 changed files with 175 additions and 9 deletions
+4
View File
@@ -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
}
+4
View File
@@ -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);