copy operator exports to impromptu modules (#307)
This commit is contained in:
@@ -1279,6 +1279,17 @@ fn compile_work_impl(
|
||||
.filter(|(name, _)| name.owning_module().as_str() != "builtins")
|
||||
.map(ModuleExport::PredicateKey)
|
||||
.collect();
|
||||
|
||||
module.module_decl.exports.extend(
|
||||
indices.op_dir.iter()
|
||||
.map(|((name, _), OpDirValue (shared_op_desc, _))|
|
||||
ModuleExport::OpDecl(OpDecl(
|
||||
shared_op_desc.prec(),
|
||||
shared_op_desc.assoc(),
|
||||
name.clone(),
|
||||
))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
let mut clause_code_generator =
|
||||
|
||||
@@ -166,7 +166,7 @@ pub trait SubModuleUser {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
};
|
||||
},
|
||||
@@ -202,7 +202,7 @@ pub trait SubModuleUser {
|
||||
_: &Module,
|
||||
_: &Vec<ModuleExport>,
|
||||
) -> Result<(), SessionError>;
|
||||
|
||||
|
||||
fn use_module(
|
||||
&mut self,
|
||||
_: &mut CodeRepo,
|
||||
@@ -232,7 +232,7 @@ where
|
||||
|
||||
if !user.import_decl(name.clone(), arity, submodule) {
|
||||
let submodule_name = submodule.module_decl.name.clone();
|
||||
|
||||
|
||||
return Err(SessionError::ModuleDoesNotContainExport(
|
||||
submodule_name,
|
||||
(name, arity)
|
||||
@@ -250,12 +250,12 @@ where
|
||||
|
||||
let op_dir = user.op_dir();
|
||||
let prec = op_decl.0;
|
||||
|
||||
|
||||
op_decl.insert_into_op_dir(
|
||||
submodule.module_decl.name.clone(),
|
||||
op_dir,
|
||||
prec,
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -282,12 +282,12 @@ pub fn use_module<User: SubModuleUser>(
|
||||
ModuleExport::OpDecl(op_decl) => {
|
||||
let op_dir = user.op_dir();
|
||||
let prec = op_decl.0;
|
||||
|
||||
|
||||
op_decl.insert_into_op_dir(
|
||||
submodule.module_decl.name.clone(),
|
||||
op_dir,
|
||||
prec,
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user