Merge: curl: basic Unix domain socket support
[nit.git] / src / loader.nit
index deb895a..f18d7be 100644 (file)
@@ -39,6 +39,7 @@ module loader
 
 import modelbuilder_base
 import ini
+import picnit_shared
 
 redef class ToolContext
        # Option --path
@@ -65,6 +66,11 @@ redef class ModelBuilder
                # Setup the paths value
                paths.append(toolcontext.opt_path.value)
 
+               # Packages managed by picnit, only use when not testing with tests.sh
+               if "NIT_TESTING_TESTS_SH".environ != "true" then
+                       paths.add picnit_lib_dir
+               end
+
                var path_env = "NIT_PATH".environ
                if not path_env.is_empty then
                        paths.append(path_env.split_with(':'))
@@ -135,6 +141,7 @@ redef class ModelBuilder
                                alpha_comparator.sort(fs)
                                # Try each entry as a group or a module
                                for f in fs do
+                                       if f.first == '.' then continue
                                        var af = a/f
                                        mgroup = identify_group(af)
                                        if mgroup != null then
@@ -636,6 +643,7 @@ redef class ModelBuilder
                var files = p.files
                alpha_comparator.sort(files)
                for f in files do
+                       if f.first == '.' then continue
                        var fp = p/f
                        var g = identify_group(fp)
                        # Recursively scan for groups of the same package
@@ -742,7 +750,7 @@ redef class ModelBuilder
 
        # Injection of a new module without source.
        # Used by the interpreter.
-       fun load_rt_module(parent: nullable MModule, nmodule: AModule, mod_name: String): nullable AModule
+       fun load_rt_module(parent: nullable MModule, nmodule: AModule, mod_name: String): nullable MModule
        do
                # Create the module
 
@@ -759,11 +767,10 @@ redef class ModelBuilder
                        imported_modules.add(parent)
                        mmodule.set_visibility_for(parent, intrude_visibility)
                        mmodule.set_imported_mmodules(imported_modules)
-               else
-                       build_module_importation(nmodule)
                end
+               build_module_importation(nmodule)
 
-               return nmodule
+               return mmodule
        end
 
        # Visit the AST and create the `MModule` object
@@ -811,8 +818,8 @@ redef class ModelBuilder
                                mmodule.mdoc = mdoc
                                mdoc.original_mentity = mmodule
                        end
-                       # Is the module a test suite?
-                       mmodule.is_test_suite = not decl.get_annotations("test_suite").is_empty
+                       # Is the module generated?
+                       mmodule.is_generated = not decl.get_annotations("generated").is_empty
                end
        end
 
@@ -1045,7 +1052,7 @@ redef class ModelBuilder
        # (and `build_module_importation` that calls it).
        #
        # TODO (when the loader will be rewritten): use a better representation and move up rules in the model.
-       private var conditional_importations = new Array[SequenceRead[MModule]]
+       var conditional_importations = new Array[SequenceRead[MModule]]
 
        # Extends the current importations according to imported rules about conditional importation
        fun apply_conditional_importations(mmodule: MModule)