projects: update some short descriptions
[nit.git] / examples / circular_list.nit
index 86e41f6..2d1df4a 100644 (file)
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Implementation of circular lists
+# Example of an implementation of circular lists
 # This example shows the usage of generics and somewhat a specialisation of collections.
 module circular_list
 
@@ -21,10 +21,6 @@ class CircularList[E]
        # Like standard Array or LinkedList, CircularList is a Sequence.
        super Sequence[E]
 
-       # NaiveCollection contains working (but inefficient) implementation of
-       # the methods of Collection.
-       super NaiveCollection[E]
-       
        # The first node of the list if any
        # The special case of an empty list is handled by a null node
        private var node: nullable CLNode[E] = null
@@ -124,11 +120,11 @@ end
 private class CircularListIterator[E]
        super IndexedIterator[E]
 
-       redef var index: Int
+       redef var index: Int = 0
 
        # The current node pointed.
        # Is null if the list is empty.
-       var node: nullable CLNode[E]
+       var node: nullable CLNode[E] is noinit
 
        # The list iterated.
        var list: CircularList[E]
@@ -148,11 +144,9 @@ private class CircularListIterator[E]
 
        redef fun item do return self.node.item
 
-       init(list: CircularList[E])
+       init
        do
                self.node = list.node
-               self.list = list
-               self.index = 0
        end
 end