# Generate a polymorphic attribute read
fun read_attribute(a: MAttribute, recv: RuntimeVariable): RuntimeVariable do
# TODO check_recv_notnull(recv)
# TODO compile_check(v)
# What is the declared type of the attribute?
var ret = a.intro.static_mtype.as(not null)
var intromclassdef = a.intro.mclassdef
ret = ret.resolve_for(intromclassdef.bound_mtype, intromclassdef.bound_mtype, intromclassdef.mmodule, true)
# Check for Uninitialized attribute
if not ret isa MNullableType then check_attribute(a, recv)
return new_expr("{recv}.attrs.get(\"{a.jname}\")", ret)
end
src/compiler/java_compiler.nit:1099,2--1112,4