nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
model: add `full_name` to entities that miss one
[nit.git]
/
src
/
model
/
mmodule.nit
diff --git
a/src/model/mmodule.nit
b/src/model/mmodule.nit
index
f2c11a6
..
2fbb424
100644
(file)
--- a/
src/model/mmodule.nit
+++ b/
src/model/mmodule.nit
@@
-27,12
+27,6
@@
redef class Model
# All known modules
var mmodules = new Array[MModule]
# All known modules
var mmodules = new Array[MModule]
- # placebo for old module nesting hierarchy.
- # where mainmodule < mainmodule::nestedmodule
- #
- # TODO REMOVE, rely on mgroup instead
- var mmodule_nesting_hierarchy = new POSet[MModule]
-
# Full module importation hierarchy including private or nested links.
var mmodule_importation_hierarchy = new POSet[MModule]
# Full module importation hierarchy including private or nested links.
var mmodule_importation_hierarchy = new POSet[MModule]
@@
-63,6
+57,13
@@
redef class MGroup
# Return `null` if the group has no default module or if the default
# module is not loaded.
var default_mmodule: nullable MModule = null
# Return `null` if the group has no default module or if the default
# module is not loaded.
var default_mmodule: nullable MModule = null
+
+ redef fun mdoc_or_fallback
+ do
+ if mdoc != null then return mdoc
+ if default_mmodule == null then return null
+ return default_mmodule.mdoc_or_fallback
+ end
end
# A Nit module is usually associated with a Nit source file.
end
# A Nit module is usually associated with a Nit source file.
@@
-84,19
+85,17
@@
class MModule
# Alias for `name`
redef fun to_s do return self.name
# Alias for `name`
redef fun to_s do return self.name
- # placebo for old module nesting hierarchy
- # The view of the module in the `model.mmodule_nesting_hierarchy`
- #
- # TODO REMOVE, rely on mgroup instead
- var in_nesting: POSetElement[MModule] is noinit
-
# The view of the module in the `model.mmodule_importation_hierarchy`
var in_importation: POSetElement[MModule] is noinit
# The view of the module in the `model.mmodule_importation_hierarchy`
var in_importation: POSetElement[MModule] is noinit
- # The canonical name of the module
+ # The canonical name of the module.
+ #
+ # It is usually the `name` prefixed by the project's name.
# Example: `"project::name"`
# Example: `"project::name"`
- fun full_name: String
- do
+ #
+ # If both names are the same (of if the module is project-less), then
+ # the short-name is used alone.
+ redef var full_name is lazy do
var mgroup = self.mgroup
if mgroup == null or mgroup.mproject.name == self.name then
return self.name
var mgroup = self.mgroup
if mgroup == null or mgroup.mproject.name == self.name then
return self.name
@@
-110,7
+109,6
@@
class MModule
do
model.mmodules_by_name.add_one(name, self)
model.mmodules.add(self)
do
model.mmodules_by_name.add_one(name, self)
model.mmodules.add(self)
- self.in_nesting = model.mmodule_nesting_hierarchy.add_node(self)
if mgroup != null then
mgroup.mmodules.add(self)
if mgroup.name == name then
if mgroup != null then
mgroup.mmodules.add(self)
if mgroup.name == name then
@@
-120,17
+118,9
@@
class MModule
# placebo for old module nesting hierarchy
var direct_owner = mgroup.default_mmodule
if direct_owner == self then
# placebo for old module nesting hierarchy
var direct_owner = mgroup.default_mmodule
if direct_owner == self then
- # The module is the new owner of its own group, thus adopt the other modules
- for m in mgroup.mmodules do
- if m == self then continue
- model.mmodule_nesting_hierarchy.add_edge(self, m)
- end
# The potential owner is the default_mmodule of the parent group
if mgroup.parent != null then direct_owner = mgroup.parent.default_mmodule
end
# The potential owner is the default_mmodule of the parent group
if mgroup.parent != null then direct_owner = mgroup.parent.default_mmodule
end
- if direct_owner != self and direct_owner != null then
- model.mmodule_nesting_hierarchy.add_edge(direct_owner, self)
- end
end
self.in_importation = model.mmodule_importation_hierarchy.add_node(self)
end
end
self.in_importation = model.mmodule_importation_hierarchy.add_node(self)
end