# Layouts
-class TypingLayout[E: Object]
- # Unic ids or each element
+class Layout[E: Object]
+ # Ids or each element
var ids: Map[E, Int] = new HashMap[E, Int]
# Fixed positions of each element in all tables
var pos: Map[E, Int] = new HashMap[E, Int]
end
class PHTypingLayout[E: Object]
- super TypingLayout[E]
+ super Layout[E]
# Masks used by hash function
var masks: Map[E, Int] = new HashMap[E, Int]
# Positions of each element for each tables
abstract class TypingLayoutBuilder[E: Object]
- type LAYOUT: TypingLayout[E]
+ type LAYOUT: Layout[E]
private var mmodule: MModule
init(mmodule: MModule) do self.mmodule = mmodule
# Compute mtypes ids and position using BM
redef fun build_layout(mtypes) do
- var result = new TypingLayout[MType]
+ var result = new Layout[MType]
result.ids = self.compute_ids(mtypes)
result.pos = result.ids
return result
# Compute mtypes ids and position using BM
redef fun build_layout(mtypes) do
- var result = new TypingLayout[MType]
+ var result = new Layout[MType]
result.ids = self.compute_ids(mtypes)
result.pos = self.colorer.colorize(mtypes)
return result
# Compute mclasses ids and position using BM
redef fun build_layout(mclasses) do
- var result = new TypingLayout[MClass]
+ var result = new Layout[MClass]
result.ids = self.compute_ids(mclasses)
result.pos = result.ids
return result
# Compute mclasses ids and position using BM
redef fun build_layout(mclasses) do
- var result = new TypingLayout[MClass]
+ var result = new Layout[MClass]
result.ids = self.compute_ids(mclasses)
result.pos = self.colorer.colorize(mclasses)
return result
private var partial_types: Set[MType] = new HashSet[MType]
private var live_unresolved_types: Map[MClassDef, Set[MType]] = new HashMap[MClassDef, HashSet[MType]]
- private var type_layout: nullable TypingLayout[MType]
+ private var type_layout: nullable Layout[MType]
private var resolution_layout: nullable ResolutionLayout
protected var method_layout: nullable PropertyLayout[MMethod]
protected var attr_layout: nullable PropertyLayout[MAttribute]