X-Git-Url: http://nitlanguage.org diff --git a/src/separate_compiler.nit b/src/separate_compiler.nit index bf3cb12..273451f 100644 --- a/src/separate_compiler.nit +++ b/src/separate_compiler.nit @@ -590,8 +590,7 @@ class SeparateCompiler # resolution table (for receiver) if is_live then - var mclass_type = mtype - if mclass_type isa MNullableType then mclass_type = mclass_type.mtype + var mclass_type = mtype.as_notnullable assert mclass_type isa MClassType if resolution_tables[mclass_type].is_empty then v.add_decl("NULL, /*NO RESOLUTIONS*/") @@ -624,12 +623,7 @@ class SeparateCompiler fun compile_type_resolution_table(mtype: MType) do - var mclass_type: MClassType - if mtype isa MNullableType then - mclass_type = mtype.mtype.as(MClassType) - else - mclass_type = mtype.as(MClassType) - end + var mclass_type = mtype.as_notnullable.as(MClassType) # extern const struct resolution_table_X resolution_table_X self.provide_declaration("resolution_table_{mtype.c_name}", "extern const struct types resolution_table_{mtype.c_name};") @@ -1585,8 +1579,7 @@ class SeparateCompilerVisitor fun can_be_primitive(value: RuntimeVariable): Bool do - var t = value.mcasttype - if t isa MNullableType then t = t.mtype + var t = value.mcasttype.as_notnullable if not t isa MClassType then return false var k = t.mclass.kind return k == interface_kind or t.ctype != "val*"