Allow instanciation of places with resolved module paths
This commit is contained in:
parent
958ad908ab
commit
3b0568b39c
|
@ -236,7 +236,6 @@ THREAD_LOCAL_DECL(static Scheme_Object *global_shift_cache);
|
||||||
# define SHIFT_CACHE_NULLP(x) !(x)
|
# define SHIFT_CACHE_NULLP(x) !(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define SCHEME_MODNAMEP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_resolved_module_path_type)
|
|
||||||
#define SCHEME_RMP_VAL(obj) SCHEME_PTR_VAL(obj)
|
#define SCHEME_RMP_VAL(obj) SCHEME_PTR_VAL(obj)
|
||||||
|
|
||||||
typedef void (*Check_Func)(Scheme_Object *prnt_name, Scheme_Object *name,
|
typedef void (*Check_Func)(Scheme_Object *prnt_name, Scheme_Object *name,
|
||||||
|
|
|
@ -309,8 +309,8 @@ Scheme_Object *scheme_place(int argc, Scheme_Object *args[]) {
|
||||||
out_arg = args[3];
|
out_arg = args[3];
|
||||||
err_arg = args[4];
|
err_arg = args[4];
|
||||||
|
|
||||||
if (!scheme_is_module_path(args[0]) && !SCHEME_PATHP(args[0])) {
|
if (!scheme_is_module_path(args[0]) && !SCHEME_PATHP(args[0]) && !SCHEME_MODNAMEP(args[0])) {
|
||||||
scheme_wrong_type("dynamic-place", "module-path or path", 0, argc, args);
|
scheme_wrong_type("dynamic-place", "module-path or path of resolved-module-path", 0, argc, args);
|
||||||
}
|
}
|
||||||
if (!SCHEME_SYMBOLP(args[1])) {
|
if (!SCHEME_SYMBOLP(args[1])) {
|
||||||
scheme_wrong_type("dynamic-place", "symbol", 1, argc, args);
|
scheme_wrong_type("dynamic-place", "symbol", 1, argc, args);
|
||||||
|
|
|
@ -3176,6 +3176,8 @@ Scheme_Object *scheme_modidx_shift(Scheme_Object *modidx,
|
||||||
Scheme_Object *shift_to_modidx);
|
Scheme_Object *shift_to_modidx);
|
||||||
|
|
||||||
#define SCHEME_RMPP(o) (SAME_TYPE(SCHEME_TYPE((o)), scheme_resolved_module_path_type))
|
#define SCHEME_RMPP(o) (SAME_TYPE(SCHEME_TYPE((o)), scheme_resolved_module_path_type))
|
||||||
|
#define SCHEME_MODNAMEP(obj) (SAME_TYPE(SCHEME_TYPE(obj), scheme_resolved_module_path_type))
|
||||||
|
|
||||||
Scheme_Object *scheme_intern_resolved_module_path(Scheme_Object *o);
|
Scheme_Object *scheme_intern_resolved_module_path(Scheme_Object *o);
|
||||||
Scheme_Object *scheme_resolved_module_path_value(Scheme_Object *rmp);
|
Scheme_Object *scheme_resolved_module_path_value(Scheme_Object *rmp);
|
||||||
int scheme_resolved_module_path_value_matches(Scheme_Object *rmp, Scheme_Object *o);
|
int scheme_resolved_module_path_value_matches(Scheme_Object *rmp, Scheme_Object *o);
|
||||||
|
|
|
@ -881,7 +881,6 @@ static void module_validate(Scheme_Object *data, Mz_CPort *port,
|
||||||
|
|
||||||
m = (Scheme_Module *)data;
|
m = (Scheme_Module *)data;
|
||||||
|
|
||||||
# define SCHEME_MODNAMEP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_resolved_module_path_type)
|
|
||||||
if (!SCHEME_MODNAMEP(m->modname))
|
if (!SCHEME_MODNAMEP(m->modname))
|
||||||
scheme_ill_formed_code(port);
|
scheme_ill_formed_code(port);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user