From 73c36b66698216cc38d99533e8c961f49a35859e Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Mon, 15 Jun 2009 14:36:23 -0400 Subject: [PATCH] metamodel: MMLocalClass::init takes the MMModule Also remove the MMModule::add_local_class method Signed-off-by: Jean Privat --- src/metamodel/abstractmetamodel.nit | 11 +++-------- src/metamodel/inheritance.nit | 3 +-- src/syntax/mmbuilder.nit | 3 +-- src/syntax/syntax_base.nit | 4 ++-- 4 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/metamodel/abstractmetamodel.nit b/src/metamodel/abstractmetamodel.nit index e69f4ab..65b98c0 100644 --- a/src/metamodel/abstractmetamodel.nit +++ b/src/metamodel/abstractmetamodel.nit @@ -220,13 +220,6 @@ class MMModule return _local_class_by_global[c] end - # Register a local class to the module - meth add_local_class(c: MMLocalClass) - do - c._module = self - _local_classes.add(c) - end - # Get a local class by its name meth class_by_name(n: Symbol): MMLocalClass do @@ -375,10 +368,12 @@ class MMLocalClass readable attr _properties_by_name: Map[Symbol, Array[MMGlobalProperty]] # Create a new class with a given name and arity - protected init(name: Symbol, arity: Int) + protected init(mod: MMModule, name: Symbol, arity: Int) do + _module = mod _name = name _arity = arity + mod._local_classes.add(self) end # The corresponding local class in another module diff --git a/src/metamodel/inheritance.nit b/src/metamodel/inheritance.nit index 870f266..a739844 100644 --- a/src/metamodel/inheritance.nit +++ b/src/metamodel/inheritance.nit @@ -419,8 +419,7 @@ special MMLocalClass init(mod: MMModule, g: MMGlobalClass) do var cla = g.intro - super(cla.name, cla.arity) - mod.add_local_class(self) + super(mod, cla.name, cla.arity) set_global(g) end end diff --git a/src/syntax/mmbuilder.nit b/src/syntax/mmbuilder.nit index 1f71787..cdcf45e 100644 --- a/src/syntax/mmbuilder.nit +++ b/src/syntax/mmbuilder.nit @@ -523,8 +523,7 @@ redef class PClassdef end local_class.nodes.add(self) else - local_class = new MMSrcLocalClass(name, self, arity) - mod.add_local_class(local_class) + local_class = new MMSrcLocalClass(mod, name, self, arity) local_classes[name] = local_class if not mod.has_global_class_named(name) then local_class.new_global diff --git a/src/syntax/syntax_base.nit b/src/syntax/syntax_base.nit index e7311a8..259cf9a 100644 --- a/src/syntax/syntax_base.nit +++ b/src/syntax/syntax_base.nit @@ -68,9 +68,9 @@ special MMConcreteClass # Concrete NIT source properties by name readable attr _src_local_properties: Map[Symbol, MMLocalProperty] - init(n: Symbol, cla: PClassdef, a: Int) + init(mod: MMSrcModule, n: Symbol, cla: PClassdef, a: Int) do - super(n, a) + super(mod, n, a) _nodes = [cla] _src_local_properties = new HashMap[Symbol, MMLocalProperty] end -- 1.7.9.5