frontend serialization: do not generate from_deserializer if it exists locally
authorAlexis Laferrière <alexis.laf@xymus.net>
Wed, 16 Mar 2016 14:45:19 +0000 (10:45 -0400)
committerAlexis Laferrière <alexis.laf@xymus.net>
Thu, 17 Mar 2016 13:41:01 +0000 (09:41 -0400)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

src/frontend/serialization_phase.nit

index e48e537..b9733a5 100644 (file)
@@ -179,6 +179,16 @@ private class SerializationPhasePreModel
        do
                var npropdefs = nclassdef.n_propdefs
 
+               # Do not insert a `from_deserializer` if it already exists
+               for npropdef in npropdefs do
+                       if npropdef isa AMethPropdef then
+                               var methid = npropdef.n_methid
+                               if methid != null and methid.collect_text == "from_deserializer" then
+                                       return
+                               end
+                       end
+               end
+
                var code = new Array[String]
                code.add """
 redef init from_deserializer(v: Deserializer)