nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sepcomp: rename `compile_resolution_tables` as `compute_resolution_tables`
[nit.git]
/
src
/
compiler
/
separate_compiler.nit
diff --git
a/src/compiler/separate_compiler.nit
b/src/compiler/separate_compiler.nit
index
441abe1
..
af132f2
100644
(file)
--- a/
src/compiler/separate_compiler.nit
+++ b/
src/compiler/separate_compiler.nit
@@
-456,14
+456,9
@@
class SeparateCompiler
# Collect types to colorize
var live_types = runtime_type_analysis.live_types
var live_cast_types = runtime_type_analysis.live_cast_types
# Collect types to colorize
var live_types = runtime_type_analysis.live_types
var live_cast_types = runtime_type_analysis.live_cast_types
- var mtypes = new HashSet[MType]
- mtypes.add_all(live_types)
- for c in self.box_kinds.keys do
- mtypes.add(c.mclass_type)
- end
# Compute colors
# Compute colors
- var poset = poset_from_mtypes(mtypes, live_cast_types)
+ var poset = poset_from_mtypes(live_types, live_cast_types)
var colorer = new POSetColorer[MType]
colorer.colorize(poset)
type_ids = colorer.ids
var colorer = new POSetColorer[MType]
colorer.colorize(poset)
type_ids = colorer.ids
@@
-471,7
+466,7
@@
class SeparateCompiler
type_tables = build_type_tables(poset)
# VT and FT are stored with other unresolved types in the big resolution_tables
type_tables = build_type_tables(poset)
# VT and FT are stored with other unresolved types in the big resolution_tables
- self.compile_resolution_tables(mtypes)
+ self.compute_resolution_tables(live_types)
return poset
end
return poset
end
@@
-532,9
+527,8
@@
class SeparateCompiler
return tables
end
return tables
end
- protected fun compile_resolution_tables(mtypes: Set[MType]) do
- # resolution_tables is used to perform a type resolution at runtime in O(1)
-
+ # resolution_tables is used to perform a type resolution at runtime in O(1)
+ private fun compute_resolution_tables(mtypes: Set[MType]) do
# During the visit of the body of classes, live_unresolved_types are collected
# and associated to
# Collect all live_unresolved_types (visited in the body of classes)
# During the visit of the body of classes, live_unresolved_types are collected
# and associated to
# Collect all live_unresolved_types (visited in the body of classes)
@@
-995,6
+989,7
@@
class SeparateCompiler
v.add_decl("NULL,")
else
var s = "type_{t.c_name}"
v.add_decl("NULL,")
else
var s = "type_{t.c_name}"
+ undead_types.add(t.mclass_type)
v.require_declaration(s)
v.add_decl("&{s},")
end
v.require_declaration(s)
v.add_decl("&{s},")
end