What purpose does `TowerData`, `TowerContext`,`Tow...
# compiler
i
What purpose does
TowerData
,
TowerContext
,
TowerXXX
serve in type resolve stage? Is it similar to
FirScope
and its subclasses? but is used for FunctionCall type resolving?
d
During resolution of one single call compiler creates so called "tower" with different scopes on each level and then processes level by level until find successful candidate(s) in some level All (or almost all) levels are based on some scope, but bring additional semantic information, which is specific only to call resolution E.g. scopes of implicit and explicit receiver are semantically the same, but they have different meaning for tower resolver (e.g. they have different priorities and different rules for implicit invoke resolution)
gratitude thank you 1
So all classes with word
Tower
in the name relates to call resolution