Fix #2725 by calling load_context/1 in the unspecified branch of strip_module/3
This fixes #2725, by making it so that `strip_module(Pred, M, P), call(M:P)` doesn't throw an `instanciation_error` when `Pred` isn't in the form `module:predicate`. Now, `strip_module(hello, M, P)` will call `load_context(M)`, which unifies `M` with the topmost module (or `user`). Two new test cases are added: issue2725.pl, which tests the minimal case id(X) --> X. and the strip_module(P, M, _), call(M:P) scenario, and module_resolution, which tests the behavior of strip_module in a few scenarios.
This commit is contained in:
0
tests/scryer/cli/src_tests/module_resolution.stderr
Normal file
0
tests/scryer/cli/src_tests/module_resolution.stderr
Normal file
6
tests/scryer/cli/src_tests/module_resolution.stdout
Normal file
6
tests/scryer/cli/src_tests/module_resolution.stdout
Normal file
@@ -0,0 +1,6 @@
|
||||
module_resolution
|
||||
module_resolution
|
||||
module_resolution
|
||||
module_resolution
|
||||
user
|
||||
user
|
||||
10
tests/scryer/cli/src_tests/module_resolution.toml
Normal file
10
tests/scryer/cli/src_tests/module_resolution.toml
Normal file
@@ -0,0 +1,10 @@
|
||||
args = [
|
||||
"-f",
|
||||
"--no-add-history",
|
||||
"src/tests/module_resolution.pl",
|
||||
"-f",
|
||||
"-g", "use_module(library(module_resolution))",
|
||||
"-g", "get_module(some_predicate, M), write(M), write('\\n')",
|
||||
"-g", "module_resolution:get_module(some_predicate, M), write(M), write('\\n')",
|
||||
"-g", "halt"
|
||||
]
|
||||
Reference in New Issue
Block a user