diff --git a/lib/binary/serialization.nit b/lib/binary/serialization.nit index fff7fb5482..f4228b371b 100644 --- a/lib/binary/serialization.nit +++ b/lib/binary/serialization.nit @@ -178,7 +178,7 @@ class BinaryDeserializer # An invalid attribute name is an heuristic for invalid data. # Hitting an object end marker will result in an empty string. - assert next_attribute_name.is_valid_id else + if not next_attribute_name.is_valid_id then var error if next_attribute_name.is_empty then diff --git a/lib/serialization/serialization.nit b/lib/serialization/serialization.nit index 7ecc7d2f45..5630b34acd 100644 --- a/lib/serialization/serialization.nit +++ b/lib/serialization/serialization.nit @@ -148,7 +148,7 @@ abstract class Deserializer var errors = new Array[Error] end -# Deserialization got wrong attribute names +# Error on invalid dynamic type for a deserialized attribute class AttributeTypeError super Error diff --git a/src/frontend/serialization_phase.nit b/src/frontend/serialization_phase.nit index 6633e139ad..b9cab9d4a4 100644 --- a/src/frontend/serialization_phase.nit +++ b/src/frontend/serialization_phase.nit @@ -310,7 +310,7 @@ do if type_name == "nullable Object" then # Don't type check code.add """ - var {{{name}}} = v.deserialize_attribute("{{{attribute.serialize_name}}}", "{{{type_name}}}") + self.{{{name}}} = v.deserialize_attribute("{{{attribute.serialize_name}}}", "{{{type_name}}}") """ else code.add """ var {{{name}}} = v.deserialize_attribute("{{{attribute.serialize_name}}}", "{{{type_name}}}")