model: add location to packages and groups
authorJean Privat <jean@pryen.org>
Sun, 1 May 2016 15:43:36 +0000 (11:43 -0400)
committerJean Privat <jean@pryen.org>
Fri, 13 May 2016 20:38:51 +0000 (16:38 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

src/loader.nit
src/model/mpackage.nit

index 991a1fd..bf8605f 100644 (file)
@@ -381,9 +381,9 @@ redef class ModelBuilder
 
                if mgroup == null then
                        # singleton package
-                       var mpackage = new MPackage(pn, model)
-                       mgroup = new MGroup(pn, mpackage, null) # same name for the root group
-                       mgroup.filepath = path
+                       var loc = new Location.opaque_file(path)
+                       var mpackage = new MPackage(pn, model, loc)
+                       mgroup = new MGroup(pn, loc, mpackage, null) # same name for the root group
                        mpackage.root = mgroup
                        toolcontext.info("found singleton package `{pn}` at {path}", 2)
 
@@ -482,17 +482,18 @@ redef class ModelBuilder
                        end
                end
 
+               var loc = new Location.opaque_file(dirpath)
                var mgroup
                if parent == null then
                        # no parent, thus new package
                        if ini != null then pn = ini["package.name"] or else pn
-                       var mpackage = new MPackage(pn, model)
-                       mgroup = new MGroup(pn, mpackage, null) # same name for the root group
+                       var mpackage = new MPackage(pn, model, loc)
+                       mgroup = new MGroup(pn, loc, mpackage, null) # same name for the root group
                        mpackage.root = mgroup
                        toolcontext.info("found package `{mpackage}` at {dirpath}", 2)
                        mpackage.ini = ini
                else
-                       mgroup = new MGroup(pn, parent.mpackage, parent)
+                       mgroup = new MGroup(pn, loc, parent.mpackage, parent)
                        toolcontext.info("found sub group `{mgroup.full_name}` at {dirpath}", 2)
                end
 
index 1771938..9273d82 100644 (file)
@@ -34,6 +34,8 @@ class MPackage
        # The model of the package
        redef var model: Model
 
+       redef var location
+
        # The root of the group tree
        var root: nullable MGroup = null is writable
 
@@ -66,6 +68,8 @@ class MGroup
        # empty name for a default group in a single-module package
        redef var name: String
 
+       redef var location
+
        # The enclosing package
        var mpackage: MPackage