lib/serialization: add README.md
[nit.git] / src / loader.nit
index 6caaf79..65e7c67 100644 (file)
@@ -386,7 +386,7 @@ redef class ModelBuilder
                if not readme.file_exists then readme = dirpath2.join_path("README")
                if readme.file_exists then
                        var mdoc = new MDoc
-                       var s = new IFStream.open(readme)
+                       var s = new FileReader.open(readme)
                        while not s.eof do
                                mdoc.content.add(s.read_line)
                        end
@@ -430,7 +430,7 @@ redef class ModelBuilder
                self.toolcontext.info("load module {filename}", 2)
 
                # Load the file
-               var file = new IFStream.open(filename)
+               var file = new FileReader.open(filename)
                var lexer = new Lexer(new SourceFile(filename, file))
                var parser = new Parser(lexer)
                var tree = parser.parse
@@ -540,6 +540,12 @@ redef class ModelBuilder
                nmodules.add(nmodule)
                self.mmodule2nmodule[mmodule] = nmodule
 
+               var source = nmodule.location.file
+               if source != null then
+                       assert source.mmodule == null
+                       source.mmodule = mmodule
+               end
+
                if decl != null then
                        # Extract documentation
                        var ndoc = decl.n_doc
@@ -686,6 +692,11 @@ redef class MGroup
 
 end
 
+redef class SourceFile
+       # Associated mmodule, once created
+       var mmodule: nullable MModule = null
+end
+
 redef class AStdImport
        # The imported module once determined
        var mmodule: nullable MModule = null