Fine tune codegen for global exports.

This commit is contained in:
Stephen Chung
2020-11-17 14:29:28 +08:00
parent bd094d95b4
commit 863c6b45a5
5 changed files with 23 additions and 18 deletions

View File

@@ -215,14 +215,18 @@ impl ExportedParams for ExportedFnParams {
return Err(syn::Error::new(s.span(), "extraneous value"))
}
("global", None) => {
if namespace.is_some() {
return Err(syn::Error::new(key.span(), "conflicting namespace"));
if let Some(ns) = namespace {
if ns != FnNamespaceAccess::Global {
return Err(syn::Error::new(key.span(), "conflicting namespace"));
}
}
namespace = Some(FnNamespaceAccess::Global);
}
("internal", None) => {
if namespace.is_some() {
return Err(syn::Error::new(key.span(), "conflicting namespace"));
if let Some(ns) = namespace {
if ns != FnNamespaceAccess::Internal {
return Err(syn::Error::new(key.span(), "conflicting namespace"));
}
}
namespace = Some(FnNamespaceAccess::Internal);
}