mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-06-12 04:21:21 +00:00
address my comments for #470
This commit is contained in:
@ -10,6 +10,7 @@ pub struct Program {
|
||||
pub enums: Vec<Enum>,
|
||||
pub structs: Vec<Struct>,
|
||||
pub type_aliases: Vec<TypeAlias>,
|
||||
pub consts: Vec<Const>,
|
||||
}
|
||||
|
||||
#[cfg_attr(feature = "extra-traits", derive(Debug, PartialEq, Eq))]
|
||||
@ -42,7 +43,6 @@ pub enum ImportKind {
|
||||
Static(ImportStatic),
|
||||
Type(ImportType),
|
||||
Enum(ImportEnum),
|
||||
Const(Const),
|
||||
}
|
||||
|
||||
#[cfg_attr(feature = "extra-traits", derive(Debug, PartialEq, Eq))]
|
||||
@ -179,7 +179,7 @@ pub struct TypeAlias {
|
||||
pub struct Const {
|
||||
pub vis: syn::Visibility,
|
||||
pub name: Ident,
|
||||
pub interface_name: Ident,
|
||||
pub class: Option<Ident>,
|
||||
pub ty: syn::Type,
|
||||
pub value: ConstValue,
|
||||
}
|
||||
@ -312,7 +312,6 @@ impl ImportKind {
|
||||
ImportKind::Static(_) => false,
|
||||
ImportKind::Type(_) => false,
|
||||
ImportKind::Enum(_) => false,
|
||||
ImportKind::Const(_) => false,
|
||||
}
|
||||
}
|
||||
|
||||
@ -322,7 +321,6 @@ impl ImportKind {
|
||||
ImportKind::Static(ref f) => shared::ImportKind::Static(f.shared()),
|
||||
ImportKind::Type(ref f) => shared::ImportKind::Type(f.shared()),
|
||||
ImportKind::Enum(ref f) => shared::ImportKind::Enum(f.shared()),
|
||||
ImportKind::Const(ref f) => shared::ImportKind::Const(f.shared()),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -425,9 +423,3 @@ impl StructField {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Const {
|
||||
fn shared(&self) -> shared::Const {
|
||||
shared::Const {}
|
||||
}
|
||||
}
|
||||
|
@ -62,6 +62,9 @@ impl ToTokens for ast::Program {
|
||||
for a in self.type_aliases.iter() {
|
||||
a.to_tokens(tokens);
|
||||
}
|
||||
for c in self.consts.iter() {
|
||||
c.to_tokens(tokens);
|
||||
}
|
||||
|
||||
// Generate a static which will eventually be what lives in a custom section
|
||||
// of the wasm executable. For now it's just a plain old static, but we'll
|
||||
@ -501,7 +504,6 @@ impl ToTokens for ast::ImportKind {
|
||||
ast::ImportKind::Static(ref s) => s.to_tokens(tokens),
|
||||
ast::ImportKind::Type(ref t) => t.to_tokens(tokens),
|
||||
ast::ImportKind::Enum(ref e) => e.to_tokens(tokens),
|
||||
ast::ImportKind::Const(ref c) => c.to_tokens(tokens),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -843,7 +845,6 @@ impl<'a> ToTokens for DescribeImport<'a> {
|
||||
ast::ImportKind::Static(_) => return,
|
||||
ast::ImportKind::Type(_) => return,
|
||||
ast::ImportKind::Enum(_) => return,
|
||||
ast::ImportKind::Const(_) => return,
|
||||
};
|
||||
let describe_name = format!("__wbindgen_describe_{}", f.shim);
|
||||
let describe_name = Ident::new(&describe_name, Span::call_site());
|
||||
@ -967,7 +968,6 @@ impl ToTokens for ast::Const {
|
||||
|
||||
let vis = &self.vis;
|
||||
let name = &self.name;
|
||||
let interface_name = &self.interface_name;
|
||||
let ty = &self.ty;
|
||||
|
||||
let value: TokenStream = match self.value {
|
||||
@ -984,17 +984,24 @@ impl ToTokens for ast::Const {
|
||||
FloatLiteral(f) => {
|
||||
let f = Literal::f64_unsuffixed(f);
|
||||
quote!(#f)
|
||||
},
|
||||
}
|
||||
IntegerLiteral(i) => {
|
||||
let i = Literal::i64_unsuffixed(i);
|
||||
quote!(#i)
|
||||
},
|
||||
}
|
||||
Null => unimplemented!(),
|
||||
};
|
||||
(quote! {
|
||||
impl #interface_name {
|
||||
#vis const #name: #ty = #value;
|
||||
}
|
||||
}).to_tokens(tokens);
|
||||
|
||||
let declaration = quote!(#vis const #name: #ty = #value;);
|
||||
|
||||
if let Some(class) = &self.class {
|
||||
(quote! {
|
||||
impl #class {
|
||||
#declaration
|
||||
}
|
||||
}).to_tokens(tokens);
|
||||
} else {
|
||||
declaration.to_tokens(tokens);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -70,6 +70,7 @@ impl ImportedTypes for ast::Program {
|
||||
{
|
||||
self.imports.imported_types(f);
|
||||
self.type_aliases.imported_types(f);
|
||||
self.consts.imported_types(f);
|
||||
}
|
||||
}
|
||||
|
||||
@ -106,7 +107,6 @@ impl ImportedTypes for ast::ImportKind {
|
||||
ast::ImportKind::Function(fun) => fun.imported_types(f),
|
||||
ast::ImportKind::Type(ty) => ty.imported_types(f),
|
||||
ast::ImportKind::Enum(enm) => enm.imported_types(f),
|
||||
ast::ImportKind::Const(c) => c.imported_types(f),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -254,6 +254,7 @@ impl RemoveUndefinedImports for ast::Program {
|
||||
{
|
||||
self.imports.remove_undefined_imports(is_defined);
|
||||
self.type_aliases.remove_undefined_imports(is_defined);
|
||||
self.consts.remove_undefined_imports(is_defined);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user