loader: identified_files_by_path also cache the relative path
authorJean Privat <jean@pryen.org>
Thu, 24 Sep 2015 15:05:48 +0000 (11:05 -0400)
committerJean Privat <jean@pryen.org>
Thu, 24 Sep 2015 15:05:48 +0000 (11:05 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

src/loader.nit

index 00d957a..bc268fa 100644 (file)
@@ -352,10 +352,12 @@ redef class ModelBuilder
                end
 
                # Fast track, the path is already known
-               var pn = path.basename(".nit")
+               if identified_files_by_path.has_key(path) then return identified_files_by_path[path]
                var rp = module_absolute_path(path)
                if identified_files_by_path.has_key(rp) then return identified_files_by_path[rp]
 
+               var pn = path.basename(".nit")
+
                # Search for a group
                var mgrouppath = path.join_path("..").simplify_path
                var mgroup = get_mgroup(mgrouppath)
@@ -380,6 +382,7 @@ redef class ModelBuilder
                mgroup.module_paths.add(res)
 
                identified_files_by_path[rp] = res
+               identified_files_by_path[path] = res
                identified_files.add(res)
                return res
        end