Merge pull request #262 from ohanar/snake_case_methods

webidl: translate methods from camelCase to snake_case
This commit is contained in:
Nick Fitzgerald 2018-06-11 16:09:34 -07:00 committed by GitHub
commit 3710d87f3b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 26 deletions

View File

@ -19,6 +19,7 @@ wasm-bindgen-backend = { version = "=0.2.11", path = "../backend", features = ["
[dependencies] [dependencies]
failure = "0.1" failure = "0.1"
heck = "0.3"
log = "0.4.1" log = "0.4.1"
proc-macro2 = "0.4" proc-macro2 = "0.4"
quote = '0.6' quote = '0.6'

View File

@ -9,6 +9,7 @@ emitted for the types and methods described in the WebIDL.
#![deny(missing_debug_implementations)] #![deny(missing_debug_implementations)]
extern crate failure; extern crate failure;
extern crate heck;
#[macro_use] #[macro_use]
extern crate log; extern crate log;
extern crate proc_macro2; extern crate proc_macro2;
@ -18,6 +19,7 @@ extern crate wasm_bindgen_backend as backend;
extern crate webidl; extern crate webidl;
use failure::ResultExt; use failure::ResultExt;
use heck::SnakeCase;
use proc_macro2::Ident; use proc_macro2::Ident;
use quote::ToTokens; use quote::ToTokens;
use std::fs; use std::fs;
@ -334,7 +336,7 @@ impl<'a> WebidlParse<'a> for webidl::ast::RegularOperation {
type Extra = &'a str; type Extra = &'a str;
fn webidl_parse(&self, program: &mut backend::ast::Program, self_name: &'a str) -> Result<()> { fn webidl_parse(&self, program: &mut backend::ast::Program, self_name: &'a str) -> Result<()> {
let fn_name = match self.name { let name = match self.name {
None => { None => {
warn!( warn!(
"Operations without a name are unsupported. Skipping {:?}", "Operations without a name are unsupported. Skipping {:?}",
@ -342,9 +344,12 @@ impl<'a> WebidlParse<'a> for webidl::ast::RegularOperation {
); );
return Ok(()); return Ok(());
} }
Some(ref name) => rust_ident(name), Some(ref name) => name,
}; };
let rust_name = rust_ident(&name.to_snake_case());
let name = raw_ident(name);
let (output, ret) = match self.return_type { let (output, ret) = match self.return_type {
webidl::ast::ReturnType::Void => (syn::ReturnType::Default, None), webidl::ast::ReturnType::Void => (syn::ReturnType::Default, None),
webidl::ast::ReturnType::NonVoid(ref ty) => { webidl::ast::ReturnType::NonVoid(ref ty) => {
@ -396,8 +401,7 @@ impl<'a> WebidlParse<'a> for webidl::ast::RegularOperation {
} }
} }
let rust_name = fn_name.clone(); let shim = rust_ident(&format!("__wbg_f_{}_{}_{}", name, rust_name, self_name));
let shim = rust_ident(&format!("__wbg_f_{}_{}_{}", fn_name, fn_name, self_name));
program.imports.push(backend::ast::Import { program.imports.push(backend::ast::Import {
module: None, module: None,
@ -405,7 +409,7 @@ impl<'a> WebidlParse<'a> for webidl::ast::RegularOperation {
js_namespace: None, js_namespace: None,
kind: backend::ast::ImportKind::Function(backend::ast::ImportFunction { kind: backend::ast::ImportKind::Function(backend::ast::ImportFunction {
function: backend::ast::Function { function: backend::ast::Function {
name: fn_name, name,
arguments, arguments,
ret, ret,
opts: backend::ast::BindgenAttrs { opts: backend::ast::BindgenAttrs {

View File

@ -55,7 +55,7 @@ impl From<Event> for ::wasm_bindgen::JsValue {
} }
#[no_mangle] #[no_mangle]
#[allow(non_snake_case)] #[allow(non_snake_case)]
pub extern "C" fn __wbindgen_describe___wbg_f_stopPropagation_stopPropagation_Event() { pub extern "C" fn __wbindgen_describe___wbg_f_stopPropagation_stop_propagation_Event() {
use wasm_bindgen::describe::*; use wasm_bindgen::describe::*;
inform(FUNCTION); inform(FUNCTION);
inform(1u32); inform(1u32);
@ -65,11 +65,11 @@ pub extern "C" fn __wbindgen_describe___wbg_f_stopPropagation_stopPropagation_Ev
impl Event { impl Event {
#[allow(bad_style)] #[allow(bad_style)]
#[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))] #[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))]
pub extern "C" fn stopPropagation(&self) { pub extern "C" fn stop_propagation(&self) {
::wasm_bindgen::__rt::link_this_library(); ::wasm_bindgen::__rt::link_this_library();
#[wasm_import_module = "__wbindgen_placeholder__"] #[wasm_import_module = "__wbindgen_placeholder__"]
extern "C" { extern "C" {
fn __wbg_f_stopPropagation_stopPropagation_Event( fn __wbg_f_stopPropagation_stop_propagation_Event(
self_: <&Event as ::wasm_bindgen::convert::IntoWasmAbi>::Abi, self_: <&Event as ::wasm_bindgen::convert::IntoWasmAbi>::Abi,
) -> (); ) -> ();
} }
@ -78,14 +78,14 @@ impl Event {
let mut __stack = ::wasm_bindgen::convert::GlobalStack::new(); let mut __stack = ::wasm_bindgen::convert::GlobalStack::new();
let self_ = let self_ =
<&Event as ::wasm_bindgen::convert::IntoWasmAbi>::into_abi(self, &mut __stack); <&Event as ::wasm_bindgen::convert::IntoWasmAbi>::into_abi(self, &mut __stack);
__wbg_f_stopPropagation_stopPropagation_Event(self_) __wbg_f_stopPropagation_stop_propagation_Event(self_)
}; };
() ()
} }
} }
#[allow(bad_style, unused_variables)] #[allow(bad_style, unused_variables)]
#[cfg(not(all(target_arch = "wasm32", not(target_os = "emscripten"))))] #[cfg(not(all(target_arch = "wasm32", not(target_os = "emscripten"))))]
pub extern "C" fn stopPropagation(&self) { pub extern "C" fn stop_propagation(&self) {
panic!( panic!(
"cannot call wasm-bindgen imported functions on \ "cannot call wasm-bindgen imported functions on \
non-wasm targets" non-wasm targets"
@ -94,7 +94,7 @@ impl Event {
} }
#[no_mangle] #[no_mangle]
#[allow(non_snake_case)] #[allow(non_snake_case)]
pub extern "C" fn __wbindgen_describe___wbg_f_stopImmediatePropagation_stopImmediatePropagation_Event( pub extern "C" fn __wbindgen_describe___wbg_f_stopImmediatePropagation_stop_immediate_propagation_Event(
) { ) {
use wasm_bindgen::describe::*; use wasm_bindgen::describe::*;
inform(FUNCTION); inform(FUNCTION);
@ -105,11 +105,11 @@ pub extern "C" fn __wbindgen_describe___wbg_f_stopImmediatePropagation_stopImmed
impl Event { impl Event {
#[allow(bad_style)] #[allow(bad_style)]
#[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))] #[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))]
pub extern "C" fn stopImmediatePropagation(&self) { pub extern "C" fn stop_immediate_propagation(&self) {
::wasm_bindgen::__rt::link_this_library(); ::wasm_bindgen::__rt::link_this_library();
#[wasm_import_module = "__wbindgen_placeholder__"] #[wasm_import_module = "__wbindgen_placeholder__"]
extern "C" { extern "C" {
fn __wbg_f_stopImmediatePropagation_stopImmediatePropagation_Event( fn __wbg_f_stopImmediatePropagation_stop_immediate_propagation_Event(
self_: <&Event as ::wasm_bindgen::convert::IntoWasmAbi>::Abi, self_: <&Event as ::wasm_bindgen::convert::IntoWasmAbi>::Abi,
) -> (); ) -> ();
} }
@ -118,14 +118,14 @@ impl Event {
let mut __stack = ::wasm_bindgen::convert::GlobalStack::new(); let mut __stack = ::wasm_bindgen::convert::GlobalStack::new();
let self_ = let self_ =
<&Event as ::wasm_bindgen::convert::IntoWasmAbi>::into_abi(self, &mut __stack); <&Event as ::wasm_bindgen::convert::IntoWasmAbi>::into_abi(self, &mut __stack);
__wbg_f_stopImmediatePropagation_stopImmediatePropagation_Event(self_) __wbg_f_stopImmediatePropagation_stop_immediate_propagation_Event(self_)
}; };
() ()
} }
} }
#[allow(bad_style, unused_variables)] #[allow(bad_style, unused_variables)]
#[cfg(not(all(target_arch = "wasm32", not(target_os = "emscripten"))))] #[cfg(not(all(target_arch = "wasm32", not(target_os = "emscripten"))))]
pub extern "C" fn stopImmediatePropagation(&self) { pub extern "C" fn stop_immediate_propagation(&self) {
panic!( panic!(
"cannot call wasm-bindgen imported functions on \ "cannot call wasm-bindgen imported functions on \
non-wasm targets" non-wasm targets"
@ -134,7 +134,7 @@ impl Event {
} }
#[no_mangle] #[no_mangle]
#[allow(non_snake_case)] #[allow(non_snake_case)]
pub extern "C" fn __wbindgen_describe___wbg_f_preventDefault_preventDefault_Event() { pub extern "C" fn __wbindgen_describe___wbg_f_preventDefault_prevent_default_Event() {
use wasm_bindgen::describe::*; use wasm_bindgen::describe::*;
inform(FUNCTION); inform(FUNCTION);
inform(1u32); inform(1u32);
@ -144,11 +144,11 @@ pub extern "C" fn __wbindgen_describe___wbg_f_preventDefault_preventDefault_Even
impl Event { impl Event {
#[allow(bad_style)] #[allow(bad_style)]
#[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))] #[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))]
pub extern "C" fn preventDefault(&self) { pub extern "C" fn prevent_default(&self) {
::wasm_bindgen::__rt::link_this_library(); ::wasm_bindgen::__rt::link_this_library();
#[wasm_import_module = "__wbindgen_placeholder__"] #[wasm_import_module = "__wbindgen_placeholder__"]
extern "C" { extern "C" {
fn __wbg_f_preventDefault_preventDefault_Event( fn __wbg_f_preventDefault_prevent_default_Event(
self_: <&Event as ::wasm_bindgen::convert::IntoWasmAbi>::Abi, self_: <&Event as ::wasm_bindgen::convert::IntoWasmAbi>::Abi,
) -> (); ) -> ();
} }
@ -157,14 +157,14 @@ impl Event {
let mut __stack = ::wasm_bindgen::convert::GlobalStack::new(); let mut __stack = ::wasm_bindgen::convert::GlobalStack::new();
let self_ = let self_ =
<&Event as ::wasm_bindgen::convert::IntoWasmAbi>::into_abi(self, &mut __stack); <&Event as ::wasm_bindgen::convert::IntoWasmAbi>::into_abi(self, &mut __stack);
__wbg_f_preventDefault_preventDefault_Event(self_) __wbg_f_preventDefault_prevent_default_Event(self_)
}; };
() ()
} }
} }
#[allow(bad_style, unused_variables)] #[allow(bad_style, unused_variables)]
#[cfg(not(all(target_arch = "wasm32", not(target_os = "emscripten"))))] #[cfg(not(all(target_arch = "wasm32", not(target_os = "emscripten"))))]
pub extern "C" fn preventDefault(&self) { pub extern "C" fn prevent_default(&self) {
panic!( panic!(
"cannot call wasm-bindgen imported functions on \ "cannot call wasm-bindgen imported functions on \
non-wasm targets" non-wasm targets"
@ -173,7 +173,7 @@ impl Event {
} }
#[no_mangle] #[no_mangle]
#[allow(non_snake_case)] #[allow(non_snake_case)]
pub extern "C" fn __wbindgen_describe___wbg_f_initEvent_initEvent_Event() { pub extern "C" fn __wbindgen_describe___wbg_f_initEvent_init_event_Event() {
use wasm_bindgen::describe::*; use wasm_bindgen::describe::*;
inform(FUNCTION); inform(FUNCTION);
inform(4u32); inform(4u32);
@ -186,11 +186,11 @@ pub extern "C" fn __wbindgen_describe___wbg_f_initEvent_initEvent_Event() {
impl Event { impl Event {
#[allow(bad_style)] #[allow(bad_style)]
#[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))] #[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))]
pub extern "C" fn initEvent(&self, type_: &str, bubbles: bool, cancelable: bool) { pub extern "C" fn init_event(&self, type_: &str, bubbles: bool, cancelable: bool) {
::wasm_bindgen::__rt::link_this_library(); ::wasm_bindgen::__rt::link_this_library();
#[wasm_import_module = "__wbindgen_placeholder__"] #[wasm_import_module = "__wbindgen_placeholder__"]
extern "C" { extern "C" {
fn __wbg_f_initEvent_initEvent_Event( fn __wbg_f_initEvent_init_event_Event(
self_: <&Event as ::wasm_bindgen::convert::IntoWasmAbi>::Abi, self_: <&Event as ::wasm_bindgen::convert::IntoWasmAbi>::Abi,
type_: <&str as ::wasm_bindgen::convert::IntoWasmAbi>::Abi, type_: <&str as ::wasm_bindgen::convert::IntoWasmAbi>::Abi,
bubbles: <bool as ::wasm_bindgen::convert::IntoWasmAbi>::Abi, bubbles: <bool as ::wasm_bindgen::convert::IntoWasmAbi>::Abi,
@ -210,14 +210,14 @@ impl Event {
cancelable, cancelable,
&mut __stack, &mut __stack,
); );
__wbg_f_initEvent_initEvent_Event(self_, type_, bubbles, cancelable) __wbg_f_initEvent_init_event_Event(self_, type_, bubbles, cancelable)
}; };
() ()
} }
} }
#[allow(bad_style, unused_variables)] #[allow(bad_style, unused_variables)]
#[cfg(not(all(target_arch = "wasm32", not(target_os = "emscripten"))))] #[cfg(not(all(target_arch = "wasm32", not(target_os = "emscripten"))))]
pub extern "C" fn initEvent(&self, type_: &str, bubbles: bool, cancelable: bool) { pub extern "C" fn init_event(&self, type_: &str, bubbles: bool, cancelable: bool) {
panic!( panic!(
"cannot call wasm-bindgen imported functions on \ "cannot call wasm-bindgen imported functions on \
non-wasm targets" non-wasm targets"
@ -226,4 +226,4 @@ impl Event {
} }
#[allow(non_upper_case_globals)] #[allow(non_upper_case_globals)]
#[wasm_custom_section = "__wasm_bindgen_unstable"] #[wasm_custom_section = "__wasm_bindgen_unstable"]
const __WASM_BINDGEN_GENERATED_wasm_bindgen_webidl_0_1_0_0 : [ u8 ; 180usize ] = * b"\xB0\0\0\0{\"exports\":[],\"enums\":[],\"imports\":[{\"module\":null,\"version\":null,\"js_namespace\":null,\"kind\":{\"kind\":\"type\"}}],\"structs\":[],\"version\":\"0.2.11 (3879f6f42)\",\"schema_version\":\"4\"}" ; const __WASM_BINDGEN_GENERATED_wasm_bindgen_webidl_0_2_11_0 : [ u8 ; 1299usize ] = * b"\x0F\x05\0\0{\"exports\":[],\"enums\":[],\"imports\":[{\"module\":null,\"version\":null,\"js_namespace\":null,\"kind\":{\"kind\":\"type\"}},{\"module\":null,\"version\":null,\"js_namespace\":null,\"kind\":{\"kind\":\"function\",\"shim\":\"__wbg_f_stopPropagation_stop_propagation_Event\",\"catch\":false,\"method\":true,\"js_new\":false,\"structural\":false,\"getter\":null,\"setter\":null,\"class\":\"Event\",\"function\":{\"name\":\"stopPropagation\"}}},{\"module\":null,\"version\":null,\"js_namespace\":null,\"kind\":{\"kind\":\"function\",\"shim\":\"__wbg_f_stopImmediatePropagation_stop_immediate_propagation_Event\",\"catch\":false,\"method\":true,\"js_new\":false,\"structural\":false,\"getter\":null,\"setter\":null,\"class\":\"Event\",\"function\":{\"name\":\"stopImmediatePropagation\"}}},{\"module\":null,\"version\":null,\"js_namespace\":null,\"kind\":{\"kind\":\"function\",\"shim\":\"__wbg_f_preventDefault_prevent_default_Event\",\"catch\":false,\"method\":true,\"js_new\":false,\"structural\":false,\"getter\":null,\"setter\":null,\"class\":\"Event\",\"function\":{\"name\":\"preventDefault\"}}},{\"module\":null,\"version\":null,\"js_namespace\":null,\"kind\":{\"kind\":\"function\",\"shim\":\"__wbg_f_initEvent_init_event_Event\",\"catch\":false,\"method\":true,\"js_new\":false,\"structural\":false,\"getter\":null,\"setter\":null,\"class\":\"Event\",\"function\":{\"name\":\"initEvent\"}}}],\"structs\":[],\"version\":\"0.2.11 (71107b8e8)\",\"schema_version\":\"4\"}" ;