Fix require caching by using correct tuple ordering in resolve_paths (#171)

This commit is contained in:
Kenneth Loeffler 2024-04-07 05:41:32 -07:00 committed by GitHub
parent 94ba331ed0
commit a65ef2ae1b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 30 additions and 1 deletions

View file

@ -70,7 +70,7 @@ impl RequireContext {
CWD.join(&rel_path) CWD.join(&rel_path)
}; };
Ok((rel_path, abs_path)) Ok((abs_path, rel_path))
} }
/** /**

View file

@ -95,6 +95,7 @@ create_tests! {
require_nested: "require/tests/nested", require_nested: "require/tests/nested",
require_parents: "require/tests/parents", require_parents: "require/tests/parents",
require_siblings: "require/tests/siblings", require_siblings: "require/tests/siblings",
require_state: "require/tests/state",
global_g_table: "globals/_G", global_g_table: "globals/_G",
global_version: "globals/_VERSION", global_version: "globals/_VERSION",

View file

@ -0,0 +1,14 @@
-- the idea of this test is that state_module stores some state in one of its local
-- variable
local state_module = require("./state_module")
-- we confirm that without anything happening, the initial value is what we expect
assert(state_module.state == 10)
-- this second file also requires state_module and calls a function that changes the local
-- state to 11
require("./state_second")
-- with correct module caching, we should see the change done in state_secone reflected
-- here
assert(state_module.state == 11)

View file

@ -0,0 +1,9 @@
local M = {}
M.state = 10
function M.set_state(n: number)
M.state = n
end
return M

View file

@ -0,0 +1,5 @@
local state_module = require("./state_module")
state_module.set_state(11)
return {}