protected fun build_class_compilation_info(mclass: MClass): ClassCompilationInfo
do
var mtype = mclass.intro.bound_mtype
var rta = runtime_type_analysis
var is_dead = rta != null and not rta.live_classes.has(mclass)
# While the class may be dead, some part of separately compiled code may use symbols associated to the class, so
# in order to compile and link correctly the C code, these symbols should be declared and defined.
var need_corpse = is_dead and mtype.is_c_primitive or mclass.kind == extern_kind or mclass.kind == enum_kind
var compilation_info = new ClassCompilationInfo(mclass, is_dead, need_corpse)
return compilation_info
end
src/compiler/separate_compiler.nit:1055,2--1067,4
redef fun build_class_compilation_info(mclass)
do
var ccinfo = super
var mtype = ccinfo.mtype
var rta = runtime_type_analysis
var is_dead = false # mclass.kind == abstract_kind or mclass.kind == interface_kind
if not is_dead and rta != null and not rta.live_classes.has(mclass) and not mtype.is_c_primitive and mclass.name != "NativeArray" then
is_dead = true
end
ccinfo.is_dead = is_dead
return ccinfo
end
src/compiler/separate_erasure_compiler.nit:408,2--419,4