nitc :: SeparateErasureCompiler :: build_class_typing_tables
# Build class tables
fun build_class_typing_tables(mclasses: Set[MClass]): Map[MClass, Array[nullable MClass]] do
var tables = new HashMap[MClass, Array[nullable MClass]]
for mclass in mclasses do
var table = new Array[nullable MClass]
var supers = new Array[MClass]
if mainmodule.flatten_mclass_hierarchy.has(mclass) then
supers = mclass.in_hierarchy(mainmodule).greaters.to_a
end
for sup in supers do
var color = class_colors[sup]
if table.length <= color then
for i in [table.length .. color[ do
table[i] = null
end
end
table[color] = sup
end
tables[mclass] = table
end
return tables
end
src/compiler/separate_erasure_compiler.nit:164,2--185,4