From 81b6d04f0c7b97338f49b14c7a8266bbb0db780e Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Mon, 13 Jul 2015 15:32:58 -0400 Subject: [PATCH] modelize: improve message in case of inherited autoinit conflict Signed-off-by: Jean Privat --- src/modelize/modelize_property.nit | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/modelize/modelize_property.nit b/src/modelize/modelize_property.nit index 1afce19..be862c6 100644 --- a/src/modelize/modelize_property.nit +++ b/src/modelize/modelize_property.nit @@ -305,7 +305,12 @@ redef class ModelBuilder var i = 0 for p in spd.initializers do if p != longest.initializers[i] then - self.error(nclassdef, "Error: conflict for inherited inits {spd}({spd.initializers.join(", ")}) and {longest}({longest.initializers.join(", ")})") + var proposal = new ArraySet[MProperty] + for spd2 in spropdefs do + proposal.add_all spd2.initializers + end + proposal.add_all initializers + self.error(nclassdef, "Error: cannot generate automatic init for class {mclassdef.mclass}. Conflict in the order in inherited initializers {spd}({spd.initializers.join(", ")}) and {longest}({longest.initializers.join(", ")}). Use `autoinit` to order initializers. eg `autoinit {proposal.join(", ")}`") # TODO: invalidate the initializer to avoid more errors return end -- 1.7.9.5