# Iterate over each element of the collection
fun iterate
- !each(e: E)
+ !each(k: K, v: E)
do
var i = iterator
while i.is_ok do
- each(i.item)
+ each(i.key, i.item)
i.next
end
end
redef fun iterator: HashMapIterator[K, V] do return new HashMapIterator[K,V](self)
redef fun iterate
- !each(e: V)
+ !each(k: K, v: V)
do
var c = _first_item
while c != null do
- each(c._value)
+ each(c._key, c._value)
c = c._next_item
end
end
var ancestors = group_ancestors(build_ancestors)
_ancestors = new HashMap[MMLocalClass, MMAncestor]
- for set in ancestors do
+ for set in ancestors.values do
if set.length == 1 then
add_ancestor(set.first)
else
do
tab.add(self)
stype.local_class.compute_ancestors
- for anc in stype.local_class.ancestors.as(not null) do
+ for anc in stype.local_class.ancestors.values do
var aaa = anc.stype.for_module(stype.mmmodule)
var a = aaa.adapt_to(stype).for_module(inheriter.mmmodule)
if a.local_class != inheriter.local_class then
do
var s = new Buffer
s.append(to_dot_header)
- for e in _elements do
+ for e in _elements.values do
s.append(to_dot_node(e.value))
for d in e.direct_greaters do
s.append(to_dot_edge(e.value, d))
protected fun compute_smallers_for(poe: PartialOrderElement[E], set: Set[E])
do
var e = poe.value
- for s in _elements do
+ for s in _elements.values do
if s < e then
set.add(s.value)
end
private fun try_to_load(module_name: Symbol, dir: MMDirectory): nullable MMModule
do
# Look in the module directory
- for m in dir.modules do
+ for m in dir.modules.values do
if m.name == module_name then return m
end
if global.intro == self then
return true
end
- for p in src_local_properties do
+ for p in src_local_properties.values do
if p.need_doc(dctx) then
return true
end
if iroutine != null then
action(iroutine, m)
end
- for i in c.new_instance_iroutine do
+ for i in c.new_instance_iroutine.values do
action(i, m)
end
end
fun generate_icode(tc: ToolContext)
do
var v = new A2IVisitor(tc, self)
- for c in src_local_classes do
- for p in c.src_local_properties do
+ for c in src_local_classes.values do
+ for p in c.src_local_properties.values do
if p isa MMSrcMethod then
p.generate_iroutine(v)
else if p isa MMSrcAttribute then
n = n.next_node
end
- for p in src_local_properties do
+ for p in src_local_properties.values do
p.accept_property_visitor(v)
end
end
# Collect unassigned attributes
var unassigned_attributes = new Array[MMSrcAttribute]
- for a in src_local_properties do
+ for a in src_local_properties.values do
if a isa MMSrcAttribute then
var n = a.node
if n.n_expr == null then unassigned_attributes.add(a)
print(h.has(20))
print(h.length)
var s = 24
- for x in h do
+ for x in h.values do
s = s - x
end
print(s)