From 7b410caa01ae7885b872e3d0b79b9b57d14fc230 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexis=20Laferri=C3=A8re?= Date: Sat, 15 Nov 2014 20:57:17 -0500 Subject: [PATCH] nitserial: do not generate constructors for abstract classes MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Alexis Laferrière --- src/frontend/serialization_phase.nit | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/frontend/serialization_phase.nit b/src/frontend/serialization_phase.nit index 75863d9..2b68eea 100644 --- a/src/frontend/serialization_phase.nit +++ b/src/frontend/serialization_phase.nit @@ -97,8 +97,11 @@ private class SerializationPhasePreModel end # Add a constructor to the automated nclassdef - fun generate_deserialization_init(nclassdef: AClassdef) + fun generate_deserialization_init(nclassdef: AStdClassdef) do + # Do not generate constructors for abstract classes + if nclassdef.n_classkind isa AAbstractClasskind then return + var npropdefs = nclassdef.n_propdefs var code = new Array[String] @@ -156,7 +159,9 @@ private class SerializationPhasePreModel for nclassdef in nclassdefs do var name = nclassdef.n_id.text - if nclassdef.n_formaldefs.is_empty then + if nclassdef.n_formaldefs.is_empty and + not nclassdef.n_classkind isa AAbstractClasskind then + code.add " if name == \"{name}\" then return new {name}.from_deserializer(self)" end end -- 1.7.9.5