You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
909 B
32 lines
909 B
property HasNext
|
|
prefix "Iterator"
|
|
prefix "List"
|
|
start -> start: *
|
|
start -> invalid: I = iterator(*)
|
|
invalid -> valid: <true> = hasNext(i) // treat as shorthand for <B> = hasNext if (b)
|
|
valid -> invalid: next(i)
|
|
invalid -> error: next(i)
|
|
|
|
property UnsafeIterator
|
|
prefix "Collection"
|
|
prefix "Iterator"
|
|
start -> iterating: I = iterator(C)
|
|
iterating -> modified: remove(c, *)
|
|
iterating -> modified: add(c, *)
|
|
modified -> error: next(i)
|
|
|
|
property UnsafeMapIterator
|
|
start -> start: *
|
|
start -> gotView: View = keySet(M)
|
|
start -> gotView: View = values(M)
|
|
gotView -> iterating: I = iterator(view)
|
|
iterating -> updated: put(m, *)
|
|
updated -> error: next(i)
|
|
|
|
property SkipIndexAfterRemove
|
|
prefix "ArrayList"
|
|
start -> start: *
|
|
start -> removed: remove(Collection, Index)
|
|
removed -> ok: get(collection, index)
|
|
removed -> error: get(collection, J) // TODO: if (j!=index)
|