nitc :: PrimitiveInstance :: defaultinit
# Special instance to handle primitives values (int, bool, etc.)
# The trick is just to encapsulate the “real” value.
class PrimitiveInstance[E]
super Instance
# The real value encapsulated
redef var val: E
redef fun is_true
do
if val == true then return true
if val == false then return false
abort
end
redef fun ==(o)
do
if not o isa PrimitiveInstance[nullable Object] then return false
return self.val == o.val
end
redef fun eq_is(o)
do
if not o isa PrimitiveInstance[nullable Object] then return false
return self.val.is_same_instance(o.val)
end
redef fun to_s do return "{mtype}#{val.object_id}({val or else "null"})"
redef fun to_i do return val.as(Int)
redef fun to_f do return val.as(Float)
redef fun to_b do return val.as(Byte)
redef fun to_i8 do return val.as(Int8)
redef fun to_i16 do return val.as(Int16)
redef fun to_u16 do return val.as(UInt16)
redef fun to_i32 do return val.as(Int32)
redef fun to_u32 do return val.as(UInt32)
end
src/interpreter/naive_interpreter.nit:799,1--843,3